单片机项目3 8个LED发光二级管控制课件.ppt
《单片机项目3 8个LED发光二级管控制课件.ppt》由会员分享,可在线阅读,更多相关《单片机项目3 8个LED发光二级管控制课件.ppt(59页珍藏版)》请在三一办公上搜索。
1、项目3 8个LED发光二极管控制,知识与能力目标,进一步掌握单片机的I/O口功能与特性。,1,掌握简单按键接口电路及消除抖动的措施。,2,初步学会按键软件消抖的编程实现方法。,3,4,学会使用汇编语言进行较复杂I/O口控制程序的分析与设计。,1,2,学会使用C语言进行较复杂I/O口控制程序的分析与设计。,5,进一步学习Keil uVsion3与Proteus软件的使用。,6,项目3 8个LED发光二极管控制,训练任务3.1 双边拉幕灯控制,3.1.1 训练目的与控制要求,3.1.3 Proteus仿真电路图创建,3.1.5 C语言程序设计与调试,3.2.2 硬件系统与控制流程分析,3.1.2
2、硬件系统与控制流程分析,3.1.4 汇编语言程序设计与调试,3.2.1 训练目的与控制要求,3.2.3 Proteus仿真电路图创建,3.2.4 汇编语言程序设计与调试,3.2.5 C语言程序设计与调试,2,训练任务3.2 双向跑马灯控制,训练任务3.1 双边拉幕灯控制,1.训练目的,3.1.1 训练目的与控制要求,2.训练任务,训练任务3.1 双边拉幕灯控制,所示电路为一个89C51单片机控制8个LED发光管进行“双边拉幕灯控制”运行的电路原理图,LED1至LED4为模拟的左边幕,LED5至LED8为模拟的右边幕。该单片机应用系统的具体功能为:当系统上电运行工作时,模拟左右两边幕的LED灯同
3、步由两边向中间逐一点亮,当全部亮后,再同步由中间向两边逐一熄灭。以此往复循环运行,形成“双边拉幕灯”效果。开关S2用于系统的运行和停止控制,当其闭合时,系统工作;当其断开时,系统暂停处于当前状态,训练任务3.1 双边拉幕灯控制,3.训练要求,训练任务要求如下:1)进行单片机应用电路分析,并完成Proteus仿真电路图的绘制。2)根据任务要求进行单片机控制程序流程和程序设计思路分析,画出程序流程图。3)依据程序流程图在Keil中进行源程序的编写与编译工作。4)在Proteus中进行程序的调试与仿真工作,最终完成实现任务要求的程序。5)完成单片机应用系统实物装置的焊接制作,并下载程序实现正常运行。
4、,训练任务3.1 双边拉幕灯控制,3.1.2 硬件系统与控制流程分析,1.任务硬件系统分析,该电路是在单片机最小系统的基础之上,添加8个LED驱动电路设计而成。所有LED电路都与P1连接,接口方式均设计为低电平驱动。同时,在P2.3口外接一个开关接口电路。,2.任务控制流程分析,根据电路原理图和任务控制功能要求可知,本任务功能上主要是通过一个开关控制单片机应用系统的运行和停止。当开关断开时,系统暂停且处于当前状态;当开关闭合时,系统运行。运行方式为:左右两边幕的LED灯同步由两边向中间逐一点亮,当全部亮后,再同步由中间向两边逐一熄灭,以此往复循环运行。如图3-2所示为本任务程序设计的程序控制流
5、程图。,训练任务3.1 双边拉幕灯控制,训练任务3.1 双边拉幕灯控制,3.1.3 Proteus仿真电路图创建,表3-1 元器件配置表,训练任务3.1 双边拉幕灯控制,图3-3 双边拉幕灯控制仿真图,汇编语言程序设计分析,训练任务3.1 双边拉幕灯控制,3.1.4 汇编语言程序设计与调试,1)按照前面任务2.1.4中Proteus与Keil联调的步骤完成基本的软件设置。如果前面已经设置过一次,在此可以跳过忽略。2)用Proteus打开已绘制好的“双边拉幕灯控制.DSN”文件,在Proteus的“Debug”菜单中选中“Use Remote Debug Monitor(远程监控)”。同时,右键
6、选中STC89C51单片机,在弹出对话框“Program File”项中,导入在Keil中生成的十六进制HEX文件“双边拉幕灯控制.HEX”。3)用Keil打开刚才创建好的“双边拉幕灯控制.UV2”文件,打开窗口“Option for Target工程名”。在Debug选项中右栏上部的下拉菜单选中Proteus VSM Simulator。接着再点击进入Settings窗口,设置IP为127.0.0.1,端口号为8000。,训练任务3.1 双边拉幕灯控制,4)在Keil中点击 ,使用单步执行来调试程序,同时在Proteus中查看直观的仿真结果。这样就可以像使用仿真器一样调试程序了,如图3-4所
7、示。,图3-4 Proteus与Keil联调界面,训练任务3.1 双边拉幕灯控制,首先,将Proteus仿真电路中的开关SW闭合,来联合调试当开关闭合时的系统运行情况。当执行完“MOV R0,#0FFH”、“MOV R1,#7EH”、“MOV R2,#3CH”、“MOV R3,#18H”、“MOV R4,#00H”程序时,能够看到右侧Keil软件CPU窗口中R0=0XFF(全都熄灭的值)、R1=0X7E(左右各点亮一盏其余熄灭的值)、R2=0X3C(左右各点亮两盏其余熄灭的值)、R3=0X18(中间两盏熄灭其余点亮的值)以及R4=0X00(全都点亮的值)的赋值。当单步执行程序,按顺序分别执行完
8、“MOV P1,R0”、“MOV P1,R1”、“MOV P1,R2”、“MOV P1,R3”和“MOV P1,R4”程序语句后,就能看到LED灯由两边同步向中间逐一点亮的效果,如图3-5和图3-6所示。,训练任务3.1 双边拉幕灯控制,图3-5 点亮2个LED,训练任务3.1 双边拉幕灯控制,图3-6 点亮8个LED,训练任务3.1 双边拉幕灯控制,当单步执行程序,按顺序分别执行完“MOV P1,R4”、“MOV P1,R3”、“MOV P1,R2”、“MOV P1,R1”、“MOV P1,R0”程序语句后,就能看到LED灯由中间同步向两边逐一熄灭的效果,如图3-7所示。,训练任务3.1 双
9、边拉幕灯控制,其次,将Proteus仿真电路在联合调试过程中断开开关SW,观察开关断开时的系统运行情况。,训练任务3.1 双边拉幕灯控制,Proteus仿真运行,图3-9 仿真运行结果(一)界面,当开关闭合时,系统运行,观察到LED灯由两边同步向中间逐一点亮,其运行结果如图3-9。,训练任务3.1 双边拉幕灯控制,图3-10 仿真运行结果(二)界面,当全部点亮后,再由中间同步向两边逐一熄灭,其运行结果如图3-10,以此往复循环运行。,训练任务3.1 双边拉幕灯控制,图3-11 仿真运行结果(三)界面,当开关断开时,系统运行暂停,会观察到LED灯运行暂停在SW开光断开之前的状态,其运行结果如图3
10、-11所示。,仿真运行视频,C语言程序设计分析,训练任务3.1 双边拉幕灯控制,3.1.5 C语言程序设计与调试,1)按照前面任务2.1.5中Proteus与Keil联调的步骤完成基本的软件设置。如果前面已经设置过一次,在此可以跳过忽略。2)用Proteus打开已绘制好的“双边拉幕灯控制.DSN”文件,在Proteus的“Debug”菜单中选中“Use Remote Debug Monitor(远程监控)”。同时,右键选中STC89C51单片机,在弹出对话框“Program File”项中,导入在Keil中生成的十六进制HEX文件“双边拉幕灯控制.HEX”。3)用Keil打开刚才创建好的“双边
11、拉幕灯控制.UV2”文件,打开窗口“Option for Target工程名”。在Debug选项中右栏上部的下拉菜单选中Proteus VSM Simulator。接着再点击进入Settings窗口,设置IP为127.0.0.1,端口号为8000。,训练任务3.1 双边拉幕灯控制,4)在Keil中点击 ,使用单步执行来调试程序,同时在Proteus中查看直观的仿真结果。这样就可以像使用仿真器一样调试程序了,Proteus与Keil联调界面如图3-12所示。,训练任务3.1 双边拉幕灯控制,首先,将Proteus仿真电路中的开关SW闭合,来联合调试当开关闭合时的系统运行情况。当单步执行程序运行到
12、“LED=0X7E;”时,能够清楚地看到左侧Proteus仿真电路中P1口中P1.0和P1.7所接的LED发光管点亮,其余熄灭,如图3-13所示。,训练任务3.1 双边拉幕灯控制,当单步执行程序运行到“for(i=0;i1);”后,就会增加点亮2个LED灯,就能观察到LED灯由两边同步向中间逐一点亮的效果。直到程序进行完4次循环后,程序将跳出for程序段继续往下执行,如图3-14所示。,训练任务3.1 双边拉幕灯控制,当单步执行程序运行到“LED=0X18;”后,能够清楚地看到左侧Proteus仿真电路中P1口中P1.3和P1.4所接的LED发光管熄灭,其余点亮,如图3-15所示。,训练任务3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机项目3 8个LED发光二级管控制课件 单片机 项目 LED 发光 二级 控制 课件
链接地址:https://www.31ppt.com/p-1917499.html