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

《8051U深度入门到32位51大型实战视频》打卡OR lao****dian | 已送

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:167
  • 最近打卡:2025-05-02 15:27:34
已绑定手机

34

主题

171

回帖

1181

积分

金牌会员

积分
1181
发表于 2025-1-28 16:36:11 | 显示全部楼层
第12集学习内容
1.Ai8051U复位的意义.
    1.确保单片机在开始工作时处于已知的状态,使其能够正确初始化各个寄存器和外设。
    2.没有进行复位时,内部控制寄存器的内容可能是随机的,这可能导致定时器溢出、中断异常、外设误操作等不确定行为。
    3.系统的初始化,包括清除寄存器、设置默认值、配置时钟等,为系统正常运行做好准备。
    4.确保程序从正确的地址开始执行,避免跳转到未知的地址或执行错误的指令。
2.Ai8051U复位方式, 有硬件复位和软件复位两种.
    硬件复位:上电复位
                   勾选上电复位使用较长延时,Ai8051U复位时间约有100多毫秒.
                   将P3.2 P3.3至少一个上拉一个5.1K电阻到VCC,可以快速复位.时间:几十毫秒内.

                   低压复位
                   勾选允许低压复位选项,当VCC电压低于检测电压值时,MCU会产生低压复位。不勾选,当VCC电压低于检测电压值时,MCU会产生低压中断标志。如果使能了低压中断的                   话,就会产生低压中断。低电压值可选:2V 2.4V 2.7V 3V.

                   复位脚复位(低电平复位)
                   ISP软件去勾复位脚用作I/O口,P4.7脚通过300欧电阻对地接复位开关.

                 重点:看门狗复位(程序有USB功能记得先加USB复位)
        WDT_CONTR=0x24,打开看门狗,12M1S
        WDT_CONTR=0x24,清除看门狗计数.
    软件复位:通过操作寄存器进行复位
        IAP_CONTR = 0x60;复位系统到下载模式
        IAP_CONTR = 0x60;复位系统到初始状态

8位程序---换个STC32G.h头文件,换个C251编译器就直接到STC32的高度了;
          想回到8位机,则换个STC8H.h头文件,换个C51编译器就回到8位机了.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:167
  • 最近打卡:2025-05-02 15:27:34
已绑定手机

34

主题

171

回帖

1181

积分

金牌会员

积分
1181
发表于 2025-2-3 20:37:34 | 显示全部楼层
第13集学习内容
1.中断系统介绍,与中断的意义.当CPU运行时时候发生了紧急事件请求,CPU暂停当前的工作,转而去处理这个紧急事件,这样的过程称为中断。
2.外部中断介绍
中断有优先级,CPU总是先响应优先级别最高的中断请求,然后执行低级别的中断请求.
部分中断源的优先级别可以调整.高优先级的中断,可以打断低级别的中断源.
AI8051U 48P 有INT0-INT3 4个外部输入中断引脚.INT0-INT1支持上升沿与下降沿触发,INT2-3只支持下降沿触发.
中断清零方法:少数中断源硬件自动清零.大部分需要软件清零.
3.外部中断INT1的最简单用法
void INT1_Init(void)
{
   IT1 = 1;                //下降沿中断
   EX1 = 1;                //打开中断允许
   EA = 1;                //打开总中断
}

void INT_ISR(void) interrupt 2
{
   P01 = !P01;
}


8位程序---换个STC32G.h头文件,换个C251编译器就直接到STC32的高度了;
          想回到8位机,则换个STC8H.h头文件,换个C51编译器就回到8位机了.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:167
  • 最近打卡:2025-05-02 15:27:34
已绑定手机

34

主题

171

回帖

1181

积分

金牌会员

积分
1181
发表于 2025-3-8 23:43:26 | 显示全部楼层
第14集学习内容
相比于外部中断,IO中断有以下优点:
1.8051U支持所有的IO口(外部中断只有特定的外部中断的引脚)
2.可以任意配置上升沿/下降沿/高电平/低电平(外部中断只有上升/下降沿中断)
IO中断优先等级0-3级可调节,支持唤醒
缺点:
IO中断同时只能支持一种中断模式,外部中断0和1可以同时支持上升/下降沿中断(可以用两个IO端口实现双边沿检测!)。
需要配置:    端口中断使能寄存器(PxINTE)
                  端口中断模式配置寄存器(PxIM0, PxIM1)
中断检测:    端口中断标志寄存器(PxINTF),PnINTF.  x:端口中断请求标志位(n=0~7,x=0~7)
                  0: Pn.x 口没有中断请求     
                  1: Pn.x口有中断请求,若使能中断,则会进入中断服务程序。标志位需软件清0.
中断号:P0=37...P7=44.
中断号扩展工具的安装使用方法.推荐使用此方法.
已测试支持的 C51.EXE 版本为:
V6.12.0.1
V8.8.0.1
V9.0.0.1
V9.1.0.1
V9.53.0.0
V9.54.0.0
V9.57.0.0
V9.59.0.0
V9.60.0.0
已测试通过的 C251.EXE 版本:
V5.57.0.0
V5.60.0.0
中断优先级的调整方法


8位程序---换个STC32G.h头文件,换个C251编译器就直接到STC32的高度了;
          想回到8位机,则换个STC8H.h头文件,换个C51编译器就回到8位机了.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:167
  • 最近打卡:2025-05-02 15:27:34
已绑定手机

34

主题

171

回帖

1181

积分

金牌会员

积分
1181
发表于 2025-3-16 21:28:10 | 显示全部楼层
第15集学习内容
定时器计数器的应用领域简介
定时器计数器的配置方法
C/T=1,定时器/计数器T0是对外部脉冲输入(P3.4/T0)计数.
定时器0/1模式寄存器(TMOD)的配置方法
T0-T4,T11   8051可以提供5个计数器输入引脚
双击选中TMOD,点击搜索按钮,搜索类型:当前项目,勾选区分大小写,匹配全部.点搜索全部.搜索栏会显示TMOD所有位的配置信息.
65536-计数周期,右移8位=TH   TL直接赋值
使用外部输入计数的引脚要打开外部上拉电阻(准双向模式)
频繁进入中断,会降低系统稳定性.
TH1,TL1是8位的数据,左移时注意防止溢出.(u16)强制转换到16位.
测量引脚电平时间
void Timer1_Isr(void) interrupt 3
       {
        static u32 count_p33 = 0;
        if( P33 == 0 )                //按键按下开始计数
          {
          count_p33 ++ ;
          }
       else
           {
            if( count_p33>0 )                //表示之前按下了这个按键
              {
              Count_T1 = count_p33;
               }
              count_p33 =0;
           }
     }

void Timer1_Init(void)                //100微秒@24.000MHz
      {
      AUXR &= 0xBF;                        //定时器时钟12T模式
      TMOD &= 0x0F;                        //设置定时器模式
      TL1 = 0x38;                        //设置定时初始值
      TH1 = 0xFF;                        //设置定时初始值
      TF1 = 0;                                //清除TF1标志
      TR1 = 1;                                //定时器1开始计时
      ET1 = 1;                                //使能定时器1中断
     }

void T1_RunTask(void)
      {
      SEG7_ShowString("%07.01f",((float)Count_T1)/10);
      }


8位程序---换个STC32G.h头文件,换个C251编译器就直接到STC32的高度了;
          想回到8位机,则换个STC8H.h头文件,换个C51编译器就回到8位机了.
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 07:19 , Processed in 0.225447 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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