基于51单片机的交通灯控制系统课程设计报告内容摘要:
NG EQU。 南北方向绿灯 ER EQU。 东西方向红灯 EY EQU。 东西方向黄灯 EG EQU。 东西方向绿灯 BREAKRULE EQU。 交通违章模拟信号输入 SOUND EQU。 警报声输出信号 PEAKORNORM EQU。 高峰信 号输入 ALLSTOP EQU。 全部禁行输入 ALLGO EQU。 全部通行输入 NSTHROUGH EQU。 南北通行输入 EWTHROUGH EQU。 东西通行输入 SELECTDIR EQU。 方向选择输入 ORG 0000H LJMP MAIN。 跳转到主函数 ORG 0003H LJMP RESET。 跳转到设定时间子函数 ORG 000BH LJMP TIME。 跳转到定时子函数 ORG 001BH LJMP DOG。 看门狗子程序 ORG 0100H MAIN: MOV NSNORM,28H。 主程序开始 ,各 方向寄存器赋初值 MOV EWNORM,14H MOV NSPEAK,1EH MOV EWPEAK,0AH REMAIN: MOV COUNTER,0AH。 设置计数 1 秒的循环次数为 10 SETB DIRECTION。 设置通车方向标志 ,默认从南北方向开始 CLR DISPLAYYELLOW。 设定各个标志、寄存器的初值 CLR ONESECOND CLR SETNEW CLR SOUND JNB PEAKORNORM,PEAKINPUT MOV NSPUT,NSNORM MOV EWPUT,EWNORM SJMP DISPLAYNUMPUT PEAKINPUT: MOV NSPUT,NSPEAK MOV EWPUT,EWPEAK DISPLAYNUMPUT: MOV DISPLAYNUM,NSPUT。 设置倒计时初值 MOV SP,5FH。 设置堆栈内第一个数位置为 60H MOV TMOD,11H。 T0 设置为方式 1 定时, T1 设置为方式 1 定时 LCALL FEEDDOG。 喂狗 MOV TL0,0B0H。 为 T0 设置初值,使定时为 秒 MOV TH0,3CH START: SETB EX0。 开中断 0 SETB IT0。 设置中断 0 为跳沿触发 SETB TR0。 启动 T0 SETB ET0。 允许 T0 中断 SETB ET1。 开中断 1,用于看门狗 SETB PX0。 设置 设定时间 中断为高级中断 CLR PT0。 设置定时器为低级中断 SETB PT1。 设置看门狗中断为高级中断 SETB EA。 CPU 开放中断 LCALL LIGHT。 开始显示交通灯、倒计时 LCALL DISPLAYLED。 重定时检测 LOOP: LCALL FEEDDOG。 喂狗 JB SETNEW,REMAIN。 检测是否已经重新设定时间。 计时到 1 秒检测 JNB ONESECOND,ALLRED CLR ONESECOND DEC DISPLAYNUM MOV A,DISPLAYNUM CJNE A,02H,EQ0 SETB DISPLAYYELLOW LCALL LIGHT LJMP NUMDECLINE EQ0: CJNE A,00H,NUMDECLINE CLR DISPLAYYELLOW CPL DIRECTION LCALL LIGHT。 LED 交通灯显示 LCALL RELOAD NUMDECLINE: LCALL DISPLAYLED。 显示倒计时剩余时间。 全部禁行 ALLRED: JB ALLSTOP,NSCLEAR。 判断是否全部禁止 CLR TR0。 停止计时 SETB NR。 都亮红灯 CLR NY CLR NG SETB ER CLR EY CLR EG ALLREDWAIT: LCALL FEEDDOG。 等待恢复 JB ALLSTOP,ALLREDBACK SJMP ALLREDWAIT ALLREDBACK: SETB TR0。 继续计时 ,禁止前交通情况 LCALL LIGHT。 南北通行 NSCLEAR: JB NSTHROUGH,EWCLEAR。 判断是否南北通行 CLR TR0。 停止计数 CLR NR。 南北方向通行 CLR NY SETB NG SETB ER CLR EY CLR EG NSCLEARWAIT: LCALL FEEDDOG。 等待恢复 JB NSTHROUGH,NSCLEARBACK SJMP NSCLEARWAIT NSCLEARBACK: SETB TR0。 继续计时 ,恢复以。基于51单片机的交通灯控制系统课程设计报告
相关推荐
用 keil软件编写源程序。 在 protues中画好其电路图如下图。 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。 软件调试可以采取离线调试和在线调试两种方式。 前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。 本次课题, Keil软件来调试程序,通过各个模 块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。 图 实时时钟 仿真图
2:MOV 30H,20H MOV 31H,7EH MOV R7,06H SSE1:MOV R1,20H MOV A,30H CPL A MOVX @R1,A。 字位送入 MOV R0,31H MOV A,@R0 MOV DPTR,DDFF MOVC A,@A+DPTR。 取字形代码 MOV R1,21H MOVX @R1,A。 字形送入 MOV A,30H RR A。 右移 MOV 30H,A
器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。 与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。 ( 4)工业自动化 在工业控制和机电一体化控制系统 中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。 ( 5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统
止新数据输入,在时钟端( CLOCK)脉冲上升沿作用下 Q0为低电平。 当 A、 B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。 表 31 74LS164 工作参数 参数 最小值 标准值 最大值 单位 高电平输入电压 2 — — V 低电平输入电压 — — V 高电平输出电压 V 低电平输出电压 — V 时钟频率 0 — 25 MHZ
in)) /*当时间到闹钟的时间时,蜂铃器叫 5次 */ { if(ring5) { ring++。 alarm=0。 delay(100)。 alarm=1。 } } } } void Leap_Nonleap(int aa) /*判断是否为闰年 */ { if(((aa%4==0)amp。 amp。 (aa%100!=0))||(aa%400==0)) {
第 三 章 软件系统设计介绍 为了使汇编程序段和 C 程序能够兼容,必须为汇编语言编写的程序段指定段名并进行定义。 如果要在它们之间传递函数,则必须保证汇编程序用来传递函数的存储区和 C 函数使用的存储区是一样的。 被调用的汇编函数不仅要在汇编程序中使用伪指令以使 CODE 选项有效,并声明为可再定位的段类型,而且还要在调用它的 C 语言主程序中进行声明。 函数名的转换规律如表 所示。