《单片机应用技术》项目化课件 项目2C51及IO口应用进阶_第1页
《单片机应用技术》项目化课件 项目2C51及IO口应用进阶_第2页
《单片机应用技术》项目化课件 项目2C51及IO口应用进阶_第3页
《单片机应用技术》项目化课件 项目2C51及IO口应用进阶_第4页
《单片机应用技术》项目化课件 项目2C51及IO口应用进阶_第5页
已阅读5页,还剩173页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用技术18物联网核心课程项目化实施课程1、采用顺序结构的流水灯:**依次输出状态码2、采用移位+循环的流水灯(P51):**循环四要素:配置状态码初值;反码输出,每次状态码移一位任务2-1指定效果的流水灯2.1.1循环闪烁的流水灯(循环嵌套)2.1.2从两边到中间的流水灯(位运算)2.1.3贪吃蛇流水灯(位运算+循环嵌套)项目2C51与I/O口应用进阶2.1.1循环闪烁的流水灯具体要求:

让D1闪烁3遍,再到D2闪烁3遍,再到D3闪烁3遍,一直到D8闪烁3遍,如此循环往复下去。LED8LED7LED6LED5LED4LED3LED2LED12.1.1循环闪烁的流水灯一、任务硬件接口设计LED8LED7LED6LED5LED4LED3LED2LED1LED亮灭闪烁循环3次移位修改P1值循环8次无限循环二、任务软件设计(功能分析+编程实现)ledCode~(00000001)P1ledCode,1个LED亮延时P1口输出11111111,LED全灭延时for语句循环3次ledCode左移for语句循环8次while(1)无限循环LED8LED7LED6LED5LED4LED3LED2LED1采用移位运算实现流水灯控制系统C语言程序LED循环闪烁控制系统的C语言程序LED循环闪烁控制系统的C语言程序注意修改P1端口✎小组实践下面来小组协作动手实践一下吧基础任务:请尝试使用<<运算符和循环嵌套的结构编码实现8个灯从低位到高位的循环闪烁,即:D1闪烁3遍,再到D2闪烁3遍,再到D3闪烁3遍,一直到D8闪烁3遍,如此循环往复下去。

拓展1:实现从高位到低位循环闪烁,每个LED闪烁2遍,具体要求是:让D8闪烁2遍,再到D7闪烁2遍,再到D6闪烁2遍,一直到D1闪烁2遍,如此循环往复下去。复习:完成C51_7之前的所有微课视频,复习ppt\教材,完成思维导图,提交附件;1C51循环四要素及语句for/while2C51循环嵌套3C51~<<>>等位运算符4C51#definetypedef等应用小结与作业4谢谢单片机应用技术18物联网核心课程项目化实施课程1、采用顺序结构的流水灯:**依次输出状态码2、方法1:采用移位+循环的流水灯(P51):**循环四要素:配置状态码初值;反码输出,每次状态码移一位任务2-1指定效果的流水灯2.1.1循环闪烁的流水灯(循环嵌套)2.1.2从两边到中间的流水灯(位运算)2.1.3贪吃蛇流水灯(位运算+循环嵌套)2.1.4C51位运算符(P88)项目2C51与I/O口应用进阶2.1.1循环闪烁的流水灯具体要求:

让D1闪烁3遍,再到D2闪烁3遍,再到D3闪烁3遍,一直到D8闪烁3遍,如此循环往复下去。LED8LED7LED6LED5LED4LED3LED2LED12.1.1循环闪烁的流水灯一、任务硬件接口设计LED8LED7LED6LED5LED4LED3LED2LED1LED亮灭闪烁循环3次移位修改P1值循环8次无限循环二、任务软件设计(功能分析+编程实现)ledCode~(00000001)P1ledCode,1个LED亮延时P1口输出11111111,LED全灭延时for语句循环3次ledCode左移for语句循环8次while(1)无限循环LED8LED7LED6LED5LED4LED3LED2LED1采用移位运算实现流水灯控制系统C语言程序LED循环闪烁控制系统的C语言程序LED循环闪烁控制系统的C语言程序注意修改P1端口✎小组实践下面来小组协作动手实践一下吧基础任务:请尝试使用<<运算符和循环嵌套的结构编码实现8个灯从低位到高位的循环闪烁,即:D1闪烁3遍,再到D2闪烁3遍,再到D3闪烁3遍,一直到D8闪烁3遍,如此循环往复下去。

拓展1:实现从高位到低位循环闪烁,每个LED闪烁2遍,具体要求是:让D8闪烁2遍,再到D7闪烁2遍,再到D6闪烁2遍,一直到D1闪烁2遍,如此循环往复下去。复习:完成C51_7之前的所有微课视频,复习ppt\教材,完成思维导图,提交附件;1C51循环四要素及语句for/while2C51循环嵌套3C51~<<>>等位运算符4C51#definetypedef等应用小结与作业任务2-1指定效果的流水灯2.1.1循环闪烁的流水灯(循环嵌套)2.1.2从两边到中间的流水灯(位运算)2.1.3贪吃蛇流水灯(位运算+循环嵌套)2.1.4C51位运算符(P88)项目2C51与I/O口应用进阶核心:C51位运算符运算符运算范例结果&按位与0&000&101&111&00|按位或0|000|111|111|01~取反~01~10^按位异或0^000^111^101^01<<

左移00000010<<20000100010010011<<201001100>>

右移01100010>>20001100011100010>>211111000左移运算:<<运算法则:操作数左移若干位后,高位丢弃,低位补0。右移运算:>>运算法则:操作数右移若干位后,低位丢弃,高位补0。位运算符(移位)小组探究特效流水灯小组探究,讲解分享(组间互评)流水灯任务集普通流水灯:顺序结构;循环(移位)方法1-31、普通流水灯不同解法1)数组实现来回流水灯;2)库函数实现来回流水灯;3)数组+指针实现来回流水灯;2、指定效果流水灯4)两边到中间流水灯;5)中间到两边流水灯;6)贪吃蛇流水灯;3、创意流水灯7)自创任意流水灯下面来小组协作动手实践一下吧2.1.2从两边到中间的流水灯一、任务硬件接口设计二、任务软件设计(功能分析+编程实现)从两边到中间亮的流水灯P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.00x7e0xbd0xdb0xe7P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.001111110LED8LED7LED6LED5LED4LED3LED2LED1101111011101101111100111直接送数法1、分析解法1:状态码1、编程解法1:状态码P1能否按位操作找规律?LED8LED7LED6LED5LED4LED3LED2LED1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.001111110LED8LED7LED6LED5LED4LED3LED2LED1101111011101101111100111找二进制位的规律2、分析解法2:移位运算向右移位向左移位能否直接这样对0移位?P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED100000001000000100000010000001000P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED110000000010000000010000000010000右移P1=0x80>>i;左移P1=0x01

<<i;高四位和低四位并集?左右两部分值进行逻辑或,即保留了右边4个灯的状态,也保留了左边4个灯的状态。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED1100000010100001

0001001000

0011000P1=(0x01<<i)

|(0x80>>i);i=0,1,2,3按位取反,得到想要的显示效果。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0LED8LED7LED6LED5LED4LED3LED2LED1P1=~((0x01<<i)

|(0x80>>i));i=0,1,2,301111110101111011101101111100111从两边到中间亮的流水灯控制系统C语言程序注意修改P1端口2.1.3贪吃蛇流水灯一、任务硬件接口设计第1次蛇的初值:snake=0xfe;食物初值:P1=0x7f;分析:第1次蛇移动的效果取反:snake=0x01;二、任务软件设计(功能分析+编程实现)第1次循环条件:i从0增到8初值:snake=0x01;i=0循环体:P1=(~(snake<<i))&0x7f第1次注意修改P1端口第2次初值:snake=0x03;第2次蛇移动的效果第2次注意修改P1端口规律:左移一位,再加1,循环7次。7次初值:0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f0x01<<1+10x030x03<<1+10x070x07<<1+10x0f0x0f<<1+10x1f0x1f<<1+10x3f0x3f<<1+10x7f找规律LED贪吃蛇C语言程序注意修改P1端口小组探究特效流水灯小组探究,讲解分享流水灯任务集普通流水灯:顺序结构;循环(移位)方法1-31、普通流水灯不同解法1)数组实现来回流水灯;2)库函数实现来回流水灯;3)数组+指针实现来回流水灯;2、指定效果流水灯4)两边到中间流水灯;5)中间到两边流水灯;6)贪吃蛇流水灯;3、创意流水灯7)自创任意流水灯下面来小组协作动手实践一下吧基本流水灯:顺序结构依次输出状态码基本流水灯:循环+移位方法1反码输出,每次状态码移一位基本流水灯:循环+移位之方法1-方法3典型代码段基本流水灯:数组;库函数

典型代码段任意流水灯:两边到中间;任意流水灯:贪吃蛇2.1.4C51位运算符编程核心:循环+数组+函数+C51位运算符运算符运算范例结果&按位与0&000&101&111&00|按位或0|000|111|111|01~取反~01~10^按位异或0^000^111^101^01<<

左移00000010<<20000100010010011<<201001100>>

右移01100010>>20001100011100010>>211111000例如:m=0xa2;n=0x5f;如何位运算,使得k=0xfa呢?

把m中的高4位和n中的低4位取出来,得到一个新的数k=

0xfa,怎么做呢?✎练一练按位与&:用0与对二进制指定位清0按位或|:用1或将二进制指定位置1按位异或^:用1异或将二进制指定位取反按位取反~:将一个二进制数的所有位都取反位运算符led=led&0xf0led=led|0x38led=led^0x55led=~ledled&=0xf0led|=0x38led^=0x55设led=0x85;分析位运算符的作用?分析:理解位控制字作用设计:构造位控制字按位与&:用0与对二进制指定位清0按位或|:用1或将二进制指定位置1按位异或^:用1异或将二进制指定位取反按位取反~:将一个二进制数的所有位都取反位运算符如何构造位控制字?1、根据功能需求选取位运算符(与、或);2、用0、1构造二进制位控制字并转十六进制;3、书写位运算符复合赋值表达式。led=led&0xf0led=led|0x38led=led^0x55led=~ledled&=0xf0led|=0x38led^=0x55分析:理解位控制字作用设计:构造位控制字位运算符(构造位控制字)✎小组实践下面来小组协作动手实践一下吧拓展探究:依次实现如下各项位运算符控制的点灯小游戏(重点配置位控制字)提示:不具体计算灯状态码,仅通过位运算符(位控制字)实现某些位灯的状态控制。1)初始状态:D1、D2、D7亮,而其他灯都灭。ledCode=?2)让亮着的灯灭掉,让灭的灯亮起来。3)不影响其它灯状态,只是单独灭掉D3。4)不影响其它灯状态,只是单独点亮D7。5)保持D1~D4不变,同时控制D5~D8原来亮则灭,原来灭则亮。(提示:0异或不变,1异或取反)如何单独控制D5~D8闪烁3次呢?低电平亮灯4谢谢单片机应用技术18物联网核心课程项目化实施课程任务2-2汽车转向灯2.2.1初识按键(P35)2.2.2单片机I/O口的输入功能(P38)2.2.3I/O口输入功能的位操作(P39)项目2C51与I/O口应用进阶案例引入任务2.2:汽车转向灯一、任务硬件接口设计认识按键并行I/O的输入功能?左灯D1,D2右灯D7,D8右转键K2左转键K12.2.1初识按键2.2.1初识按键开关电路符号通ON断OFFA-D是内部相连B-C也是内部相连A-D端B-C端当按键按下,两端接通;手松开,按键弹起,两端断开1、独立按键电路模块1、独立按键电路模块如何接入单片机呢?2.2.2单片机I/O口的输入功能P1P0P2P3单片机输入输出****读引脚初始化位操作:P3_0=1;P3_1=1;或字节操作(位运算符+控制字):P3|=0x03;2.2.2单片机I/O口的专职2:Input输入操作四个并行I/O接口的输入操作完全相同区分读引脚(外设)和读端口读引脚时,理论上需要向端口中相应位写入1,初始化为输入模式(由于芯片I/O口内部结构不同,进行初始化设置的要求严格性会有差异)任务2.2汽车转向灯设计与实现2.2.3I/O口输入功能的位操作读端口引脚存入位变量处理案例实现按下按键K1时,汽车要左转,左灯D1和D2闪烁,右灯D7、D8灭;按下按键K2时,汽车要右转,右灯D7和D8闪烁,左灯D1、D2灭。一、任务硬件接口设计左灯D1,D2右灯D7,D8右转键左转键一、任务硬件接口设计左灯D1,D2右灯D7,D8右转键左转键根据按键上拉电路分析端口逻辑电平,1)未转向时,按键均未按下,

P3.0和P3.1端口均输入高电平12)左转:

P3.0按键按下,

P3.0端口读入状态值为

低电平0,

即:P3.0

=

03)右转(同理):

P3.1按键按下,P3.1

=

0初始化配置端口输入功能位操作输入左右按键状态根据按键值位操作控制左右灯延时熄灭左右灯延时汽车转向灯1、功能分析(流程图)开始输入按键(位操作)延时延时熄灭左右灯二、任务软件设计(功能分析+编程实现)初始化输入端口左右灯根据按键值输出二、任务软件设计(功能分析+编程实现)开始输入按键(位操作)延时延时熄灭左右灯初始化输入端口左右灯根据按键值输出按下左转K1,左灯D1,D2闪烁按下右转K2,右灯D7,D8闪烁三、下载hex程序软硬件联调1初识按键2单片机I/O口的输入功能3I/O口输入功能的位操作小结✎小组实践下面来小组协作动手实践一下吧1基础任务:参照ppt软硬件设计资料,完成汽车转向灯基本功能;2拓展任务(选作):优化代码,将重复的灯的位操作控制输出代码段封装为自定义函数,原型参考:voidlight(bitleft,bitright);并在主函数调用。任务2.2汽车转向灯任务2.2汽车转向灯拓展任务2.2.3I/O口输入功能的位操作if判断位端口引脚电平一、任务硬件接口设计左灯D1,D2右灯D7,D8右转键左转键根据按键上拉电路分析端口逻辑电平,1)未转向时,按键均未按下,

P3.0和P3.1端口均输入高电平12)左转:

P3.0按键按下,

P3.0端口读入状态值为

低电平0,

即:P3.0

=

03)右转(同理):

P3.1按键按下,P3.1

=

0✎小组实践下面来小组协作动手实践一下吧1:新建文件t2-2V2.c,用if选择结构语句,改编汽车转向灯代码,判断左键K1按下则左灯(D1D2)闪烁,右键K2按下则右灯(D7D8)闪烁,灯的输出控制采用P2端口的字节操作优化代码,按键输入仍采用I/O端口的位操作方式。(模式1:按键查询判断即显示处理)任务2.2汽车转向灯拓展任务✎小组实践下面来小组协作动手实践一下吧2:实现2个开关控制的8位信号灯硬件接口:K1~K2分别连接P3.0~P3.1,P2连接D1~D8。任务要求:默认没有键按下时全部灯熄灭;当K1按下,且K2也按下后,D1~D8亮灭闪烁;

否则D1~D8奇数灯亮。(流程图->编码)方法技能:复杂结构首先设计流程图;if嵌套对齐;debug单步跟踪逻辑分支任务2.2汽车转向灯拓展任务按键查询判断即显示处理1初识按键2单片机I/O口的输入功能3I/O口输入功能的位操作4按键输入:1)读端口引脚存入bit位变量再处理

2)if查询判断位端口引脚电平并处理小结作业:1、课前预习任务4谢谢单片机应用技术18物联网核心课程项目化实施课程任务2-3按键控制信号灯(模式1)2.3.1按键按下去抖检测(P57)2.3.2按键释放检测(

P59)项目2C51与I/O口应用进阶C51编程Tips:1、任务分析理思路,构思流程图,再翻译代码;2、各模块编码熟练后,积累总结典型功能的代码段(笔记);3、各模块拼接实现更综合的任务功能。案例引入任务2.3:按键控制信号灯初始状态:8个LED全灭

当K1按下时:D1~D8全亮

当K2按下时:D1~D8奇数灯亮当K3按下时:D1~D8偶数灯亮当K4按下时:

D5~D8亮任务硬件接口+软件设计(功能分析+编程实现)思考1:机械按键的抖动?2.3.1按键按下去抖检测A-D端B-C端当按键按下,两端接通;手松开,按键弹起,两端断开消除抖动方法:1.硬件电路;2.软件延时2.3.1按键按下去抖检测有键按下吗?Y(真)N(假)延时去抖(10ms)不考虑抖动有键按下吗?Y(真)N(假)有键按下吗?N(假)Y(真)执行代码优化1:考虑抖动键按下稳定阶段前沿抖动前沿抖动10ms2.3.1按键按下去抖检测增加if选择嵌套结构任务硬件接口+软件设计(优化1:按键按下去抖检测)增加if选择嵌套结构1按键检测(去抖)2按键判断即显示处理小结:任务2-3按键控制信号灯(模式1)——if位判断模式1用于信号灯状态显示;

if多分支语句适用于独立式按键,简单使用思考2:如何等待按键释放呢?2.3.2按键释放检测2.3.3按键释放检测10msY(真)延时去抖(10ms)稳定阶段前沿抖动前沿抖动键松开了吗?N(假)键松开了吗?N(假)Y(真)执行代码按键:按下和释放两个分解动作;按键的释放检测过程与按键按下的检测过程类似,注意判断条件即可;if(按键条件);检测一次while(按键条件);检测多次,等待按键释放或等待按键按下键按下2.3.3按键释放检测LED分析代码,绘制功能流程图?1按键检测去抖2按键判断即显示处理3按键释放(可略)小结:任务2-3按键控制信号灯(模式1)——if位操作补充等待按键释放代码到P58案例引入任务2.4:按键控制霓虹灯初始状态:8个LED全灭

当K1按下时:从高位到低位流水灯当K2按下时:从低位到高位流水灯当K3按下时:从两边到中间再到两边点亮当K4按下时:从D1到D8逐盏点亮思考3:如何按键释放后显示动态流水灯呢?4谢谢单片机应用技术18物联网核心课程项目化实施课程任务2-4按键控制霓虹灯2.4.1按键查询处理(模式1+模式2)(P58+P59)2.4.2switch+字节操作(补充至P58)项目2C51与I/O口应用进阶C51编程Tips:1、任务分析理思路,构思流程图,再翻译代码;2、各模块编码熟练后,积累总结典型功能的代码段(笔记);3、各模块拼接实现综合任务功能。案例引入任务2.4:按键控制霓虹灯初始状态:8个LED全灭

当K1按下时:从高位到低位流水灯(循环移位P51)当K2按下时:从低位到高位流水灯(库函数P49)当K3按下时:从两边到中间再到两边点亮(数组+遍历P113)当K4按下时:从D8到D1逐盏点亮(数组+遍历P113)思考3:如何按键释放后显示动态流水灯呢?任务2-3按键控制信号灯(模式1)if位操作1按键检测去抖2按键判断即显示处理3按键释放(可略)按键查询处理:模式1VS模式21按键检测去抖2按键判断即显示处理3按键释放(可略)按键查询处理:模式1VS模式21按键检测去抖2按键判断(保存键值)3按键释放(可略)4显示处理任务2-3信号灯(模式1)模式1:按键判断即显示处理特点:显示处理受制于按键检测任务2-4霓虹灯(模式2)模式2:先按键判断获取键值,再根据键值显示处理;特点:按键检测完成后,独立刷新显示2.4.1

按键处理流程(模式1+模式2)模式2引例分析:模式2:先按键判断获取键值,再根据键值显示处理本质:分离按键判断与显示处理1)按键检测去抖2)按键判断:保存键值变量keyCode;3)显示处理:switch(keyCode)处理不同键值;或封装函数display(keyCode);汽车转向灯V3:按键检测去抖;等待释放;持续闪烁任务硬件接口+软件思路按键查询处理:1按键检测,2按键判断,3按键释放,4显示处理初始状态:8个LED全灭

当K1按下时:从高位到低位流水灯(循环移位P51)当K2按下时:从低位到高位流水灯(库函数P49)当K3按下时:从两边到中间再到两边点亮(数组+遍历P113)当K4按下时:从D1到D8逐盏点亮(数组+遍历P113)思路:main函数流程实现按键处理框架!不同流水灯代码封装函数!模式2:按键判断存键值,再判断键值显示处理任务2.4:按键控制霓虹灯(模式2)任务2-4霓虹灯(模式2)if位操作1按键检测去抖2按键判断(保存键值)3按键释放(可略)4显示处理思考4:如何简化if位操作的按键检测去抖呢?按键查询处理:模式1VS模式22.4.2switch+字节操作

任务2.4:按键控制霓虹灯(模式2)字节操作优化思考4:如何使用switch字节操作简化if位操作呢?P1P0P2P3单片机输入输出****读引脚***端口输入初始化字节操作(位运算符+控制字):P3|=0x0F;输入操作四个并行I/O接口的输入操作完全相同区分读引脚(外设)和读端口读引脚时,理论上需要向端口中相应位写入1,初始化为输入模式(由于芯片I/O口内部结构不同,进行初始化设置的要求严格性会有差异)2.4.2switch+字节操作

——字节操作初始化输入端口2.4.2switch+字节操作——字节操作输入按键状态P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0K4K3K2K1当K1按下时P3:

xxxx1110000011100x0E对P3进行高四位无关位清0?清0无关位如何通过字节操作获得按键的状态呢?如果编程实现:读入P3端口状态存入按键变量key中?2.4.2switch+字节操作——字节操作输入按键状态P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0K4K3K2K1

xxxx?

??&位运算符:位控制字?如何通过字节操作获得按键的状态呢?当K2按下时P3:如果编程实现:读入P3端口状态存入按键变量key中?P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0K4K3K2K1当K2按下时:key=P3&0x0F;//按键检测:读入P3口并清零高四位无关位

//便于按键判断处理00001110

0x0E当K1按下时:当K3按下时:当K4按下时:000011010x0D000010110x0B0000

0

1110x072.4.2switch+字节操作——字节操作输入按键状态

格式switch(表达式){}case

常量表达式1:

语句组1;break;case

常量表达式2

:语句组2;break;case

常量表达式3

:语句组3;break;……case

常量表达式n

:语句组n;break;default:

语句组n+1;执行过程就是对号入座,执行完退出;书写格式简洁明快,退出语句break;default语句的使用也很重要。字节操作获得的按键变量key2.4.2switch+字节操作——以任务2-3为例2、按键判断即显示处理(switch)1、按键检测(含去抖)2.4.2switch+字节操作——以任务2-3为例(模式1)1按键检测去抖2按键判断即显示处理3按键释放(可略)补充完整流程的switch字节判断代码段到P58笔记switch语句适用于多按键统一判断的字节操作,可以简化重复的去抖按键检测2.4.2switch+字节操作——以任务2-3为例(模式1)任务2.4:按键控制霓虹灯(模式2)字节操作优化1按键检测(去抖)2按键判断(保存键值)3按键释放(可略)4显示处理1按键查询处理的两种模式框架2按键输入的switch字节操作任务小结作业:1、复习项目1-2,提交项目2思维导图附件作业;2、完成复习题库作业,下次课期中理论测试;项目2综合任务附件作业(下周交并分享)。4谢谢单片机应用技术18物联网核心课程项目化实施课程任务2-51位数码管广告牌2.5.1数码管结构及显示原理2.5.2数码管静态显示接口及控制项目2C51与I/O口应用进阶案例引入任务2.5:1位数码管广告牌循环显示HELLO;或者0~9;或者任意符号一、任务硬件接口设计静态显示接口数码管显示原理2.5.1数码管结构及显示原理里程表仪器仪表倒车雷达空调电饭锅电梯实时时钟环境测控2.5.1数码管结构及显示原理00011111共阳极

VCC共阳极字型码dpgfedcba100100102.5.1数码管结构及显示原理(LEDSegmentDisplays)点亮哪些段?如何显示?各段点灯状态码?0x92显示数字图形hgfedcba共阳极字型码012.5.1数码管结构及显示原理字形码表P109显示字符共阳极数码管共阴极数码管dpgfedcba字型码dpgfedcba字型码011000000C0H001111113FH111111001F9H0000011006H210100100A4H010110115BH310110000B0H010011114FH41001100199H0110011066H51001001092H011011016DH61000001082H011111017DH711111000F8H0000011107H81000000080H011111117FH91001000090H011011116FH2.5.1数码管结构及显示原理如何连接单片机输出字型码实现显示呢?2.5.2数码管静态显示接口及控制+5VP1.0~P1.7段线(a~dp):连接到单片机8位I/O端口位线(com):固定连接到+5V或者地;共阳极:COM端固定接+5V;共阴极:COM端固定接地;特点:8个段选要独占一个并行I/O端口一位共阳极数码管接口实例2.5.2数码管静态显示接口及控制——一位数码管(LEDSegmentDisplays)unsignedcharcodedisp[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};P1=disp[5];2.5.2数码管静态显示接口及控制——一位数码管+5VP1类似数组实现的流水灯状态码任务2.51位数码管广告牌设计与实现一、任务硬件接口设计PROTEUS模拟仿真PROTEUS模拟仿真二、任务软件设计(功能分析+编程实现)1、字符码数组变量disp定义并初始化unsignedcharcodedisp[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};2、主函数循环遍历数组(循环四要素)任务需求:循环显示HELLO;或者0~9;或者任意符号思考:多位数码管如何显示连接呢?51单片机P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7每一个数码管占用一个I/O口段选线COM+VCC多位数码管静态显示接口二位数码管的静态电路连接51单片机COMCOMCOMCOMP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7四个I/O口全部占用四位数码管的静态电路连接多位数码管静态显示接口多位数码管的静态显示接口问题:每一个数码管,必须占用一个端口;因此,虽然亮度高,编程简单,但是浪费I/O端口资源;当任务需求超过两个数码管,一般不采用静态连接的方式,而是采用动态显示的连接方法。多位数码管静态显示接口共用字段线每位数码管的公共端作为位控线软件控制:逐位动态扫描数码管——任务3-1多位数码管动态显示接口1数码管结构及显示原理2数码管静态显示接口及控制任务小结4谢谢单片机应用技术18物联网核心课程项目化实施课程项目1阶段复习:初识单片机任务1_1让单片机动起来任务1_2第一个C51程序:信号灯闪烁任务1_38个信号灯流水控制系统任务1_4让蜂鸣器发声综合任务7阶音律(函数、循环嵌套、数组综合应用)项目1初识单片机1.1.1认识硬件开发板及下载程序1.1.2

Proteus硬件仿真及下载程序任务1.1

让单片机动起来点灯项目1初识单片机绪论:计算机系统-》嵌入式系统-》嵌入式IC-》单片机MCU-》51单片机-》硬件接口+软件编程的嵌入式开发方法任务1.2

第一个C51程序:信号灯的闪烁1.2.1软件开发集成环境KeilC51(教材P2~11)1.2.2C51程序基本结构(教材P51)1.2.3单片机的内部结构与存储器(教材P13+P29~P34)1.2.4

KeilC51Debug调试进阶和变量的存储方式(教材P40~P46+P81)

项目1初识单片机爸妈一家之主

控制中心家里的行动节拍记忆力很好的大哥没记性反应快的二哥安排日程的二姐外交沟通的大姐孪生四兄弟处理应急事件的三姐1.2.351单片机的内部结构——和谐的大家庭学习进阶:各种单片机芯片的片上外设资源模块4个物理存储器:片内ROM+RAM;片外ROM+RAM1.2.3单片机的内部结构与存储器

1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221片内RAM256B片内ROM4KB00HFFH7FH80H(高128B)(低128B)数据存储器SFR学习进阶:各种单片机芯片的存储器分区结构及SFR任务1.3

8个信号灯流水控制系统1.3.1单片机内部结构与外部引脚(教材P25)1.3.2硬件电路最小系统电路(教材P27)1.3.3单片机的工作过程(教材P33)1.3.4单片机的时序(教材P27)1.3.5巧用#define与typedef优化程序(教材P81)1.3.6使用~

及<<位运算符优化程序(教材P88)项目1初识单片机1.3.4单片机的时序晶振频率振荡信号频率fosc振荡信号周期Tosc(节拍P)状态时钟S机器周期(最基本时序单位)2分频6分频单周期指令双周期指令四周期指令foscToscTosc=1/foscT机器=12*Tosc=12

/fosc学习进阶:各种单片机芯片的时钟系统任务1.4

让蜂鸣器发声1.4.1认识蜂鸣器(P23)1.4.2单片机的并行I/O口(P39)综合任务7阶音律(函数、循环嵌套、数组综合应用)P1P0P2P3单片机并行I/O口的兼职8位双向8位双向8位双向8位双向一专多能P0口简单专职P1口专兼皆备P2口第二功能身兼两职P3口1.4.2单片机的并行I/O口学习进阶:各种单片机芯片的并行I/O端口3、循环嵌套,区分内外循环结构和功能1、#define和typedef,sbit位操作2、自定义函数,蜂鸣器方波发声,延时时间参数决定音调项目2阶段复习:C51与I/O口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论