1、单片机课程设计报告单片机课程设计报告 一、设计目的一、设计目的 1、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去, 提高我们的动脑和动手的能力。 2、通过交通信号灯控制系统的设计,掌握定时/计数哭的使用方法,和简单程序的 编写,最终提高我们的逻辑抽象能力。 二、设计任务和要求二、设计任务和要求 任务:任务:设计一个能够控制十二盏交通信号灯的模拟系统 要求:要求:利用单片机的定时器定时, 令十字路口的红绿灯交替点亮和熄灭, 并用 LED 灯显示倒计时间。 三、设计原理分析三、设计原理分析 1、 首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图所以,为东南 西北走
2、向。初始状态 0 为东西南北都红灯亮。然后转状态 1 东西绿灯通车,南北 红灯亮。过一段时间后,转状态 2,东西绿灯灭,黄灯闪几下,南北还是红灯。再 转状态 3,南北绿灯通车,东西红灯亮。过一段时间后转状态 4,南北绿灯灭,闪 几个黄灯,东西还是为红灯亮,一段时间后,又循环至状态 1。 列出交通信号灯的状态表如下列出交通信号灯的状态表如下: (其中,1 代表灯亮,0 代表灯灭) 状态状态 北北 西西 南南 东东 绿黄红 绿黄红 绿黄红 绿黄红 0 001 001 001 001 1 001 100 001 100 2 001 010 001 010 3 100 001 100 001 4 01
3、0 001 010 001 2、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信 号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的 I/O 口上的 P1 口中的 6 个引脚即可来控制 6 个信号灯。 人行道 人行道 人 行 道 人 行 道 3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时 一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。 4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间 的显示功能,实现其功能的扩展。 四、硬件资源及其分配四、硬件资源及其分配 主要用到的硬件:主要用到的硬件:P1
4、口、P3 口、LED 数码管、LED 发光二级管、定时器 T0 硬件分配:硬件分配: 1、P1 口:做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下: 方向方向 状态状态 无无 南南 北北 东东 西西 十 六 进十 六 进 制值制值 说说 明明 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 0 00 001 001 09H 都为红灯亮 1 00 001 100 0CH 东西绿南北红 2 00 001 010 0AH 东西黄闪 南北红 00 001 000 08H 3 00 100 001 21H 东西红南北绿 4 00 010 001 11H 南北
5、黄闪 东西红 00 000 001 01H 2、P3 口中的 P3.0(RXD)和 P3.1(TXD)作特殊用途,数据(倒计时时间)从 RXD 端输 入,TXD 端输出。 3、74LS240 和 LED 发光二极管用来显示灯亮情况。 4、定时/计数器 T0 用来产生 1 秒的定时 5、74LS240 和数码管用来显示时间 五、硬件图五、硬件图 六、程序框图六、程序框图 七、程序流程图及程序七、程序流程图及程序 程序流程图:程序流程图: 主程序主程序: 程序清单:程序清单: ;主程序: ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV SCO
6、N,#00H ;设置串行口工作方式为方式 0 CLR TI CLR RI MOV A,#09H ;置初态,东南西北都为红灯亮 MOV P1,A MOV R2,#4 LCALL DELAY ; 调用 4 次 1 秒的延时子程序 H1:MOV A,#0CH ;东西绿灯亮,南北红灯亮 MOV P1,A MOV R2,#10 LCALL DELAY ;调用 10 次 1 秒的延时子程序 MOV R7,#03H ;黄灯闪烁次数为 3 次 H2:MOV A,#0AH ;东西黄灯闪,南北红灯亮 MOV P1,A MOV R2,#1 LCALL DELAY ;每 1 秒闪烁一次 MOV A,#18H ;南北红灯亮,南北黄灯也闪 MOV P1,A MOV R2,#1 LCALL DELAY ;调用 1 秒的延时子程序 DJNZ R7,H2 ;判断闪烁次数是否达到 MOV A,#21H ;东西红灯亮,南北