题目 交通灯控制系统的设计 一、课程设计的目的与要求 1、课程设计目的: (1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。 (2)通过课程设计提高应用能力,分析问题和解决问题的能力。 (3)培养查阅资料的习惯,训练和提高自学,独立思考的能力。 2、课程设计要求 交通灯控制系统的设计 1) 掌握在单片机系统中扩展简单I/O接口的方法。 2) 掌握数据输出程序的设计方法。 3) 掌握模拟交通灯控制的实现方法。 4) 掌握外部中断技术的基本使用方法。 5) 掌握中断处理程序的编程方法。 从课程设计的目的出发,通过设计工作的各个环节,达到以下要求: (1)能够正确理解课程设计的题目和意义,全面思考问题。 (2)运用科学合理的方法,认真按时完成。 二、课程设计课题的分析 1、电路的设计 1)原理 要完成本实验,首先必须了解交通灯的亮灭规律。本实验需要用到试验箱上八个发光二极管中的六个,即红、绿、黄各两个。将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)作为南北方向的指示灯。交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。 各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮使相应使相应输入端为低电平。 当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假设急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本程序以单次脉冲为中断申请,表示有急救车通过,单次脉冲输出端P-接CPU板上的INT0。 2)、硬件电路图 图1—1 交通灯控制系统的硬件接线图 74LS273的输出00—07接发光二极管L1—L8,74LS273的片选CS273接片选信号CS2,此时74LS273的片选地址为CFA0—CFA7之间任选。 3)、程序流程图 主程序流程 图1—2 主程序软件流程图 中断程序流程图 三、课程设计的结果 1、程序 NAME JIAOTONGGENG OUTPORT EQU 0CFB0H ;端口地址 SAVE EQU 55H ;SAVE保存从端口CFA0输出的数据 CSEG AT 0000H LJMP START CSEG AT 4003H LJMP INT CSEG AT 4100H START: SETB IT0 ;中断程序初始化 SETB EX0 SETB EA MOV A,#11H ;置首显示码,两红灯全亮 MOV SAVE,A ;保存 ACALL DISP ;显示输出 ACALL DE3S ;延时3秒 LLL: MOV A,#12H ;东西路口绿灯亮,南北路口红灯亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延时10秒 MOV A,#10H ;东西路口绿灯灭 MOV SAVE,A ACALL DISP MOV R2,#05H ;东西路口黄灯闪烁5次 TTT: MOV A,#14H MOV SAVE,A ACALL DISP ACALL DE02S ;延时秒 MOV A,#10H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,TTT MOV A,#11H ;红灯全亮 MOV SAVE,A ACALL DISP ACALL DE02S ;延时秒 MOV A,#21H ;东西路口红灯亮,南北路口绿灯亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延时10秒 MOV A,#01H ;南北路口绿灯灭 MOV SAVE,A ACALL DISP MOV R2,#05H ;南北路口黄灯闪烁5次 KKK: MOV A,#41H MOV SAVE,A ACALL DISP ACALL DE02S ;延时秒 MOV A,#01H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,KKK JMP LLL ;转SSS循环 DE10S: MOV R5,#100 ;延时10秒 JMP DE1 DE3S: MOV R5,#30 ;延时3秒 JMP DE1 DE02S: MOV R5,#02 ;延时秒 DE1: MOV R6,#200 DE2: MOV R7,#126 DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RET DISP: MOV DPTR,#OUTPORT CPL A ;取反,点亮发光二极管 MOVX @DPTR,A RET ;中断处理程序 INT: PUSH ACC ;有关寄存器入栈 PUSH PSW MOV A,#11H ;两红灯全亮 ACALL DISP ACALL DELAY MOV A,SAVE ;将主程序中保存的数据再送给A ACALL DISP POP PSW ;有关寄存器出栈 POP ACC RETI DELAY:MOV R1,#100 DEL1 :MOV R2,#200 DEL2 :MOV R3,#126 DEL3 :DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET END 2、现象 将程序输入到单片机中,运行程序,可以观察到现象:首先是两个路口的红灯全亮,延时3秒之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时10秒后,东西路口绿灯灭,黄灯开始闪烁。闪烁5次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时10秒后,南北路口的绿灯灭,黄灯开始闪烁。闪烁5次后,再切换到东西路口方向,重复上述过程。 当有中断申请时,两个方向上的红灯亮,经过10秒急救车通过之后,恢复到急救车到来之前的状态继续运行,可有多次的中断申请。 四、课程设计的心得与体会 1.通过试验进一步理解和消化了书本知识,分析每个语句的含义,运用所学知识进行简单的程序设计。 了解了在单片机系统中扩展简单I/O接口的方法. 外部中断技术的基本使用方法,掌握了中断处理程序的编程方法。 2.通过在图书馆查阅各种单片机资料,培养了我自学和独立思考的能力。与同学交流研究,让我懂得了更多以前不明白的知识. 3.在课程设计过程中,不断调试程序和修改程序,提高了对单片机的应用能力,分析问题和解决问题的能力。