找回密码
 立即注册
楼主: yjdmwjmi

第一集

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-03-31 17:35:10
已绑定手机

6

主题

27

回帖

122

积分

注册会员

积分
122
发表于 2025-3-29 16:52:57 | 显示全部楼层

第十一集

截图202503291627517845.jpg

实验箱原理图
P06P07检测行;P00P01P02P03检测4列;
当没有按键按下时P06P07为高电平把列设成低电平,当按下时按下的行为低电平。
扫描P06P07的低电平表示列按下。假设是P07为0就将P07设为0同时列设为高在扫描4列哪一个为0就是列按下在将行和列结合判断便可判断第几个按下
int key;
void le_low()
{
    P00=P01=P02=P03=0;
}

void hang_low()
{
    P06=P07=0;
}

void read_hang()
{
    if(P06==0)
    {delay_10ms();
         if(P06==0)
          {
                 key|=0x10;
          }
    }
     if(P07==0)
    {delay_10ms();
         if(P02==0)
          {
                 key|=0x20;
          }
    }
}


void read_le()
{
    if(P00==0)
    {delay_10ms();
         if(P00==0)
          {
                 key|=0x01;
          }
    }
     if(P01==0)
    {delay_10ms();
         if(P01==0)
          {
                 key|=0x02;
          }
    }
     if(P03==0)
    {delay_10ms();
         if(P03==0)
          {
                 key|=0x03;
          }
    }
     if(P04==0)
    {delay_10ms();
         if(P04==0)
          {
                 key|=0x04;
          }
    }
}


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-03-31 17:35:10
已绑定手机

6

主题

27

回帖

122

积分

注册会员

积分
122
发表于 2025-3-29 21:42:56 | 显示全部楼层

第十二集

截图202503292135583099.jpg WDT_FLAG:看门狗溢出标志发生溢出置一需要软件清零

EN_WDT:看门狗使能位 启动位
CLR_WDT:看门狗定时器清零  在溢出时间内要清零否则复位
WDT_PS[2:0]:看门狗定时器时钟分频系数

截图202503292141148396.jpg
截图202503292141546231.jpg 软件复位写入0x60可进入下载模式

void main()
{
    P_SW2 |= 0x80;
   
    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
    P3M0=P3M1=0x00;
    P3M0&=~0x03;
    P3M1|=0x03;
  USBCON=0X00;
  USBCLK=0X00;
  IRC48MCR=0X00;
  Delay1000ms();
   
    usb_init();                                     //USB CDC 接口配置
    set_usb_ispcmd("@STCISP#");
    EA = 1;
    USB_SendData("123",3);
//    WDT_CONTR=0x24;
    while (1)
    {
        if(P32==0)
          IAP_CONTR |=0x60;
//          WDT_CONTR=0x34;
        
        if (bUsbOutReady)
        {
            usb_OUT_done();
        }
        
//        USB_SendData("456",3);
    }
}




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-03-31 17:35:10
已绑定手机

6

主题

27

回帖

122

积分

注册会员

积分
122
发表于 2025-3-29 21:56:41 | 显示全部楼层

十三集

中断控制器

有以下中断 其中中断服务号由高到低0~73
对于开启中断要清除标制位开启允许位然后开启EA=1总中断
如TF0为定时器0的标志位ET0为其的允许位,PT0,PT0H设置优先级部分中断无法设置中断优先级如INT2为固定0


截图202503292148073253.jpg
IT0控制触发电平IE0中断标值位EX0外部中断启动位EA总中断启动位PX
PXH优先级


void Ext_Init(void)
{
        IT0 = 1;                        //INT0(P3.2)下降沿中断
        EX0 = 1;                        //使能INT0中断
}


void main(void)
{
  
    EAXFR = 1;                      //允许访问扩展的特殊寄存器,XFR
    WTST = 0;                       //设置取程序代码等待时间,
                                    //赋值为 0表示不等待,程序以最快速度运行
    CKCON = 0;                      //设置访问片内的 xdata速度,
                                    //赋值为 0表示用最快速度访问,不增加额外的等待时间
    gpio_Init();
    Ext_Init();

  
    while(1)                        
    {      
}



void EXIT0_Isr(void) interrupt 0
{
  if(a==0)
  {
    P22=0;
    a=1;
  }
  else
  {
    P22=1;
    a=0;
  }
}









回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-03-31 17:35:10
已绑定手机

6

主题

27

回帖

122

积分

注册会员

积分
122
发表于 2025-3-29 22:33:15 | 显示全部楼层

十四集

截图202503292159404225.jpg Ai8051U系列支持所有的I/O中断,且支持4种中断模式:下降沿中断、上升沿中断、低电平中断、高电平中断。每组I/O口都有独立的中断入口地址,且每个I/O可独立设置中断模式。但是不支持双边延检测

截图202503292231083123.jpg 使能位
截图202503292231373114.jpg 标志位需要软件清零 截图202503292232203782.jpg 配置模式 截图202503292232394579.jpg 优先级


void io_exint()
{
  P32INTF=0;//标准位软件清零
  P32IM0=0
  P32IM1=0;//下降延
  P3IP=3;
  P3IPH=3;//优先级
  
  P32INTE=1;//使能
}



void io_ex(void) interrupt 40
{
  if(P32INTF==1)
  {
    P32INTF=0;
    P0=!P0;
  }
}


回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 18:01 , Processed in 0.135157 second(s), 64 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表