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

视频教学:《32位8051单片机原理及应用》,一等奖2万, 送实验箱; 冲哥版

   火... [复制链接]

0

主题

16

回帖

76

积分

注册会员

积分
76
发表于 2023-7-16 11:36:38 | 显示全部楼层
第十集
数码管动态刷新就是依次让每个数码管显示图案,虽然依次点亮数码管中间有延迟时间,但是由于人眼分辨率原因,多个数码管循环时间不超过20ms的情况下,在人眼看来数码管是一直显示的,这样就实现了多个数码管的动态显示。
练习
u8 hour = 0;
u8 minute = 0;
u8 second = 0;
u8 SEG[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
u8 COM[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
u8 SHOW[8] = {hour/10,hour%10,10,minute/10,minute%10,10,second/10,second%10};
void SEG_Fre(void)
{
        P7 = COM[num];
        P6 = SEG[SHOW[num]];
        delay_ms(1);
        num++;
        if(num > 7)num=0;
}
void main()
{
        num = 0;
        SEG_Fre();
        while(1)
        {
                P6 = SEG[SHOW[num]];
                delay_ms(1000);
                second++;
                if(second > 59){
                        minute++;
                        second = 0;
                }
                if(minute > 59){
                        hour++;
                        minute = 0;
                }
                if(hour > 23){
                        hour = 0;
                }
                if(hour == 0 && minute == 0 && second == 30)
                {
                        beep = 1;
            delay(3000);
            beep = 0;
                }
        }
}
回复 支持 反对

使用道具 举报 送花

0

主题

18

回帖

60

积分

注册会员

积分
60
发表于 2023-7-16 13:13:04 | 显示全部楼层
第十四集《矩阵按键》观感:
矩阵按键工作原理
keytate_last
回复 支持 反对

使用道具 举报 送花

0

主题

18

回帖

60

积分

注册会员

积分
60
发表于 2023-7-16 13:43:24 | 显示全部楼层
第十五集《外部中断》观感:
外部中断原理
回复 支持 反对

使用道具 举报 送花

0

主题

18

回帖

60

积分

注册会员

积分
60
发表于 2023-7-16 14:10:54 | 显示全部楼层
第十六集《IO中断》观感:
中断号>31
中断优先级
回复 支持 反对

使用道具 举报 送花

0

主题

15

回帖

46

积分

新手上路

积分
46
发表于 2023-7-16 15:28:59 | 显示全部楼层
第一集观后感,认识单片机
回复 支持 反对

使用道具 举报 送花

0

主题

15

回帖

46

积分

新手上路

积分
46
发表于 2023-7-16 15:30:56 | 显示全部楼层
第二集观感:
外部存储编程。
回复 支持 反对

使用道具 举报 送花

0

主题

15

回帖

46

积分

新手上路

积分
46
发表于 2023-7-16 15:32:00 | 显示全部楼层
第三集观感:
安装开发环境
回复 支持 反对

使用道具 举报 送花

0

主题

15

回帖

46

积分

新手上路

积分
46
发表于 2023-7-16 15:32:39 | 显示全部楼层
第四集观感:
流水灯示例
回复 支持 反对

使用道具 举报 送花

0

主题

1

回帖

16

积分

新手上路

积分
16
发表于 2023-7-16 16:47:25 | 显示全部楼层
前两集 了解单片机用途,了解开发板硬件构成
        红外遥控器由发射管和接收管组成,ADC模数转换将电压范围转成对应的数值,也可以用来检测按键,每个按键电阻不同模数后电压不同根据电压可以知道是哪个按键按下,DAC数模转换,通过pwm生成不同占空比的方波来模拟输出电压,数码管显示数字字母,LED指示灯,24C02储存器用来储存数据掉电再上电数据不丢失,LCD液晶显示器长款128*64像素,内置字库16x16可以显示一个汉字,矩阵按键通过行列判断是某个按键,可以节省引线,蜂鸣器,FLASH和24c02功能差不多但容量更大,

第三集 开发环境搭建和程序下载、ISP用来下载程序到开发板,c语言用keil软件开发,需要安装c251的环境,安装USB驱动来通过usb和开发板链接,stc可以不用USB转串口的方式下载程序,按下P3.2按钮可进入USB下载模式,选择单片机型号,P3.0和P3.1链接USB,

第四集 建立工程点亮第一颗LED下、定义main函数,sfr定义端口对应的地址,个人理解单片机的引脚与内存的地址对应,往地址放数据,对应的端口就可以出现高低点评,此处通过名称定义方便访问,sbit可以将某个引脚映射,while 1死循环执行,P0++让他每次递增1,sfr特殊功能寄存器,typedef可以将c类型定义为指定名称类型,根据LED引脚正负的接法,是置0亮还是置1亮,EA=1打开总中断,include可以将其他程序包含进来,

第五集 C语言运算符和进制数入门、通过printf可以将内容通过串口发送给串口助手显示内容,二进制逢二进一,8进制逢八进一,16进制逢十六进1,他们之间转换可以用电脑自带程序计算器转换的到,运算符+-*/,++自增--自减,>>左移,<<右移,浴火飞&|^,~取反,+= -+ *=, 数据类型bit位 char1字节8位可以有无符号, short int2字节整数, long int为4字节整数,sfr16 2字节,

第六集 LED闪烁和花式点灯、单片机运行速度很快,要让人眼看到闪烁等效果,需要使用延时,系统并没有真正的休眠而是靠不断地消耗cpu来实现延时,需要多次用到的代码我们可以定义成函数,用到的地方只需写函数名字加括号传参即可,也可返回结果,定义变量需要指定变量的类型,随着程序变多我们可以将特定的功能模块分离出来放到单独的文件,然后使用inculde包含进来,就可以使用内部定义的函数了,可以使用加加减减,左移右移来实现各种效果.

第七集 按键点灯、可以通过define将一个引脚和名称关联,通过名称可以获取到按键的状态0或1,如果按键按下运行指定代码,但由于cpu速度很快 为了防止电压抖动需要延时一段时间再次判断电平,还是按下状态再进行操作,反之忽略本次按键,取反可以让led明灭,也可以定义成一个数组,间隔时间来写出各种花式闪烁

第八集 蜂鸣器的应用、单片机引脚输出功率不足以驱动蜂鸣器,利用三极管放大来控制蜂鸣器的通断,控制起来和控制LED灯是一样的

第九集,第十集 数码管的使用、数码管是由8个led的组成的,控制亮灭就可以显示指定的数字或字母,静态驱动是引脚直接控制数码管的亮灭,动态驱动:因为单片机引脚有限,如果数码管都使用静态驱动的话,多位数码管需要大量引脚,为了解决这个问题,根据人眼的 视觉残留,可以将多个数码管8个引脚并联,使能某个数码管控制亮灭一定时间,以此轮流驱动,人眼就会产生全都在显示,静态驱动可以稳定不闪烁,动态驱动会造成闪烁,亮度也不会有静态驱动时亮,将0-9与 数组连接,就可以将数字与led相关联,方便显示

第十一章 定时器的应用、延时是靠消耗cpu来实现,延时时无法处理其他任务,用定时器中断可以中断当前程序来执行指定的代码,tc32g包含5个24位定时器,都具有定时和计数两种方式,EA=1可以开启所有中断,Tim0_Isr() interrupt 1,当中断时就会执行该函数,内部可以放刷新显示的功能,这样显示的同时也不影响按键的判断触发,

第十二章  计数器的使用、计数每次引脚电平变化进行递增,当计数值超过设定后,将产生中断,中断函数和定时器相同,只是参数的设置不同,用来测量电动机转速,车辆速等很是方便.

第十三集:简易多任务处理、单片机运行中同时需要处理很多任务,很多功能都需要延时,都用延时的话功能就会相互冲突,可以将每个功能都分开,利用个自己的计数器来模拟延时的效果,例如按键消抖,未按下时将计数清零,按下后开始增加计数,当计数达到设定值则说明按键真实按下,没有用到延时一眼可以实现延时的效果,不消耗cpu时间,cpu就可以有更多时间来执行其他程序,感觉每个人的设计思路不同吧,要是我的话我会实现 一个全局ms级运行时间,各种需要计算时间的都以这个为主,省的再计算加多少什么的

第十四集:矩阵按键、单独按键每个需要占用一个引脚,矩阵按键通过引脚交叉,先将某行设置低电平,列全部置为高电平,如果按键按下,按键列电平会被拉低,判断出是该行某列按下,依次分别扫描全部行,就能获取到全部按键的按下状态.

第十五集:外部中断、中断存在优先级,如果一个中断正在进行,更高级的中断到来会打断低优先级中断,外部中断5个,当引脚的电平发生改变时产生中断,可用来检测按键状态、过压、过流等优先级比较高的任务,比如设备发生过流普通程序被暂停,中断可以去紧急关闭输出来防止设备损坏

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-05-08 08:55:03

0

主题

17

回帖

776

积分

高级会员

积分
776
发表于 2023-7-16 17:12:15 | 显示全部楼层
刚才观看了:第四集:建立工程点亮第一颗LED下,USB-CDC/虚拟串口,不停电下载,高手必须懂;原来程序下载还可以这样玩,确实很方便。
回复 支持 反对

使用道具 举报 送花

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

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

GMT+8, 2025-5-9 12:33 , Processed in 0.120568 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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