1、2、简单I/O端口扩展应用程序的编写。教学难点1、应用程序的编写。2、外部数据传送指令的使用。教学过程1、通过对交通灯功能的讨论,引出项目任务。2、简单I/O端口扩展的芯片简介。3、简单I/O端口扩展的接线方法及程序编写。4、相关指令学习。教学后记二、教学实施过程实施环节教学内容导学方法组织教学1、检查学生出勤情况并做好记录。2、调整学生的注意力,为上课作准备。互动交流复习提问1、根据前面所学知识,如何进行I/O端口的扩展?2、交通灯的作用是什么?有什么功能?本项目的终极目标是制作一个单片机控制的能显示倒计时时间的交通灯控制电路。提问导思导入在项目8中用数码管显示时间,为了不造成资源浪费,我们
2、利用串行口方式0进行输出口扩展。但利用串行口方式0扩展并行输出口,在使用上有一定局限性,使用不灵活,所以,我们在进行项目制作之前,学习MCS-51单片机简单I/O口的扩展方法。启发学习积极性讲授新课一、并行I/O端口的扩展常用的并行I/O端口扩展方法有简单I/O端口扩展、利用串行口进行I/O端口扩展(项目八中已介绍)和利用可编程I/O扩展芯片进行I/O端口扩展等。由于简单I/O端口扩展方法简单实用,这里仅对该方法加以介绍。1、简单I/O端口扩展芯片简介通常采用三态缓冲器(例如74LS244、74LS541)来扩展并行输入,用8D锁存器(例如74LS373、74LS377、74HC573)来扩展
3、并行输出。采用这些简单接口芯片进行I/O端口扩展,电路简单、编程方便、且价格低廉,是I/O端口扩展的一种首选方案。图10-2是74LS541和74HC573的逻辑符号图。74LS541是三态缓冲器,采用20脚双列直插封装。其中,D0D7为数据输入端,Q0Q7为数据输出端;、为使能端,当、 图10-2为0时,输入端数据传送到输出端,否则输出端为高阻态;另外还有电源引脚两个,分别是VCC(20脚接+5V)和VSS(10脚接地)。 74HC573是8D锁存器,采用20脚双列直插封装。为片选,当为0时,才可以对该芯片进行逻辑操作;LE为锁存允许端,当LE=1时,输入端数据传送到输出端,当LE=0时,输
4、入端数据锁存在输出端;2、简单I/O端口扩展举例例10.1 利用两个8D锁存器74HC573扩展两个8位并行输出口。单片机扩展两个8位并行输出端口的硬件电路如图10-3所示,P0口为两个扩展输出端口的公共端口,由P2.0和P2.1来确定由哪个扩展输出端口输出数据。当需要将A中数据从U2输出时,执行如下指令即可。 CLR P2.0 ;U2锁存数据 CLR P2.1 ;U3锁存数据 MOV P0,A ;将A中数据送给P0 NOP ;等待一个机器周期 SETB P2.0 ;数据从U2输出当需要将A中数据从U3输出时,执行如下指令即可。CLR P2.0 ; SETB P2.1 ;数据从U3输出 NOP
5、 图10-3采用本例方法,利用P0、P2最多可扩展8个8位并行输出端口。例10.2 采用74LS541和74LS373为单片机扩展8位并行输入和8位并行输出端口。扩展输入输出端口的硬件电路如图10-4所示,将74LS541和74LS373作为单片机的外部数据存贮器单元来进行操作在图10.3中,P0口作为双向8位数据线,既能从74LS541输入数据,又能从74LS373输出数据。P2.0分别与、“或运算”、“或非运算”作为输入口和输出口的选通及锁存信号。由于74LS541和74LS373通过逻辑电路只与16位地址线中的P2.0相连,都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这
6、个地址不是唯一的,因为只要保证P2.0=0,二者就被选中。例如0000H也是二者的地址,但是,一般地址形成的惯例是不用的地址线设为1)。图10-4当需要输入和输出数据时可通过如下程序完成。MOV DPTR,#0FEFFH ;指向74LS541、74LS373MOVX A, DPTR ;将74LS541对应端口数据输入MOVX DPTR, A ;输出数据给74LS373对应端口二、相关指令学习1、外部数据传送指令 MOVX A,DPTR ; A(DPTR)该指令的作用是将DPTR指向的外部数据存贮器单元的内容送到A中。例如将外部数据存贮器2000H单元的内容送到A中,可执行以下指令:MOV DP
7、TR,#2000H ;建立地址MOVX A,DPTR ;取数据给A MOVX DPTR,A ;(DPTR)(A) 该指令的作用是将A中数据送到DPTR指向的外部数据存贮器单元中。例如将A中数据送到外部数据存贮器2100H单元,可执行以下指令:MOV DPTR,#2100H ;MOVX DPTR,A ;送数据2、算术运算类指令 DEC direct ;direct(direct)-1该指令的作用是将某一直接地址单元的内容减1。例如指令DEC 30H的作用是将30H单元的内容减1。3、控制转移类指令 DJNZ direct,rel ;direct中的内容减1,若不为0则转移,若为0则顺序执行。该指
8、令在使用时,一般用标号代替rel。例如 DJNZ 30H,MA1 在执行时先将30H单元的内容减1并保存,减1后若不为0,则转移到MA1处;否则顺序执行。 NOP ;空操作。执行时只占用一个机器周期。用多媒体展示图10-2或画在黑板上进行介绍。重点介绍引脚使用。用多媒体展示图10-3或画在黑板上,介绍连接方法,重点介绍编程方法。用多媒体展示图10-4或画在黑板上,介绍连接方法。重点介绍编程方法。对于外部数据传送指令要多举几个例子,以便学生能够掌握并灵活运用。空操作指令介绍其用法。课堂小结1、简单I/O端口扩展方法及芯片介绍。2、简单I/O端口扩展的接线及编程。3、相关指令的作用及用法。课后作业
9、自我测评1题、2题、5题。任务2 数字显示交通灯控制电路硬件、软件设计数字时钟电路硬件、软件设计课件、单片机应用制作成品1、掌握简单I/O端口扩展的应用。2、掌握数字显示交通灯控制电路的整体构成。3、掌握相关指令的使用。4、理解应用程序的编程思路。1、应用I/O扩展完成数字显示交通灯控制电路设计。2、应用程序的编程思路及相关指令使用。1、应用程序的编写思路。1、复习提问简单I/O端口扩展方法,讨论交通灯控制特点。2、介绍项目任务要求。3、根据项目任务要求引导设计硬件电路。4、应用程序流程图绘制。5、应用程序设计。1、 检查学生出勤情况并做好记录。2、 调整学生的注意力,为上课作准备。1、I/O
10、端口的扩展有哪几种方法?2、数码管的动态显示方法?3、讨论交通灯控制的功能特点?在学习了简单I/O口扩展方法后,我们利用所学知识进行项目硬件电路设计。项目要求如下:1、东西、南北各用两位的LED数码管显示相应路口的倒计时时间;2、东西、南北各用三个(红、黄、绿)灯来指挥交通(项目制作中可用发光二极管代替);3、装一个紧急事件按键(或开关),当该按键闭合时,进入紧急事件状态,使各方向均亮红灯。一、项目硬件电路设计1、电路构成方案设计根据项目要求,本项目硬件由按键电路(紧急事件)、单片机最小应用系统、扩展输出电路、数码管显示电路和交通灯电路(发光二极管代替)构成。关键是扩展输出电路构成。扩展输出用
11、芯片74HC73来完成。2、电路设计根据电路构成方案设计,对各组成部分进行设计。关键是扩展输出及显示电路的设计。由于本电路比较复杂,只好由同学进行各组成部分进行设计。用多媒体展示整体图。2、元件选择 (1)复习晶振电路元件及复位电路元件的选择。(2)复习发光二极管电路元件选择。(3)数码管及限流电阻的选择。(4)扩展芯片选择:74HC573,上拉电阻R2R9:10K。二、应用程序编写1、指令复习请将下面每条指令举个应用例子。MOV Ri,A ;(Ri)(A) MOV direct,Ri;direct(Ri) MOV Ri,direct;(Ri)(direct) DIV AB ;A(A)/(B)
12、商,B(A)/(B)余数JNB bit,rel ;bit位为1则转移,为0则顺序执行DEC Rn ;Rn(Rn)-1MOVC A,A+DPTR ;A(A)+(DPTR)(DPTR)(A)DEC direct ;DJNZ direct,rel ;2、应用程序流程图绘制根据交通灯的实际转换规律,本项目程序实现的功能是:首先两个方向各亮黄灯5秒钟,来缓冲系统刚启动带来的混乱。然后东西方向绿灯25秒钟,黄灯5秒钟后红灯亮,同时南北方向亮红灯30秒钟,30秒钟之后亮绿灯,依此规律周期转换,期间两边相应换灯并显示相应的倒计时时间。当紧急事件按键按下时,东西南北均亮红灯。为了能够使交通灯及倒计时时间按上述要求规律周期变换,每隔一定时间要进行倒计时时间及灯控数据的变换,由4组数据周期交替变换,其变化规律如表10.1所示。表10-1 交通灯控制信号变化规律表数组灯控信号数据变换数据时间间隔东西倒计时时间南北倒计时时间第一组东西绿灯、南北红灯25秒30秒第二组东西黄灯、南北红灯5秒第三组东西红灯、南北绿灯第四组东西红灯、南北黄灯根据项目要求,绘制主程序流程图如图10-7所示。4、程序设计根据流程图编写程序。由于程序比较大,同学们进行程序的分析阅读,读懂各程序段的作用。用多媒体展示参考程序。 5、讨论应用程序可否进行修改老师和同学共同讨论电路构成方案。由
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1