任务2-4-1 模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)

2024-07-11
| 21页
| 34人阅读
| 1人下载
普通

内容正文:

子任务2-4-1 模拟汽车转向灯 一.任务目标 (1)掌握单片机的位运算符的功能及应用; (2)掌握单片机子程序的编写及调用方法; (3)掌握单片机延时程序的编写方法; (4)掌握循环程序的编写方法; 二.任务要求 任务描述:用单片机控制两个发光二极管的亮灭模拟汽车的转向灯。 三. 相关知识 1)条件语句与开关语句 (1)条件语句 ① 格式1: if(条件表达式) {语句} ② 格式2 if(条件表达式) {语句1} else {语句2} ③ 格式3 if(条件表达式1) {语句1} else if(条件表达式2) {语句2} else if(条件表达式3) {语句3} … else if(条件表达式n) {语句n } else {语句n+1} (2)开关语句 开关语句说明: ① 当switch后面表达式的值与某一“case”后面的常量表达式的值相等时,就执行该“case”后面的语句,遇到break语句就退出switch语句。 ② Switch后面括号内的表达式,可以是整型或字符型表达式,也可以是枚举型数据。 ③ 每一个case常量表达式的值必须不同。 ④ 每个case和default的出现次序不影响执行结果,可先出现default,再出现其它case。 2)延时子程序 (1)时序分析: ① 时钟周期 ② 机器周期 ③ 指令周期 (2)延时程序 软件延时程序在单片机程序设计中应用十分广泛,其主要设计思想是利用空语句构成循环程序,只占用CPU的时间,而不进行任何实质性操作,来实现延时功能。空语句只有一条:“;”,没有任何具体的功能,只是延迟1个机器周期的时间 四、任务分析 1)硬件电路 图2-4- 1 模拟汽车转向灯电路图 2)程序分析 五.任务实施 (1)在Proteus中按照图2-4-1搭接好电路; (2)在keil软件中编辑逻辑程序,进行编译,得到HEX格式文件; (3)将所得的HEX格式文件在Proteus中加载到单片机芯片中; (4)在Proteus中仿真,看发光二极管是不是在闪烁; (5)Proteus中结果正常后,用实际硬件搭接电路,通过编程器将HEX格式文件下载到AT89C51中,通电看实际效果。 六、任务总结 子任务2-4-2 8路抢答器设计 一.任务目标 (1)掌握单片机的寄存器的功能及应用; (2)掌握单片机的开关语句的应用; (3)初步掌握按键电路的结构及相关编程方法。 (4)掌握数组的应用。 二.任务要求 任务描述:用8个独立式按键作为抢答输入按键,标号分别为K0~K7,当某一参赛者首先按下抢答器按钮时,在数码管上显示抢答成功的参赛者的标号,此时抢答器不再接受其他输入信号,直到按下系统复位按钮,系统再次接受下一轮的抢答输入。 三. 相关知识 1)位地址 (1)位寻址区:在51单片机中,有一部分RAM和一部分SFR是具有位寻址功能的,也就是说这些RAM的每一个位都有自己的地址,可以直接用这个地址来对这些位单独进行操作。 (2)可以位寻址的特殊功能寄存器:51单片机中有一些SFR也是可以进行位寻址的,这些SFR的特点是其字节地址均可被8整除,如A累加器,B寄存器、PSW、IP(中断优先级控制寄存器)、IE(中断允许控制寄存器)、SCON(串行口控制寄存器)、TCON(定时计数器控制寄存器)、P0~P3(I/O端口锁存器)。 2)位操作指令 MCS-51单片机的硬件结构中,有一个位处理器(又称布尔处理器),它有一套位变量处理的指令集。在进行位处理时,C(就是我们前面讲的进位位)称“位累加器”。有自己的位RAM,也就是我们刚讲的内部RAM的20H~2FH这16个字节单元即128个位单元,还有自己的位I/O空间(即P0.0~P0.7,P1.0~.P1.7,P2.0~P2.7,P3.0~P3.7)。当然在物理实体上它们与原来的以字节寻址用的RAM及端口是完全相同的,或者说这些RAM及端口都可以有两种用法。 四、任务分析 1)硬件电路 图2-4- 2 8路抢答器设计电路 2)程序分析 五.任务实施 (1)在Proteus中按照图2-4-2搭接好电路; (2)在keil软件中编辑逻辑程序,进行编译,得到HEX格式文件; (3)将所得的HEX格式文件在Proteus中加载到单片机芯片中; (4)在Proteus中仿真,按下按键,看相应的数码管是否有显示; (5)Proteus中结果正常后,用实际硬件搭接电路,通过编程器将HEX格式文件下载到AT89C51中,通电看实际效果。   六、任务总结 知识梳理与总结 (1)片内RAM与片外RAM之间的数据传送。 (2)了解各指令功能及对PSW的影响,重点注意用除法指令来得到一个数各位的BCD码的方法。 (3)运算符控制流水灯状态。 (4)数码管显示的接口电路连接方法及实现数据显示的编程方法。 (5)循环控制函数的应用,重点掌握循环次数的控制方法。 (6)子程序的编写及调用要注意。 (7)通过多重循环实现长时间延时子程序的编写方法。 (8)注意四个I/O口的使用技巧,尤其注意P0口在作为输出时应接上拉电阻。在读I/O口数据时,可能是读管脚数据,也可能是读I/O口锁存器的数据,两者是不一样的。在读I/O口管脚数据时,应注意先输出全1数据。 (9)注意键盘开关电路的连接方法,运用位判断转移指令实现判断是否有按键按下的方法。 1.试编程将10个数送到地址为20H~29H的片内RAM中,然后再将这10个存储器中的内容送到地址为1000H~1009H的片外RAM中去。 2.单数码管轮流显示10个进制数码,要求从9到0轮流显示,循环不断。 3.试编程实现32个LED的暗点右移动。 4.试编程实现32个LED的亮点左移。 5.8个LED灯亮闪烁控制,要求亮1秒,灭0.5秒,不断闪烁10次。   习题: $$

资源预览图

任务2-4-1  模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)
1
任务2-4-1  模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)
2
任务2-4-1  模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)
3
任务2-4-1  模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)
4
任务2-4-1  模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)
5
任务2-4-1  模拟汽车转向灯(课件)-《单片机技术与应用》同步教学(电子工业版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。