交通灯设计单片机汇编

合集下载

单片机课程设计交通灯(完整版)

单片机课程设计交通灯(完整版)
3.5.3.特性
门控串行数据输入
异步中央复位
符合 JEDEC 标准 no.7A
静电放电 (ESD) 保护:
·HBM EIA/JESD22-A114-B 超过 2000 V
·MM EIA/JESD22-A115-A 超过 200 V 。
多种封装形式
额定从-40 °C至 +85 °C和-40 °C至 +125 °C。
设计思想基于完成以上任务分析结合所学有关知识尤其是本学期所学关于单片机的中断系统和定时计数器的相关知识及应用我们知道对于15红绿黄四组各三盏灯的控制可以通过把这十二盏灯分别接到单片机的六个输出引脚若用p1口进行输出则分配如下at89c51l1l2l3l4l5l6东西红东西黄东西绿南北红南北黄南北绿led显示分布1642
亮灯规律:东西绿灯亮25s,南北红灯亮25s
东西绿灯闪5s,南北红灯亮5s
东西黄灯亮2s,南北红灯亮2s
东西红灯亮25s,南北绿灯亮25s
东西红灯亮5s,南北绿灯闪5s
东西红灯亮2s,南北黄灯亮2s
2.2.
(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
3.2.LED
3.2.1.七段数码显示器:
七段发光线段分别用a、b、c、d、e、f、g七个小写字母表示。
3.2.2.LED数码管:
半导体数码管又称LED数码管,是一种广泛使用的显示器件。LED有两种:共阳极型和共阴极型。
LED优点:亮度高、字形清晰,工作电压低(1.5~3V)、体积小、可靠性高、寿命长,响应速度极快。
1.引言
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

用51单片机控制交通灯汇编语言编写教材

用51单片机控制交通灯汇编语言编写教材

基于51单片机的交通灯控制系统设计摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

交通灯控制系统由80C51单片机、键盘、LED 显示、交通灯延时组成。

系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。

关键词:交通灯,单片机,自动控制一引言当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这个技术在19世纪就已经出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消!电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。

1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。

绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。

左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。

红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。

黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口!二概要设计2.1 设计思路利用单片机实现交通灯的控制,该任务分以下几个方面:a 实现红、绿、黄灯的循环控制。

要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。

单片机交通灯课程设计报告(含电路图_源程序).

单片机交通灯课程设计报告(含电路图_源程序).

摘要 (2)1.引言 (3)2.总体设计方案 (3)2.1. 设计思路 (3)2.1.1.设计目的 (3)2.1.2.设计任务和内容 (4)2.1.3.方案比较、设计与论证 (4)2.1.4.芯片简介 (6)2.2. 设计方框图 (9)3.设计原理分析 (9)3.1. 交通灯显示时序的理论分析与计算 (9)3.2. 交通灯显示时间的理论分析与计算 (11)3.3. 电路模块 (12)3.3.1.LED数码管显示模块 (12)3.3.2.LED红绿灯显示模块 (14)3.3.3.复位电路 (16)3.3.4.晶振电路 (17)4.结束语 (17)5.参考文献 (17)6.附录 (18)6.1. 附录1:程序清单 (18)6.2. 附录2:电路设计总图 (23)6.3附录3:实物图............................................................................ 错误!未定义书签。

摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

本系统采用单片机AT89S52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时等功能,较好的模拟实现了十字路口可能出现的状况。

单片机交通灯控制器的汇编程序设计共5页

单片机交通灯控制器的汇编程序设计共5页

单片机交通灯控制器的设计一. 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。

时间方向控制要求白天东西绿灯黄灯红灯南北红灯绿灯黄灯夜晚东西黄灯南北黄灯二. 总体设计方案现在流行的一种设计为两主干线相交的十字路。

本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。

在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。

其具体状态如图1。

状态持续时间/S 南北方向东西方向控制码绿黄红绿黄红1 40 亮灭灭灭灭亮01111110B2 5 灭亮灭灭灭亮10111110B3 20 灭灭亮亮灭灭11001111B4 5 灭灭亮灭亮灭11011101B5 按紧急键灭灭亮灭灭亮11011110B6 按夜晚键灭亮灭灭亮灭01111100B7 按恢复键恢复恢复恢复恢复恢复恢复恢复原来其系统框图如图2。

三.硬件电路的设计1. 单片机系统单片机系统采用atmel公司的AT89C51芯片,晶振选用6MHZ,电源电压采用5V。

其总体系统电路图见图3。

2. 信号灯与按钮电路的设计信号灯采用发光二极管组成,分红黄绿三种颜色。

该系统用于控制信号灯的输出线路有六条,按钮输出线有三条,应用AT89C51的P2.7,P3口来实现上述连接。

3个按钮一端通过上拉电阻连接到电源,并输入单片机,另一端接地,这样未按下时,输入是高电平,反之,为低电平。

采用软件消抖。

3. LED显示电路用LED显示器共有4位,需8位输出口用于位选输出,分别选用AT89C51的P1,P2口,驱动电路采用芯片7407驱动器。

四.软件设计本系统的软件包括主程序,显示程序和定时器溢出中断程序三部分。

1. 主程序:设置堆栈,定时器初始化,中断系统初始化,显示缓冲区赋初值,设置状态标志,状态切换。

51单片机设计交通灯(汇编语言)

51单片机设计交通灯(汇编语言)

题目:智能交通灯控制系统班级:p09电气四班姓名:刘强0903110429一、任务:设计并制作一个城市交道口交通灯控制糸统二、要求:根据下图交道口模型,装上交通灯。

交道口模型如图所示。

交通灯控制规则如下:1)每个街口有左拐、右拐、直行及行人四种指示灯。

每个灯有红、绿两种颜色。

自行车与汽车共用左拐、右拐和直行灯。

2)共有四种通行方式:①车辆南北直行、各路右拐,南北向行人通行。

南北向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。

②南北向左拐、各路右拐,行人禁行。

通行时间为1分钟。

③东西向直行、各路右拐,东西向行人通行。

东西向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。

④东西向左拐、各路右拐。

行人禁行。

通行时间为1分钟。

3)在通行结束前10秒钟,绿灯闪烁直至结束。

1, 基本部分:按照上述控制要求,用发光二极管代替交通灯,用PROTEUS绘制电路图,并仿真调试实现之。

2, 发挥部分:1.有倒计时时间显示。

2若交道口出现紧急情况,交警可将糸统设置成手动:全路口车辆禁行、行人通行。

紧急情况结束后再转成自动状态。

3当有119、120等特种车辆通过时,糸统自动转为特种车放行,其它车辆禁止状态。

特种车辆通过15秒钟后,糸统自动恢复,用模型车演示。

4其它自选措施。

智能交通灯控制系统1.系统功能的确定功能一:可以实现红绿灯的转换以及控制路口的基本功能。

功能二:有倒计时功能和最后十秒绿灯闪烁的功能。

功能三:出现紧急情况时,警察可以手动控制特殊状态,并维持交通。

功能四:119或120等特种车经过时,可转换成为特种车道行驶状态,并在情况消除后15秒,恢复原状。

2.方案论证2.1方案一:如下图所示,为proteus仿真图。

其中,P1,P0端口的8位分别来控制东西,南北方向的红绿灯。

且运用了4个74LS164的8位移位寄存器(串行输入,并行输出)来控制4个LED的数码显示,通过AT89C51单片机的P3.0,P3.1两个扩展端口来接4个并行连接的74LS164的DIN和CLK两个端口来显示倒计时的功能,这会产生乱码使得显示杂乱,而主程序以顺序执行为主,其中穿插着对P3.7的端口高低电平的测试和跳转语句来实现功能三,并且功能一、二在主程序中实现,没有功能四的的实现程序。

基于单片机设计的交通灯c程序

基于单片机设计的交通灯c程序

#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x0};uchar code table1[7]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};uint table2[5]={5,15,20,0,15};sbit dula=P1^0;sbit wela=P1^1;sbit beer=P3^7;sbit k1=P1^5;sbit k2=P1^2;sbit k3=P1^4;sbit k4=P1^6;sbit A1=P2^0;sbit A2=P2^1;sbit A3=P2^2;sbit A4=P2^3;uintcount,count1,count2,j,tz=79,kn2,t10=15,tc=15,tf=15,tb,te,t4,t5,n=4,k=1,kn,tt,ti=20,t11=20,t12=35 ,t13=40,t14=55,t15=60,t16=75;void init(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void delayms(uint x){uint y,z;for(y=x;y>0;y--)for(z=110;z>0;z--);}void display(uint td,uchar ta){uint num;P0=0xff;wela=1;wela=0;if(td==0)P0=table[ta];elseP0=ta ;dula=1;dula=0;if(num==7)num=0;P0=table1[num];num++;wela=1;wela=0;}void ts(){uchar shi,ge;ET0=0;shi=ti/10;ge=ti%10;if(k2==0){delayms(5);if(k2==0){kn2++;if(kn2==2) kn2=0;}while(!k2);}if(kn2==1){if(j==1) wela=1;else{display(0,shi);display(0,ge);display(0,shi);display(0,ge);display(1,0xff);display(1,0x0);display(1,0x0);}if(k3==0||k4==0){delayms(5);if(k3==0){table2[1]++;table2[4]++;table2[2]++;ti++;t10++;t11++;t12=t12+2;t13=t13+2;t14=t14+3;t15=t 15+3;t16=t16+4;tz=tz+4,tc++,tf++;}if(k4==0){table2[1]--;table2[2]--;table2[4]--;ti--;t10--;t11--;t12=t12-2;t13=t13-2;t14=t14-3;t15=t15-3;t1 6=t16-4;tz=tz-4;}while(!k3);while(!k4);tb=0;te=0;tt=0;n=4;k=1;}}ET0=1;}void incident(){ET0=0;if(k1==0){delayms(5);if(k1==0){kn++;if(kn==2){beer=1;kn=0;}}while(!k1);}if(kn==1){beer=0;if(j==1) wela=1;else{display(0,10);display(0,10);display(0,10);display(0,10);display(1,0xff);display(1,0x0);display(1,0x0);}}ET0=1;}void main(){uchar shia,gea,shib,geb;uint i;init();while(1){ts();incident();if(count1==10){count1=0;j++;if(j==2) j=0;}if(count2==5){count2=0;i++;if(i==4) i=0;}if(i==0) A1=0;else A1=1;if(i==1) A2=0;else A2=1;if(i==2) A3=0;else A3=1;if(i==3) A4=0;else A4=1;if(count==20){count=0;tt++; tb++; te++;if(tt>tz) tt=0;if(n==3||n==5) n=0;if(t4==tb) tb=0;t4=table2[n];tc=t4-tb ;if(tc==1) n++;if(k==3) k=0;if(t5==te) te=0;t5=table2[k];tf=t5-te ;if(tf==1) k++;}if(kn2==0&&kn==0){shia=tc/10;display (0,shia);gea=tc%10;display (0,gea);shib=tf/10;display (0,shib);geb=tf%10;display (0,geb);if (tt<t10)/*a方向-1绿*/{if(tt>=(t10-5)&&tt<=t10&&j==0)display(1,0x9);/*红*/else display(1,0x39);/*红*/display(1,0x0);/*黄*/display(1,0x6);/*绿*/}else if (tt>=t10&&tt<t11)/*黄*/{display(1,0x9);if(j==0) display(1,0x6);else display(1,0x0);display(1,0x30);}else if (tt>=t11&&tt<t12)/*b方向-1绿*/{if (tt>=(t12-5)&&tt<t12&&j==0) display(1,0xe);else display(1,0xf);display(1,0x0);display(1,0x30);}else if (tt>=t12&&tt<t13)/*黄*/{display(1,0xe);if(j==0) display(1,0x30);else display(1,0x0);display(1,0x1);}else if (tt>=t13&&tt<t14)/*a方向-2绿*/{if(tt>=(t14-5)&&tt<t14&&j==0) display(1,0x36);else display(1,0x3e);display(1,0x0);display(1,0x1);}else if (tt>=t14&&tt<t15)/*黄*/{display(1,0x36);if(j==0) display(1,0x1);else display(1,0x0);display(1,0x8);}else if (tt>=t15&&tt<t16)/*b方向-2绿*/{if(tt>=(t16-5)&&tt<t16&&j==0) display(1,0x31);else display(1,0x37);display(1,0x0);display(1,0x8);}else /*黄*/{display(1,0x31);if(j==0) display(1,0x8);else display(1,0x0);display(1,0x6);}}}}void time0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;count1++;count2++;}。

单片机红绿灯程序完整版

单片机红绿灯程序完整版

单片机红绿灯程序完整版交通灯设计交通灯设计方案:1:实现东西路----南北路红绿灯的交通指示。

2:东西路灯变化----南北路灯变化----3:红灯延时时间---25S绿灯延时时间---20S黄灯延时时间—3S4: 数码管显示:红灯---前20S不显示,只在最后5S开始倒计时显示。

绿灯---前15S不显示,只在最后5S开始倒计时显示。

黄灯---3S倒计时显示(若东西路为黄灯,南北路为红灯,那么南北绿的数码管也显示3S)。

5:交通应急事件处理:利用中断分别实现东西路---南北路的交通应急事件处理。

6:延时程序的使用:用循环延时和定时器计时的方法。

注:P1.0---北路绿灯,P1.1--北路黄灯,P1.2---北路红灯。

P1.3--东路绿灯,P1.4---东路黄灯,P1.5----东路红灯。

【交通灯流程图】延时20 53延时2553程序如下:ORG 0000HLJMP LOOPORG 000BH ;定时器0中断,实现交通应急事件LJMP WZD0 ORG 0013H ;外部中断1,实现交通应急事件LJMP WZD1 ORG 0030HLOOP:MOV R3,#5MOV R4,#5MOV R2,#20MOV SP,#70HMOV IE,#85HMOV TMOD,#01H ;置T0为工作方式1MOV TH0,#3CH ;置T0定时初值50msMOV TL0,#0B0HCLR TF0SETB TR0 ;启动定时器T0SETB P1.1 ;东---红灯亮,北---绿灯亮SETB P1.2CLR P1.0SETB P1.3SETB P1.4CLR P1.5ACALL DEL30SACALL YELLOW1 ;北---绿灯转黄灯,东---红灯亮ACALL DEL3S ;延时后北---黄灯灭SETB P1.0 ;东:红灯灭,绿灯亮,北:黄灯灭,红灯亮。

SETB P1.1 CLR P1.3CLR P1.2SETB P1.4SETB P1.5ACALL DEL55S ;北---红灯不变,东---绿灯转黄灯ACALL YELLOW2ACALL DEL3SSJMP LOOPYELLOW1: ;北---绿灯转黄灯,东---红灯不变SETB P1.0SETB P1.2CLR P1.1SETB P1.3CLR P1.5SETB P1.4RETYELLOW2: ;东---绿灯转黄灯,北---红灯不变SETB P1.0SETB P1.1CLR P1.2SETB P1.3SETB P1.5CLR P1.4RETWZD0: ;实现南北路交通应急事件CLR P1.0 ; (南北路保持畅通,东西路停止通行)SETB P1.1SETB P1.2SETB P1.3SETB P1.4CLR P1.5JNB P3.2,WZD0RETIWZD1: ;实现东西路交通应急事件CLR P1.3 ; (东西路保持畅通,南北路停止通行)CLR P1.2SETB P1.1SETB P1.0SETB P1.4SETB P1.5JNB P3.3,WZD1RETIDEL30S: ;红绿灯延时DEL25S:JNB TF0,DEL25S ;查询50ms到否CLR TF0MOV TH0,#3CH ;恢复T0定时初值50ms MOV TL0,#0B0HDJNZ R2,DEL25S ;判断1s到否?未到继续状态1 MOV R2,#20 ;置50ms计数初值DJNZ R4,DEL25S ;状态1维持25sDEL5S: ;取数延时MOV R2,#6DEL5:MOV A,R2ACALL ST ;取数MOV P0,A ;实现数码管显示ACALL DEL1S ;每隔1S减1DJNZ R2,DEL5RETDEL3S:MOV R2,#4HDEL3:MOV A,R2ACALL ST ;取数MOV P2,AMOV P0,A ;数码管显示ACALL DEL1SDJNZ R2,DEL3RETDEL55S:ACALL DEL20SMOV R2,#6 ;倒计时5S DEL55:ACALL DEL1SMOV A,R2ACALL STMOV P2,A ;数码管显示DJNZ R2,DEL55RETDEL1S: ;1S延时子程序MOV R5,#0BHST1:MOV R6,#0DAHST2:MOV R7,#0CFHDJNZ R7,$DJNZ R6,ST2DJNZ R5,ST1RETDEL20S: ;20S延时子程序MOV R5,#0BH;#0DCH ST3:MOV R6,#0DAHST4:MOV R7,#0CFHDJNZ R7,$DJNZ R6,ST4DJNZ R5,ST3RETST: ;取数MOV DPTR,#TABMOVC A,@A+DPTRRETTAB:DB 0FFH,0FFH,0F9H,0A4H,0B0H,99H,92H End。

交通灯设计-单片机(汇编)

交通灯设计-单片机(汇编)

太原理工大学现代科技学院单片机原理与接口技术课程设计设计名称交通灯控制器专业班级信息13-1班学号2013100000姓名指导教师武娟萍太原理工大学现代科技学院课程设计任务书注:1.课程设计完成后,学生提交的归档文件应按照:封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)2.可根据实际内容需要续表,但应保持原格式不变。

指导教师签名: 日期:2016.06.30专业班级信息13-1班 学生姓名 00 课程名称 “单片机原理与应用技术”课程设计 设计名称 交通灯控制器 设计周数 1.5周 指导教师 武娟萍 设计任务主要设计参数 设计一个以单片机为核心的交通灯控制器 设计参数要求: (1)系统包括人行道直行、左转、右转以及基本交通灯功能。

交叉道路上的车辆交替通行时间为25S ,黄灯亮5S 且每秒闪亮1次。

(2)系统除基本交通灯功能外,还具备倒计时、时间设置、紧迫环境处置以及根据具体环境手动节制等功能。

设计内容设计要求(1)通过查阅手册和有关文献资料,掌握独立分析和解决实际问题的能力。

(2)通过实际电路方案的设计分析比较、设计计算、元件选取、仿真、安装调试等环节,掌握实用电路的分析方法和工程设计方法。

(3)熟悉常用仪器设备的使用方法,掌握实验调试方法,提高动手能力。

主要参考资 料1. 单片机原理与接口技术,李晓林等,电子工业出版社,2015。

学生提交 归档文件课程设计说明书1份目录交通灯控制器 (1)一、前言 (1)1.1选题背景 (1)1.2设计意义 (1)1.3设计内容 (1)二、设计目的和要求 (2)2.1课程设计目的 (2)2.2课程设计要求 (2)三、设计硬件电路及其相关介绍 (2)3.1AT89C51 (2)3.1.1AT89C51简介 (2)3.1.2AT89C51管脚功能介绍 (3)3.1.3AT89C51复位电路 (4)3.1.4时钟电路 (4)3.2 74LS47 (5)3.2.1 74LS47管脚图和真值表 (5)3.2.2引脚功能 (6)3.2.3实用电路连接 (7)3.3 74LS139 (7)3.3.1 74LS139管脚 (7)3.3.2 74LS139真值表 (8)3.4设计中用到的其他器件 (8)3.4.1RESPACK-7 (8)3.4.2反向器7405 (8)3.4.3TRAFFIC LIGHTS (8)3.4.4 7SEG-MPX2-CA (8)3.4.5 BUTTON (9)四、设计总体方案 (9)4.1课程设计总体思路 (9)4.1.1路口状态设置 (10)4.1.2实现主程序状态功能的流程图 (10)4.1.3主程序汇编 (11)4.2调显示时间程序 (14)4.2.1设计思想 (14)4.2.2设计重要部分流程图 (15)4.2.3调显示汇编程序 (16)4.3各类情况处置程序 (17)4.3.1各类情况介绍 (17)4.3.2调配各模式流程图 (18)4.2.3调配各模式程序 (19)4.2.4少车模式H1 (19)4.2.5手动指挥模式H2 (20)4.2.6单南北通行模式H3 (20)4.2.7单南北向左转模式H4 (20)4.2.8单东西通行模式H5 (20)4.2.9单东西向左转模式H6 (20)4.2.10智能调控模式 (20)4.2.11智能调控模式演示 (20)4.2.12内部延时程序 (21)4.2.13显示调用程序 (21)五、protues硬件连线图 (22)六、protues仿真 (23)6.1基本交通灯显示功能 (23)6.1.1上电启动-南北向通行 (23)6.1.2黄灯闪烁 (23)6.1.3南北向左转通行 (23)6.1.5东西向左转通行 (24)6.2调时显示功能 (24)6.2.1调时基本操作 (24)6.2.2调时 (24)6.2.3调时后交通灯显示 (25)6.3各类处置情况 (26)6.3.1紧急处置模式 (26)6.3.2夜间模式 (26)6.3.3交警指挥模式 (26)6.3.4单独通行模式 (27)6.3.5智能控制模式-南北向1级 (27)6.3.6智能控制模式-东西向2级 (28)七、设计心得体会 (29)附录1:汇编源程序 (30)附录2:整体设计图 (40)专业班级信息13-1班学号2013100000 姓名00 成绩交通灯控制器一、前言1.1选题背景19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。

单片机课程设计交通灯汇编程序

单片机课程设计交通灯汇编程序

ORG 0000HLJMP STARTORG 0003HLJMP IINT0ORG 0013HLJMP IINT1ORG 0030HSTART: MOV SP,#6FHMOV 61H,#35HMOV 60H,61HLIGHT: SETB EASETB EX0SETB EX1CLR IT1CLR IT0MOV 63H, #0F3HMOV P1,63H ;东西红,南北绿,计时时间为35sMOV 60H,61HA1: MOV R1,#50A2: ACALL BCDLCALL BIANANDJNZ R1,A2MOV A,60HMOV R0,60HADD A,#99HDA AMOV 60H,ACJNE R0,#05H,A1MOV 63H,#0F5HMOV P1,63H ; 东西红,南北黄灯闪烁5sMOV R2,#5A3: MOV R1,#25A4: ACALL BCDACALL DISPCLKDJNZ R1,A4CPL P1.1MOV R1,#25A41: ACALL BCDACALL DISPCLKDJNZ R1,A41CPL P1.1MOV A,60HADD A,#99HDA AMOV 60H,ADJNZ R2,A3MOV 63H,#1EHMOV P1,63H ;东西绿,南北红,计时时间35sMOV 60H,61HA5: MOV R1,#50A6: ACALL BCDLCALL BIANANDJNZ R1,A6MOV R0,60HMOV A,60HADD A,#99HDA AMOV 60H,ACJNE R0,#05H,A5MOV 63H,#0EEHMOV P1,#0EEH ;南北红,东西黄灯闪烁5sMOV R2,#5A7: MOV R1,#25A8: ACALL BCDACALL DISPCLKDJNZ R1,A8CPL P1.4MOV R1,#25A81: ACALL BCDACALL DISPCLKDJNZ R1,A81CPL P1.4MOV A,60HADD A,#99HDA AMOV 60H,ADJNZ R2,A7LJMP LIGHT ;连续运行返回部分BIANAN: ;显示部分MOV DPTR,#TABMOV A,50HMOVC A,@A+DPTRMOV P2,ACLR P1.7SETB P3.7LCALL DELAYCLR P3.7MOV A,51HMOVC A,@A+DPTRMOV P2,ACLR P1.6SETB P3.6LCALL DELAYCLR P3.6RETDISPCLK: ;显示部分D1: MOV DPTR,#TABMOV A,50HMOVC A,@A+DPTRMOV P0,AMOV P2,ASETB P1.7SETB P3.7LCALL DELAYCLR P1.7CLR P3.7D2: MOV A,51HMOVC A,@A+DPTRMOV P0,AMOV P2,ASETB P1.6SETB P3.6LCALL DELAYCLR P1.6CLR P3.6RETBCD: ;将十位数送到(51H),个位数送到(50H)MOV A,60HMOV B,#10HDIV ABMOV 51H,AMOV A,BMOV 50H,ARETIINT0: ;紧急情况处理CLR EAJB P3.2,$PUSH 60HPUSH P0PUSH P1PUSH P2PUSH P3B0: JNB P3.0,NHJNB P3.1,DHA9: MOV P1,#36H ;全红LCALL BIANANJNB P3.2,B0MOV P1,63HJMP JENH: MOV P1,#1EH ;只允许东西方向车辆通行SETB P2.6SETB P2.7ACALL DELAYJNB P3.2,B0JMP JEDH: MOV P1,#33H ;只允许南北方向车辆通行SETB P2.6SETB P2.7ACALL DELAYJNB P3.2,B0JMP JEJE:POP P3POP P2POP P1POP P0POP 60HSETB EARETIIINT1: ;通行时间加减程序CLR EAJB P3.3,$PUSH P1PUSH P2SINC1: ;加1 MOV R3,#20A11: ACALL BCDACALL DISPCLKDJNZ R3,A11B2: JB P3.3,JSJNB P3.0,SINC2LCALL LDELAYJNB P3.0,SINC2SDEC1: ;减1程序MOV R5,#20A13: ACALL BCDACALL DISPCLKDJNZ R5,A13B3: JB P3.3,JSJNB P3.1,SDEC2LCALL LDELAYJNB P3.1,SDEC2JMP SINC1SINC2:MOV A,60HADD A,#01HDA AMOV 60H,AJMP SINC1SDEC2:MOV A,60HADD A,#99HDA AMOV 60H,AJMP SDEC1JS: MOV 61H,60HPOP P2POP P1SETB EARETI;10MS延时DELAY: MOV R6,#25DEL1: MOV R7,#200DEL2: DJNZ R7,DEL2DJNZ R6,DEL1RET; MS延时LDELAY: MOV R6,#25DEL3: MOV R7,#200DEL4: DJNZ R7,DEL4DJNZ R6,DEL3RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END。

基于单片机的交通灯的设计报告(汇编语言)

基于单片机的交通灯的设计报告(汇编语言)

交通灯的设计报告摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MSC-51系列单片机AT89C51和74LS47来设计交通灯控制器,实现了能根据实际车流量通过AT89C51芯片的P1口设置红、绿灯熄亮时间的功能;红绿灯循环点亮,绿灯熄灭时黄灯闪烁3秒(交通灯信号通过P1口输出,显示时间直接通过P0、P2口输出至二个对应的双位数码管)。

本系统实用性强、操作简单、扩展功能强。

关键词:单片机交通灯时间一、课题设计需要实现的系统功能:1.AB方向亮绿灯60s,然后黄灯闪烁3次,每次一秒(亮灭各40ms),红灯40s,同时CD方向红灯65s,绿灯35s,黄灯闪烁3s2.各路灯用LED模拟显示,同时用七段数码管显示两路的倒计时时间3.利用键盘可修改灯亮时间4.PC机设置灯亮时间,利用PC与单片机串口通信实现二、单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

三、芯片简介3.1、AT89C51芯片简介AT89C51单片机内部结构AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

单片机课程设计(交通灯程序)

单片机课程设计(交通灯程序)

单片机课程设计基于单片机的交通灯设计2007.07.05 一.设计目的:1、通过交通信号灯控制系统的设计,掌握8255A并行口传输数据的方法,以控制发光二极管的亮与灭;2、用8255作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理.3、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力;4、完成控制系统的硬件设计、软件设计、仿真调试。

二.设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。

用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),主干道的通行时间比从干道通行时间长,四个路口安装红,黄,蓝,灯各一盏;1、设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,时间可设置修改。

2、在绿灯转为红灯时,要求黄灯先亮,才能变换运行车道3、黄灯亮时,要求每秒闪亮一次。

4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

5、同步设置人行横道红、绿灯指示。

三.设计任务和内容:任务:设计一个能够控制十二盏交通信号灯的模拟系统。

并且要求交通信号灯按照交通规则的模试来运行。

内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1东西红灯,南北绿灯通车,。

过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。

最后循环至状态1。

四.控制系统的总体要求:1.执行程序时,初始态为四个路口的红灯全亮之后;2.东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车;3.延时一段时间后,东西路口的绿灯熄灭,黄灯开始延时并且开始闪烁,闪烁5次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车;4.延时一段时间之后,南北路口的绿灯熄灭,黄灯开始延时并且开始闪烁,闪烁3次之后,再切换到东西路口方向;之后重复2到4过程。

单片机的汇编交通灯程序

单片机的汇编交通灯程序

/****************************************************************************** ** 描述: ** A T89S52液晶演示数据p0,控制p2** 功能:** 万年历、频率计、密码锁、点阵屏** 作者:** 哥不在江湖~~** 技术支持:** 湖南工学院************************************************************************************************ */;****************************************************************************** *****************;;系统起始程序区ORG 0000HSTART: LJMP MAINORG 000BHLJMP TIMEORG 001BHLJMP TIME2;****************************************************************************** *****************;;系统监控程序区ORG 0030HMAIN: MOV SP, #80H ;确立堆栈区MOV PSW, #00H ;MOV TMOD, #01H ;定时器初始化,定时器0以工作方式1工作CLR F0 ;判断表格首地址标志位CLR EAMOV R0, #20H ;RAM区首地址MOV R7, #96 ;RAM区单元个数ML: MOV @R0, #00HINC R0DJNZ R7, MLTSF: MOV DPTR, #DISBH ;系统初始化后提示符“P.”字符代码表首地址MOV R5, #08HMOV R0, #78HDISPTSF:CLR AMOVC A, @A+DPTRMOV @R0, AINC R0INC DPTRDJNZ R5, DISPTSFFUN: ACALL DISP ;调显示子程序显示提示符“P.”ACALL KEY ;调用键扫描程序JB 20H.0, JT ;S2键按下,则执行交通灯的程序JB 20H.1, SZAJ2 ;S3键按下,则执行数字按键的程序LJMP FUNSZAJ2: LJMP SZAJ;****************************************************************************** *****************;;交通灯程序入口JT: MOV IE, #82H ;定时器0初始化MOV TMOD, #01H ;(1秒钟定时)MOV TH0, #3CHMOV TL0, #0B0HMOV R4, #20CLR 21H.0CLR TR1CLR TR0;****************************************************************************** *****************;ONE: MOV R3, #15 ;第一个状态,主绿次红MOV P3, #0DEH ;灯亮,R3为秒计数;****************************************************************************** *****************;TSF1: MOV DPTR, #DISBHMOV R5, #08HMOV R0, #78HDISPTSF1:CLR A ;数码管显示缓存区扫描MOVC A, @A+DPTRMOV @R0, AINC R0INC DPTRDJNZ R5, DISPTSF1MOV 78H, #05H ;数码管显示缓存区付初值MOV 79H, #01H ;主绿次红,初值15SETB TR0 ;开定时;****************************************************************************** *****************;HA1: ACALL DISPJNB 21H.0, HUI1CLR 21H.0 ;15秒倒计时程序DJNZ 78H, HUIQU1MOV R6, 79HCJNE R6, #00H, TENLJMP HUIQU1TEN: ACALL DISPJNB 21H.0, TENMOV 78H, #09HMOV 79H, #00HDEC R3CLR 21H.0LJMP HUIQU1HUI1: LJMP HA1HUIQU1: DJNZ R3, HA1;***********************************************************************************************;CLR TR0 ;第二个状态,主黄次红;****************************************************************************** *****************;TWOTWO: MOV IE, #88H ;定时器1初始化MOV TMOD, #10H ;(0.5秒定时器)MOV TH1, #3CHMOV TL1, #0B0HMOV R4, #10;****************************************************************************** *****************;TWO: MOV R3, #5 ;R3还是秒计数MOV P3, #0DDH ;灯亮;****************************************************************************** *****************;TSF2: MOV DPTR, #DISBHMOV R5, #08HMOV R0, #78H ;数码管显示缓存区扫描DISPTSF2:CLR AMOVC A, @A+DPTRMOV @R0, AINC R0INC DPTRDJNZ R5, DISPTSF2 ;数码管显示缓存区付初值MOV 78H, #05H ;主黄次红,初值05MOV 79H, #00H;***************************************************************************** ******************;CLR 22H.0SETB TR1 ;开定时器1MOV R7, #00HHA2: ACALL DISPJNB 22H.0, HA2 ;执行两次0.5秒定时,则计1秒INC R7CLR 22H.0CJNE R7, #02H, HA2DEC 78HMOV R7, #00H;****************************************************************************** *****************;CJNE R3, #4, HUIQU2 ;当倒计时剩下3秒时,执行主行道黄灯闪烁的程序;****************************************************************************** *****************;SHAN21: CLR 22H.0LIANG2: JB 22H.0, SHAN22MOV P3, #0DFH ;主行道闪烁程序ACALL DISPLJMP LIANG2SHAN22: CLR 22H.0MIE2: JB 22H.0, SHAN2MOV P3, #0DDHACALL DISPLJMP MIE2SHAN2: DEC 78HDEC R3CJNE R3, #1, SHAN21LJMP TIAO2HUIQU2: DJNZ R3, HA2HUI2: LJMP HA2TIAO2: NOP;****************************************************************************** *****************;CLR TR1 ;第三个状态,主红次绿CLR TR0 ;定时器的选择SANSAN: MOV IE, #82HMOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HMOV R4, #20;****************************************************************************** *****************;SAN: MOV R3, #5MOV P3, #0F3H;****************************************************************************** *****************;TSF3: MOV DPTR, #DISBHMOV R5, #08HMOV R0, #78HDISPTSF3:CLR AMOVC A, @A+DPTRMOV @R0, AINC DPTRDJNZ R5, DISPTSF3MOV 78H, #05HMOV 79H, #00H;****************************************************************************** *****************;SETB TR0 ;开定时HA3: ACALL DISPJNB 21H.0, HA3 ;5秒倒计时程序CLR 21H.0DEC 78HDJNZ R3, HA3;****************************************************************************** *****************;CLR TR0 ;选择定时器1,即0.5秒定时器SISI: MOV IE, #88HMOV TMOD, #10HMOV TH1, #3CHMOV TL1, #0B0HMOV R4, #10;****************************************************************************** *****************;SI: MOV R3, #5MOV P3, #0EBHTSF4: MOV DPTR, #DISBHMOV R5, #08HMOV R0, #78HDISPTSF4:CLR AMOVC A, @A+DPTRMOV @R0, AINC R0INC DPTRDJNZ R5, DISPTSF4MOV 78H, #05HMOV 79H, #00HCLR 22H.0SETB TR1HA4: ACALL DISPJNB 22H.0, HA4INC R7CLR 22H.0CJNE R7, #02H, HA4MOV R7, #00H;***************************************************************************** ******************;CJNE R3, #4, HUIQU4;***************************************************************************** ******************;SHAN41: CLR 22H.0LIANG4: JB 22H.0, SHAN42MOV P3, #0FBHACALL DISPLJMP LIANG4SHAN42: CLR 22H.0MIE4: JB 22H.0, SHAN4MOV P3, #0EBHACALL DISPLJMP MIE4SHAN4: DEC 78HDEC R3CJNE R3, #1, SHAN41LJMP TIAO4HUIQU4: DJNZ R3, HA4HUI4: LJMP HA4TIAO4: NOPLJMP JT;****************************************************************************** *****************;SZAJ: MOV P3, #0FFH ;数据初始化MOV 78H, #10HMOV 79H, #10HMOV 7AH, #10HMOV 7BH, #10HMOV 7CH, #10HMOV 7DH, #10HMOV 7EH, #10HMOV 7FH, #10HXS: ACALL DISPACALL KEYJB 20H.0, KEY00 ;是S2键,转KEY00执行JB 20H.1, KEY11 ;是S3键,转KEY11执行JB 20H.2, KEY22 ;是S4键,转KEY22执行JB 20H.3, KEY33 ;是S5键,转KEY33执行JB 20H.4, KEY44 ;是S6键,转KEY44执行JB 20H.5, KEY55 ;是S7键,转KEY55执行JB 20H.6, KEY66 ;是S8键,转KEY66执行JB 20H.7, KEY77 ;是S9键,转KEY77执行LJMP OUTKEY00: LCALL JIAOHUANMOV 7FH, #00HLCALL DISPLJMP OUTKEY11: LCALL JIAOHUANMOV 7FH, #01HLCALL DISPLJMP OUTKEY22: LCALL JIAOHUANMOV 7FH, #02HLCALL DISPLJMP OUTKEY33: LCALL JIAOHUANMOV 7FH, #03HLCALL DISPLJMP OUTKEY44: LCALL JIAOHUANMOV 7FH, #04HLCALL DISPLJMP OUTKEY55: LCALL JIAOHUANMOV 7FH, #05HLCALL DISPLJMP OUTKEY66: LCALL JIAOHUANMOV 7FH, #06HLCALL DISPLJMP OUTKEY77: LCALL JIAOHUANMOV 7FH, #07HLCALL DISPOUT: LJMP XSTIME: MOV TH0, #3CHMOV TL0, #0B0HDEC R4CJNE R4, #0, ZHUANSETB 21H.0MOV R4, #20ZHUAN: RETITIME2: MOV TH1, #3CHMOV TL1, #0B0HDEC R4CJNE R4, #0, ZHUAN2SETB 22H.0MOV R4, #10ZHUAN2: RETIDISBH: DB 11H,10H,10H,10H,10H,10H,10H,10H,10H ;提示符“P.”字符序号;显示字符段选码表(共阳极代码)TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8DB 90H, 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH ;9,A,B,C,D,E,F,灭,p.;****************************************************************************** ********;;键扫描子程序KEY: LCALL KEYCHULI ;调P1口数据处理子程序JZ EXIT ;没有键按下,转返回LCALL DISP ;调显示子程序去抖动LCALL DISPLCALL KEYCHULI ;调P1口数据处理子程序JZ EXIT ;没有键按下,转返回MOV B, 20H ;保存取反后的键值KEYSF: LCALL KEYCHULI ;调P1口数据处理子程序JZ KEY1 ;键释放,则将键值转移并保存LCALL DISP ;调显示子程序延时LJMP KEYSF ;等待释放KEY1: MOV 20H, B ;键值送20H保存EXIT: RET ;子程序返回;P1口按键数据处理子程序KEYCHULI: PUSH PSW ;保护现场CLR RS1 ;改变当前寄存器组为组1SETB RS0MOV P1, #0FFH ;先向P1口写1MOV A, P1 ;读P1口数据CPL A ;P1口数据取反MOV 20H, A;保存取反后的键值CLR RS1 ;恢复当前寄存器组为组0CLR RS0POP PSW ;恢复现场RET ;子程序返回;数码管显示子程序DISP;入口:7FH,7EH,7DH,7CH,7BH,7AH,79H,78H (LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)DISP: PUSH DPHPUSH DPLPUSH ACCPUSH PSWCLR RS1 ;改变当前寄存器组为组1SETB RS0MOV R1, #78H ;显示缓冲存储单元首地址MOV R2, #0FEH ;从右至左显示MOV R5, #08H ;循环次数,即驱动数码管的位数DISP1: MOV A, @R1MOV DPTR, #TABMOVC A, @A+DPTRMOV P0, A ;送段控MOV P2, R2 ;送位控LCALL DLMOV A, R2 ;延时1毫秒RL A ;获得新的位控码MOV R2, A ;保存新的位控码INC R1 ;获得新的显示缓冲单元地址DJNZ R5, DISP1 ;循环没有结束则继续DISP2: POP PSW ;恢复当前寄存器组的组号POP ACCPOP DPLPOP DPHRET;延时1ms子程序(晶振频率12MHz)DLDL: MOV R7, #02HDL1: MOV R6, #0FFHDL2: DJNZ R6, DL2DJNZ R7, DL1RET;将78至7EH单元的内容交换子程序JIAOHUAN:MOV 78H, 79HMOV 79H, 7AHMOV 7AH, 7BH MOV 7BH, 7CH MOV 7CH, 7DH MOV 7DH, 7EH MOV 7EH, 7FH RETEND。

51单片机交通灯设计汇编实验

51单片机交通灯设计汇编实验

实验四、中断实验报告一、实验内容参照实验电路,设计交通灯控制系统。

模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。

有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。

用单次脉冲模拟急救车或警车申请外部中断。

二、程序流程图3实验仿真电路4、实验程序ORG 0000HJMP MAINORG 0003H ;外部中断0的入口地址JMP X0_INTORG 000BH ;T0中断的入口地址JMP T0_INT;*************************************** MAIN:MOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HMOV R1, #20 ;定时1sSETB TR0SETB ET0SETB PT0SETB EX0SETB IT0SETB EAMOV SP, #60HM_LOOP:;***************************************N_B:MOV 30H, #11H ;南北MOV P1, 30HMOV R5, #30 ;CALL DISPLAYMOV R2, #27LOOP1:CALL WAIT_1SDJNZ R2, LOOP1 ;判断是否过了27s ;--------------------------MOV 30H, #21HMOV P1, 30HMOV R2, #3LOOP11:CALL WAIT_1SDJNZ R2, LOOP11 ;判断是否过了3秒;*************************************** D_X:MOV 30H, #0AH ;东西MOV P1, 30HMOV R5, #30CALL DISPLAYMOV R2, #27LOOP2:CALL WAIT_1SDJNZ R2, LOOP2 ;判断是否过了27s ;--------------------------MOV 30H, #0CHMOV P1, 30HMOV R2, #3LOOP22:CALL WAIT_1SDJNZ R2, LOOP22 ;判断是否过了3秒JMP M_LOOP;*************************************** WAIT_1S: ;等待新秒出现JNB 20H.0, $CLR 20H.0DEC R5CALL DISPLAYRET;-----------------------------DISPLAY:MOV A, R5MOV B, #10DIV ABMOV DPTR, #TAB1MOVC A, @A + DPTRMOV P2, AMOV A, BMOV DPTR, #TAB1MOVC A, @A + DPTRMOV P0, ARETTAB1:DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH ;***************************************X0_INT:MOV P1, #09H ;全部红灯PUSH ACCPUSH BPUSH PSWSETB RS0 ;换工作区MOV R5, #10 ;倒计时显示CALL DISPLAYMOV R1, #20 ;定时1s;----------------MOV R2, #10 ;倒计时LOOP3:CALL WAIT_1SDJNZ R2, LOOP3 ;判断是否到了10s ;----------------POP PSW ;恢复原区CALL DISPLAY ;显示原值MOV P1, 30H ;显示原灯POP BPOP ACCRETI;-----------------------------T0_INT: ;T0中断,高优先级 MOV TL0, #0B0HMOV TH0, #3CH ;50ms中断一次DJNZ R1, EXIT_T0MOV R1, #20 ;定时1sSETB 20H.0 ;每到一秒就置一EXIT_T0:RETI;*************************************** END。

单片机交通灯实验代码

单片机交通灯实验代码

;======================P1口亮灯实验========================= ORG 0790H;----------------------------------------------------------SE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RL A ;左移位SJMP LO33 ;循环;----------------------------------------------------------SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RET;----------------------------------------------------------END;==================== 8255控制交通灯========================== ORG 0BB0HJOD0: MOV SP,#60HMOV DPTR,#0FFDBHMOV A,#88HMOVX @DPTR,A ;8255初始化MOV DPTR,#0FFD8HMOV A,#0B6HMOVX @DPTR,AINC DPTRMOV A,#0DHMOVX @DPTR,A ;点亮4个红灯MOV R2,#25H ;延时LCALL DEL YJOD3: MOV DPTR,#0FFD8HMOV A,#75HMOVX @DPTR,AINC DPTRMOV A,#0DHMOVX @DPTR,A ;东西绿灯亮,南北红灯亮MOV R2,#55HLCALL DEL Y ;延时MOV R7,#05H ;闪烁次数JOD1: MOV DPTR,#0FFD8HMOV A,#0F3HMOVX @DPTR,AINC DPTRMOV A,#0CHMOVX @DPTR,A ;东西黄灯亮,南北红灯亮MOV R2,#20HLCALL DEL Y ;延时MOV DPTR,#0FFD8HMOV A,#0F7HMOVX @DPTR,AINC DPTRMOV A,#0DHMOVX @DPTR,A ;南北红灯亮MOV R2,#20HLCALL DEL Y ;延时DJNZ R7,JOD1 ;闪烁次数未到继续MOV DPTR,#0FFD8HMOV A,#0AEHMOVX @DPTR,AINC DPTRMOV A,#0BHMOVX @DPTR,A ;东西红灯亮,南北绿灯亮MOV R2,#55HLCALL DEL Y ;延时MOV R7,#05H ;闪烁次数JOD2: MOV DPTR,#0FFD8HMOV A,#9EHMOVX @DPTR,AINC DPTRMOV A,#07HMOVX @DPTR,A ;东西红灯亮,南北黄灯亮MOV R2,#20HLCALL DEL Y ;延时MOV DPTR,#0FFD8HMOV A,#0BEHMOVX @DPTR,AINC DPTRMOV A,#0FHMOVX @DPTR,A ;东西红灯亮MOV R2,#20HLCALL DEL Y ;延时DJNZ R7,JOD2 ;闪烁次数未到继续LJMP JOD3 ;循环;---------------------------------------------DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DEL YRET;---------------------------------------------END;===================== 工业顺序控制======================== ORG 0000HLJMP PO10ORG 0013HLJMP PO16;----------------------------ORG 0190HPO10: MOV P1,#7FHORL P3,#00HPO11: JNB P3.4,PO11 ;开工吗?ORL IE,#84HORL IP,#01HMOV PSW,#00H ;初始化MOV SP,#53HPO12: MOV P1,#7EH ;第一道工序ACALL PO1BMOV P1,#7DH ;第二道工序ACALL PO1BMOV P1,#7BH ;第三道工序ACALL PO1BMOV P1,#77H ;第四道工序ACALL PO1BMOV P1,#6FH ;第五道工序ACALL PO1BMOV P1,#5FH ;第六道工序ACALL PO1BMOV P1,#0FH ;第七道工序ACALL PO1BSJMP PO12;----------------------------PO16: MOV B,R2 ;保护现场PO17: MOV P1,#7FH ;关输出MOV 20H,#0A0H ;振荡次数PO18: SETB P1.7 ;振荡ACALL PO1A ;延时CLR P1.7 ;停振ACALL PO1A ;延时DJNZ 20H,PO18 ;不为0转CLR P1.7ACALL PO1A ;停振JNB P3.3,PO17 ;故障消除吗?MOV R2,B ;恢复现场RETIPO1A: MOV R2,#06HACALL DEL Y ;延时RETPO1B: MOV R2,#30HACALL DEL Y ;延时RET;----------------------------DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DEL YRET;----------------------------END;=================== A/D转换实验======================== ORG 05A0HSE11: MOV SP,#53HMOV 7EH,#00HMOV 7DH,#08HMOV 7CH,#00HMOV 7BH,#09HMOV 7AH,#10HMOV 79H,#10H ;显示缓冲区初值LO18: CALL DIS ;显示MOV A,#00HMOV DPTR,#0FFE0HMOVX @DPTR,A ;0809的0通道采样CALL DIS ;SSEEMOVX A,@DPTR ;取出采样值mov dptr,#0ffe4h ;new add --> 138 Y1cpl a ;new addmovx @dptr,a ;new add --> 驱动发光二极管cpl a ;new addMOV R0,#79HCALL PTDS ;采样值送显示缓冲区SJMP LO18 ;循环;---------------------------PTDS: MOV R1,A ;拆送显示缓冲区ACALL PTDS1MOV A,R1SW AP APTDS1: ANL A,#0FHMOV @R0,AINC R0RET;---------------------------DIS: PUSH DPHPUSH DPLSETB RS1MOV R0,#7EHMOV R2,#20HMOV R3,#00HMOV DPTR,#LS0LS2: MOV A,@R0MOVC A,@A+DPTRMOV R1,#0DCHMOVX @R1,AMOV A,R2inc R1MOVX @R1,ALS1: DJNZ R3,LS1CLR CRRC AMOV R2,ADEC R0JNZ LS2movx @r0,adec r0cpl amovx @r0,aCLR RS1POP DPLPOP DPHRET;-------------------------------------LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92HDB 82H,0F8H,80H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH;--------------------------------------END===================== D/A输出方波=========================;注意:进行本实验前,请先装载运行D/A 0V输出(调基准电压)程序Asm51\da_0v.asm ;使D/A输出端“AOUT”输出电压为0V,再进行本实验。

单片机交通灯汇编代码

单片机交通灯汇编代码

1、倒计时交通灯源程序:CMD_8279 EQU 0BF01DA TA_8279 EQU 0BF00ORG OOOOHLJMP MAINORG 000BHLJMP INT_T0ORG 0040HMAIN: MOV SP,#50HLCALL INIT8279MOV 30H,#16MOV 31H,#16MOV 20H,#0MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HMOV IE,#82HCLR TR0MOV 40H,#00H;主循环用于检测有没有键按下,并取键值STAR: LCALL DISPLAYSTAR0: LCALL SCAN_KEYJNC STAR0STAR1: LCALL KEY_NUMCJNE A,#0AH,NEQMOV A,30HSW AP AADD A,31HMOV 50H,ALCALL JIAOTONGNEQ: JNC KEY_BSJMP DA TAKEYKEY_B: CJNE A,#0BH,STAR0SETB 20H.1LJMP STARDA TAKEY:MOV 30H,31HMOV 31H,ALJMP STAR;交通灯控制程序JIAOTONG:MOV P1,#7EH LCALL DISPLAY30SJB 20H.1,MAINMOV P1,#0BDHLCALL DISPLAY2SJB 20H.1,MAINMOV P1,#0DBHLCALL DISPLAY30SJB 20H.1,MAINMOV P1,#0BDHLCALL DISPLAY2SJB 20H.1,MAINSJMP JIAOTONG;8279初始化程序INIT8279:MOV DPTR,#CMD_8279 MOV A,#34H MOVX @DPTR,AMOV A,#90HMOVX @DPTR,AINIT8279_1:LCALL CLEARMOV A,#90HMOVX @DPTR,ARETCLEAR: MOV A,#0DEHMOV DPTR,#CMD_8279MOVX @DPTR,AWAIT1: MOVX A,@DPTRJB ACC.7,W AIT1RET;扫描键盘并取键值子程序;键值存放在A中SCAN_KEY:MOV DPTR,#CMD_8279 MOVX A,@DPTRREAD_FIFO:ANL A,#7JZ NO_KEYREAD: MOV A,#40HMOVX @DPTR,AMOV DPTR,#DA TA_8279MOVX A,@DPTRSETB CSCAN_KEY1:RETNO_KEY: CLR CSJMP SCAN_KEY1KEY_NUM:ANL A,#3FHRET;显示子程序DISPLAY:PUSH 07H MOV R0,#30HMOV DPTR,#LED_TAB MOV P2,#0BFHMOV R1,#01HMOV A,#90HMOVX @R1,AMOV R1,#00HMOV R7,#2 DISPLAY1:MOV A,@R0 MOVC A,@A+DPTR MOVX @R1,AINC R0DJNZ R7,DISPLA Y1 POP 07HRET;共阳极LED字形码表LED_TAB: DB 0C0H,0F9H,0A4H,0b0h,99h,92h,82h,0f8h; DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH;DB 0FFH;;中断服务子程序INT_T0: PUSH ACCMOV TH0,#3CHMOV TL0,#0B0HINC 40HMOV A,40HCJNE A,#20,INT_T01 MOV 40H,#00HCLR CCLR AMOV A,#9AHSUBB A,#01HADD A,60HDA AMOV 60H,AINT_T01: POP ACCRETI;延时30S并显示子程序DISPLAY30S:MOV 60H,50H LCALL DECSECRET;延时2S并显示子程序DISPLAY2S:MOV 60H,#02H LCALL DECSECRET;自减1子程序DECSEC: SETB TR0 MOV A,60HMOV R0,#31HLCALL P_BCD LCALL DISPLAY LCALL SCAN_KEY JC XIUGAI CONTINUE:MOV A,60H CJNE A,#00H,DECSEC MOV R0,#31H LCALL P_BCD LCALL DISPLAY SJMP OUTOUT: RET;拆字子程序P-BCD: MOV @R0,A ANL A,#0FHXCH A,@R0DEC R0SW AP AANL A,#0FHMOV @R0,ADEC R0RETENDZ8279 EQU 0FF82H ;8279 状态/命令口地址D8279 EQU 0FF80H ;8279 数据口地址LEDMOD EQU 00H ;左边输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 33H ;扫描速率LEDCLS EQU 0C1H ;清除显示RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址ORG 0000HLJMP STARTORG 0003H ;INT 0 中断入口地址LJMP INT_0ORG 001BH ;T1中断入口地址LJMP INT_T1ORG 0040HSTART:MOV SP,#60HMOV TMOD,#10H ;置T1为方式1 SETB EX0 ;INT 0 中断有效SETB IT0SETB EAMOV TL1,#00H ;延时50mS 常数MOV TH1,#4cHMOV R0,#2 ;延时100mS 常数SETB TR1 ;启动T1SETB ET1setb pt1 ;必须设置定时器1的中断优先级高于外部中断0 LCALL INIT8279 ;初始化8279LCALL STA TUS0 ;初始状态(都是红灯)CIRCLE:LCALL STA TUS1 ;南北绿灯,东西红灯LCALL STA TUS2 ;南北绿灯闪转黄灯,东西红灯LCALL STA TUS3 ;南北红灯,东西绿灯LCALL STA TUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLEINT_0:PUSH PSW ;保护现场PUSH 2PUSH 90Hclr ex0MOV P1,#0FH ;南北,东西都亮红灯MOV R2,#100 ;延时10秒LCALL DELAY_DISPLAYsetb ex0POP 90H ;恢复现场POP 2POP PSWRETIINT_T1:PUSH ACCPUSH PSWCLR TR1MOV TL1,#00H ;延时50mS 常数MOV TH1,#4CHSETB TR1DJNZ R0,EXITMOV R0,#2 ;延时100ms 常数DEC R2EXIT:POP PSWPOP ACCRETISTA TUS0: ;南北红灯,东西红灯MOV P1,#0FHMOV R2,#10 ;延时1秒LCALL DELAY_DISPLAYRETSTA TUS1: ;南北绿灯,东西红灯MOV P1,#96H ;南北绿灯,东西红灯MOV R2,#200 ;延时20秒LCALL DELAY_DISPLAYRETSTA TUS2: ;南北绿灯闪转黄灯,东西红灯MOV R3,#03H ;绿灯闪3次FLASH:MOV P1,#9FHMOV R2,#03HLCALL DELAY_DISPLAYMOV P1,#96HMOV R2,#03HLCALL DELAY_DISPLAYDJNZ R3,FLASHMOV P1,#06H ;南北黄灯,东西红灯MOV R2,#10 ;延时1秒LCALL DELAY_DISPLAYRETSTA TUS3: ;南北红灯,东西绿灯MOV P1,#69HMOV R2,#200 ;延时20秒LCALL DELAY_DISPLAYRETSTA TUS4: ;南北红灯,东西绿灯闪转黄灯MOV R3,#03H ;绿灯闪3次FLASH1:MOV P1,#6FHMOV R2,#03HLCALL DELAY_DISPLAYMOV P1,#69HMOV R2,#03HLCALL DELAY_DISPLAYDJNZ R3,FLASH1MOV P1,#09H ;南北红灯,东西黄灯MOV R2,#10 ;延时1秒LCALL DELAY_DISPLAYNOPRETINIT8279: ;8279初始化子程序PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY;延时MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率MOVX @DPTR,AMOV A,#LEDCLS ;清除LED 显示MOVX @DPTR,ALCALL DELAY;延时POP ACC ;恢复现场POP DPLPOP DPHRET;显示字符子程序;输入: R4,位置R5,值DISLED:PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX @DPTR,A;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置MOV A,R5MOVC A,@A+DPTR ;查表MOV DPTR,#D8279MOVX @DPTR,A;显示数据POP ACC ;恢复现场POP DPLPOP DPHRETDELAY: ;延时子程序PUSH 0 ;保存现场PUSH 1MOV 0,#0HDELAY1:MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场POP0RETDELAY_DISPLAY: ;延时和显示时间子程序PUSH 1PUSH 0push accloopwait: MOV b,#10MOV a,2div abMOV b,#10div abMOV r4,#1MOV r5,aLCALL DISLED ;显示秒高位MOV r4,#0MOV r5,bLCALL DISLED ;显示秒低位MOV a,2jnz loopwait ;延时等待pop accPOP 0POP 1RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7' DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'END。

单片机之交通灯汇编语言设计

单片机之交通灯汇编语言设计

单片机控制交通灯源程序:DISPLAY11 EQU 40H ; 东西显示码缓冲区1 DISPLAY12 EQU 41H ; 东西显示码缓冲区2 DISPLAY21 EQU 42H ;南北显示码缓冲区1 DISPLAY22 EQU 43H ;南北显示码缓冲区2 ORG 0000H SJMP MAIN ORG 0003H ;外部中断0入口入口LJMP PINT0 ORG 0013H ;外部中断1入口入口LJMP PINT1 MAIN:MOV SP,#60H ;设栈底;设栈底MOV IE,#85H ;外部中断0、外部中断1设置设置 S0:MOV R0,#20 MOV R1,#80 MOV P1,#21H ;点亮东西左转绿灯;点亮东西左转绿灯SETB P3.0 CLR P3.1 CLR P3.4 SETB P3.5 LP0:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R0,#6, LP0 ;R0﹥6,转LP0 MOV R3, #0 LP1:CPL P1.0 ;绿灯闪烁3次LCALL DISP LCALL DELAY1 INC R3 CJNE R3,#2, LP1 MOV R3, #0 DEC R0 DEC R1 CJNE R0,#3, LP1 ;R0﹥3,转LP1 S1:MOV P1,#22H ;点亮东西左转黄灯点亮东西左转黄灯LP2:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R0,#0, LP2 ;R0﹥0,转LP2 S2:MOV P1,#0CH ;点亮东西绿灯点亮东西绿灯MOV R0,#60 LP3:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R0,#6, LP3 ;R0﹥6,转LP3 MOV R3, #0 LP4:CPL P1.0 ;绿灯闪烁3次LCALL DISP LCALL DELAY1 INC R3 CJNE R3,#2, LP4 MOV R3, #0 DEC R0 DEC R1 CJNE R0,#3, LP4 ;R0﹥3,转LP4 S3:MOV P1,#14H ;点亮东西黄灯点亮东西黄灯LP5:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R0,#0, LP5 ;R0﹥0,转LP5 S4:MOV R0,#60 MOV R1,#20 MOV P1,#64H ;点亮南北左转绿灯点亮南北左转绿灯CLR P3.0 CLR P3.1 CLR P3.4 SETB P3.5 LP10:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R1,#6, LP10 ;R1﹥6,转LP10 MOV R3, #0 LP11:CPL P1.6 ;绿灯闪烁3次LCALL DISP LCALL DELAY1 INC R3 CJNE R3,#2, LP11 MOV R3, #0 DEC R0 DEC R1 CJNE R1, #3, LP11 ;R1﹥3,转LP11 S5:MOV P1, #0A4H ;点亮南北左转黄灯点亮南北左转黄灯LP12:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R1, #0, LP12 ;R1﹥0,转LP12 S6:MOV P1, #24H ;点亮南北绿灯点亮南北绿灯SETB P3.0 SETB P3.1 CLR P3.4 CLR P3.5 MOV R1, #40 LP13:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R1,#6, LP13 ;R1﹥6,转LP13 MOV R3, #0 LP14:CPL P1.0 ;绿灯闪烁3次LCALL DISP LCALL DELAY1 INC R3 CJNE R3,#2, LP14 MOV R3, #0 DEC R0 DEC R1 CJNE R1,#3, LP14 ;R0﹥3,转LP14 S7:MOV P1, #24H ;点亮南北黄灯点亮南北黄灯SETB P3.0 CLR P3.1 SETB P3.4 CLR P3.5 LP15:LCALL DISP LCALL DELAY DEC R0 DEC R1 CJNE R1,#0, LP15 ;R0﹥0,转LP15 LJMP S0 DISP :MOV A,R0 ;东西时间显示(CD4511) MOV B,#1 0 DIV AB SW AP A MOV DISPLAY11, A MOV DISPLAY12, B ANL DISPLAY11, 0F0H ANL DISPLAY12, F0H MOV A, DISPLAY11 ORL A, DISPLAY12 MOV P0, A MOV A, R1 ;南北时间显示(CD4511) MOV B,#1 0 DIV AB SW AP A MOV DISPLAY21, A MOV DISPLAY22, B ANL DISPLAY21, 0F0H ANL DISPLAY22, F0H MOV A, DISPLAY21 ORL A, DISPLAY22 MOV P2, A RET DELA Y:MOV R5,#05H ;1S延时(6MH Z晶体)晶体)K1:MOV R6,# 200 K2:MOV R7,#248 NOP K3:DJNZ R7, K3 DJNZ R6, K2 DJNZ R5, K1 RET DELAY1:MOV R5, #05H ;0.5S延时延时K11:MOV R6, #100 K12:MOV R7, #248 NOP K13:DJNZ R7, K13 DJNZ R6, K12 DJNZ R5, K11 RET PINT0:PUSH 90H ;中断子0程序,紧急情况(东西通行),保存P1口原来状态口原来状态 PUSH B0H ;保存P3口原来状态口原来状态MOV P1,#0CH ;点亮东西绿灯点亮东西绿灯SETB P3.0 CLR P3.1 CLR P3.4 SETB P3.5 POP B0H POP 90H PINT1:PUSH 90H ;中断子1程序,紧急情况(南北通行),保存P1口原来状态口原来状态PUSH B0H ;保存P3口原来状态口原来状态 MOV P1, #24H ; 点亮南北绿灯点亮南北绿灯 SETB P3.0 SETB P3.1 CLR P3.4 CLR P3.5 POP B0H POP 90H RETI END S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 P1= 21H P1= 2 P1= 2 P1= P1= P1= P1= P1= P1= P1= P1= P1= P3= 9FH P3= 9FH P3= 9FH P3= 9FH P3= 9FH P3= 9FH P3= 8FH P3= 8FH P3= 8FH P3= 3FH P3= P3= 5FH S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 P1.0 1 闪0 0 0 0 0 0 0 0 0 0 P1.1 0 0 1 0 0 0 0 0 0 0 0 0 P1.2 0 0 0 1 1 1 1 1 1 1 1 1 P1.3 0 0 0 1 闪0 0 0 0 0 0 0 P1.4 0 0 0 0 0 1 0 0 0 0 0 0 P1.5 1 1 1 0 0 0 1 1 1 1 1 1 P1.6 0 0 0 0 0 0 1 闪0 0 0 0 P1.7 0 0 0 0 0 0 0 0 1 0 0 0 P3.4 1 1 1 1 1 1 0 0 0 1 1 1 P3.5 0 0 0 0 0 0 0 0 0 1 闪0 P3.6 0 0 0 0 0 0 0 0 0 0 0 1 P3.7 1 1 1 1 1 1 1 1 1 0 0 0 初始值:P1=21H P3=9FH 。

用单片机设计交通灯课设报告(汇编和C语言)

用单片机设计交通灯课设报告(汇编和C语言)

单片机原理及接口技术课程设计报告设计题目:人车分行交通信号指挥灯的控制学号:姓名:指导教师:信息与电气工程学院二零一五年六月人车分行交通信号指挥灯的控制在生活中,我们在各个路口基本都可以看到交通信号灯,道路交通信号灯是交通安全产品中的一种类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。

近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。

本模拟交通灯系统利用单片机AT89C51作为核心元件,实现了通过信号灯对路面状况的智能控制。

系统具有结构简单、可靠性高、成本低等优点,有广泛的应用前景。

本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。

和复位电路、时钟产生电路等组成,较好的模拟了交通路面的控制,利用单片机良好的控制功能来进行设计,应用更灵活,功能更强大,也更智能化。

通过C语言编程,单片机做控制,加上8个LED灯指示交通红绿灯、8155控制数码管倒计时显示来实现基本功能,外加处理突发中断情况的的按钮来模拟儿童过马路的情况。

1.设计任务结合实际情况,基于AT89C51单片机设计一个人车分行交通信号指挥灯。

该系统应满足的功能要求为:(1)交通红绿灯显示;(2)倒计时设置;(3)儿童过马路提示。

主要硬件设备:AT89C51单片机、8个LED灯、两个数码管显示器、蜂鸣器、8155I/O口扩展芯片列写交通灯变化表表1-1 利群超市门前路口交通灯变化情况表2. 整体方案设计人车分行交通信号指挥灯以AT89C51单片机作为整个系统的控制核心,应用其强大的接口功能,构成整个人车分行交通信号指挥灯控制的硬件系统。

该系统用8个LED灯模拟东西南北红黄绿灯以及人行红绿灯,用AT89C51的P1口的8个管脚与其连接,两位数码管显示器显示各个状态的倒计时,而数码管显示器由8155的PA口和PB口控制,PB口控制数码管的段选码,PA口控制数码管的位选码,实现动态显示,节省管脚的使用,AT89C51的管脚P3.2分别连接应对突发状况的紧急开关。

单片机交通灯编程代码

单片机交通灯编程代码

单片机交通灯编程代码一、引言交通灯是城市中必不可少的设施,它能够指挥车辆和行人的行动,保证交通有序进行。

单片机作为一种微型计算机,可以通过编程实现交通灯的控制。

本文将介绍单片机交通灯编程代码的实现方法。

二、硬件设计在进行单片机交通灯编程之前,需要先进行硬件设计。

本文以STC89C52RC单片机为例,其引脚连接如下:P0.0-P0.2:红、黄、绿LED控制信号输出;P1.0-P1.3:车道检测器输入;P1.4-P1.7:人行横道检测器输入。

三、软件设计1. 程序框架程序框架如下:void main(){Init();while(1){Traffic_Control();Pedestrian_Control();}}2. 初始化函数初始化函数主要用于设置端口方向和初始状态。

具体代码如下:void Init(){P0 = 0xFF; // P0口输出高电平P1 = 0x00; // P1口输入低电平}3. 交通灯控制函数交通灯控制函数根据车流量和红绿灯状态来控制红绿灯的切换。

具体代码如下:void Traffic_Control(){if(P1_0 == 0) // 车道检测器检测到车辆{P0_0 = 1; // 红灯亮P0_1 = 0; // 黄灯灭P0_2 = 0; // 绿灯灭delay(500); // 延时500msP0_0 = 0; // 红灯灭P0_1 = 1; // 黄灯亮delay(100); // 延时100msP0_1 = 0; // 黄灯灭P0_2 = 1; // 绿灯亮}else if(P1_1 == 0) // 车道检测器未检测到车辆,但红绿灯为绿色状态{delay(30000); // 延时30s,保持绿色状态}else if(P1_2 == 0) // 车道检测器未检测到车辆,但红绿灯为黄色状态{P0_1 = 0; // 黄灯灭P0_2 = 1; // 绿灯亮delay(20000); // 延时20s,保持绿色状态}else if(P1_3 == 0) // 车道检测器未检测到车辆,但红绿灯为红色状态{P0_0 = 0; // 红灯灭P0_1 = 1; // 黄灯亮delay(500); // 延时500msP0_1 = 0; // 黄灯灭P0_2 = 1; // 绿灯亮}}4. 行人过街控制函数行人过街控制函数根据行人检测器和红绿灯状态来控制行人过街。

单片机综合实验交通灯设计报告

单片机综合实验交通灯设计报告

51单片机综合实验交通灯设计报告班级:学生姓名:学号:指导教师:一实验题目交通灯控制系统设计二实验目的1、学会用8051单片机开发简单的计算机控制系统;2、学会用汇编语言和C语言开发系统软件;3、学会8051单片机开发环境wave或Keil uVision3软件的使用;4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图;6、熟悉七位数码管显示的使用方法;7、了解交通灯控制系统的基本组成。

三实验要求交通灯处在十字路口上。

它有红﹑黄﹑绿三种颜色的灯组成。

红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。

下面拿东西南北四个方向来说明。

当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。

反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。

交通灯配置示意图如图1所示。

同时当有特殊的情况发生时,能手动控制各个方向的信号灯。

设计任务就是将这一电路用单片机来实现具体的控制。

1 十字路口交通灯配置示意图四设计内容与原理为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6。

假定直行绿灯点亮的时间为25s,左转绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒。

黄灯每隔500ms亮一次,之后灭500ms (亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。

各个状态之间的变换情况如下:具体显示周期如下:图2交通信号灯点亮时间图设计电路中每个路口的控制信号灯应有四个,即绿灯两个、黄灯、红灯各一个,同时需要七段数码管一个。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

太原理工大学现代科技学院单片机原理与接口技术课程设计设计名称交通灯控制器专业班级信息13-1班学号2013100000姓名指导教师武娟萍太原理工大学现代科技学院课程设计任务书注:1.课程设计完成后,学生提交的归档文件应按照:封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)2.可根据实际内容需要续表,但应保持原格式不变。

指导教师签名:日期:2016.06.30目录交通灯控制器 0一、前言 01.1选题背景 01.2设计意义 01.3设计内容 0二、设计目的和要求 (1)2.1课程设计目的 (1)2.2课程设计要求 (1)三、设计硬件电路及其相关介绍 (1)3.1AT89C51 (1)3.1.1AT89C51简介 (1)3.1.2AT89C51管脚功能介绍 (2)3.1.3AT89C51复位电路 (3)3.1.4时钟电路 (3)3.2 74LS47 (4)3.2.1 74LS47管脚图和真值表 (4)3.2.2引脚功能 (5)3.2.3实用电路连接 (6)3.3 74LS139 (6)3.3.1 74LS139管脚 (6)3.3.2 74LS139真值表 (7)3.4设计中用到的其他器件 (7)3.4.1RESPACK-7 (7)3.4.2反向器7405 (7)3.4.3TRAFFIC LIGHTS (7)3.4.4 7SEG-MPX2-CA (7)3.4.5 BUTTON (8)四、设计总体方案 (8)4.1课程设计总体思路 (8)4.1.1路口状态设置 (9)4.1.2实现主程序状态功能的流程图 (9)4.1.3主程序汇编 (10)4.2调显示时间程序 (13)4.2.1设计思想 (13)4.2.2设计重要部分流程图 (14)4.2.3调显示汇编程序 (15)4.3各类情况处置程序 (16)4.3.1各类情况介绍 (16)4.3.2调配各模式流程图 (17)4.2.3调配各模式程序 (18)4.2.4少车模式H1 (18)4.2.5手动指挥模式H2 (19)4.2.6单南北通行模式H3 (19)4.2.7单南北向左转模式H4 (19)4.2.8单东西通行模式H5 (19)4.2.9单东西向左转模式H6 (19)4.2.10智能调控模式 (19)4.2.11智能调控模式演示 (19)4.2.12内部延时程序 (20)4.2.13显示调用程序 (20)五、protues硬件连线图 (21)六、protues仿真 (22)6.1基本交通灯显示功能 (22)6.1.1上电启动-南北向通行 (22)6.1.2黄灯闪烁 (22)6.1.3南北向左转通行 (22)6.1.5东西向左转通行 (23)6.2调时显示功能 (23)6.2.1调时基本操作 (23)6.2.2调时 (23)6.2.3调时后交通灯显示 (24)6.3各类处置情况 (25)6.3.1紧急处置模式 (25)6.3.2夜间模式 (25)6.3.3交警指挥模式 (25)6.3.4单独通行模式 (26)6.3.5智能控制模式-南北向1级 (26)6.3.6智能控制模式-东西向2级 (27)七、设计心得体会 (28)附录1:汇编源程序 (29)附录2:整体设计图 (39)专业班级信息13-1班学号2013100000 姓名00 成绩交通灯控制器一、前言1.1选题背景19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。

其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。

后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造。

那时的交通灯只有红、绿两色,后来经改良后,再增加一盏黄色的灯,红灯表示停止,黄灯表示准备,绿灯则表示通行。

中国最早的马路红绿灯,是于1928年出现在上海的英租界。

道路交通信号灯是交通安全产品中的一个类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。

适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。

近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。

如何利用当今计算机和自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个课题。

1.2设计意义社会发展至今,全球人类将近有73亿人,中国人有13亿之多,在当今的城市,一块较小的地方容纳了大量的人、大量的汽车,那么如何有效的管理人们和汽车的出行方式才能合理的利用资源呢?在我国各大城市的交叉路口,随处可见交通信号灯,也就是说交通信号灯的使用量非常大,而且如何用一块尽可能的小的芯片来实现更全、更多的功能,具有很大的现实意义。

总之,交通网络是城市的动脉,象征着一个城市的工业文明水平。

交通关系着人们对于财产,安全和时间相关的利益。

具有优良科学的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。

1.3设计内容基于整个交通控制系统的发展情况,本设计主要进行如下方面的研究:用智能,集成,且功能强大的单片机芯片AT89C51为控制中心,设计出一套十字路口的交通控制系统,以指挥十字路口的实时通行状态。

本设计的工作:确定系统交通控制的总体设计,其中包括交通信号灯的亮灭基本控制,左转、右转、直行、人行道控制、交通灯倒计时,交通灯手动调节和设置时间、交通灯紧迫环境处置惩罚(包括110、119、120通过、凌晨时间黄灯闪烁等)、分时段控制调整交通信号灯的点亮时间以及具体环境手动节制等功能。

二、设计目的和要求2.1课程设计目的课程设计时单片机原理与接口技术课程集中实践环节的主要内容之一,可以使学生达到对单片机系统组成、编程、调试和绘图设计等基本技能训练。

学生通过选作的课题,可以进一步熟悉单片机应用系统的开发过程,软、硬件设计的工作内容、方法、步骤。

培养学生理论联系实际,提高分析问题、解决问题的能力和实际动手能力,以及正确应用单片机解决工业控制、工业检测等领域具体问题的能力。

2.2课程设计要求(1)通过查阅手册和有关文献资料,掌握独立分析和解决实际问题的能力。

(2)通过实际电路方案的设计分析比较、设计计算、元件选取、仿真、安装调试等环节,掌握实用电路的分析方法和工程设计方法。

(3)熟悉常用仪器设备的使用方法,掌握实验调试方法,提高动手能力。

三、设计硬件电路及其相关介绍3.1AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

3.1.1AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图所示。

3.1.2AT89C51管脚功能介绍VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE 的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

相关文档
最新文档