交通灯(数字计时1)的proteus仿真电路及C语言程序设计
基于proteus的单片机控制模拟交通灯的设计
基于proteus的单片机控制模拟交通灯的设计AT89C51单片机的片内硬件结构AT89C51单片机的主要工作特性:1.内含4KB的FLASH存储器,擦写次数1000次。
2.内含28字节的RAM。
3.具有32根可编程I/O线。
4.具有2个16位可编程定时器。
5.具有6个中断源、5个中断矢量、2级优先权的中断结构。
6.具有1个全双工的可编程串行通信接口。
7 .具有一个数据指针DPTR。
8.两种低功耗工作模式,即空闲模式和掉电模式。
9 •具有可编程的3级程序锁定定位。
AT89C51的工作电源电压为5 (1± 0.2)V且典型值为5V,最高工作频率为24MHz夕卜部扩展P0 P1 RXTX单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。
(1)运算器运算器主要用来实现算术、逻辑运算和位操作。
其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。
ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。
算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。
暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。
ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。
累加器是CPU使用最频繁的一个寄存器。
ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。
单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。
B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。
运算结果存于AB寄存器中。
(2)控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。
基于Proteus的数字交通灯电路设计与实现
基于Proteus的数字交通灯电路设计与实现要基于Proteus进行数字交通灯电路的设计与实现,可以按照以下步骤进行操作:
1. 打开Proteus软件,创建一个新的工程。
2. 在工程中选择一个适当的微控制器模型,例如Arduino UNO。
3.在工程中选择一个合适的LED灯模型,用于表示交通灯的红、黄、绿三种状态。
4.将LED灯模型拖放到电路图中,并与微控制器的相应引脚连接。
5.在电路图中添加一个电阻,用于限流保护LED灯。
6. 编写Arduino程序代码,实现交通灯的控制逻辑。
例如,可以使用if语句和延时函数来控制LED灯的亮灭。
7. 将编写好的Arduino程序代码上传到微控制器中。
8.保存并仿真运行电路图,观察交通灯的工作状态。
9.可以通过更改程序代码中的延时时间和控制逻辑,来模拟不同的交通灯工作模式,如红绿灯交替、黄灯闪烁等。
完成以上步骤后,即可实现基于Proteus的数字交通灯电路设计与实现。
交通灯proteus仿真设计
交通灯proteus仿真设计交通灯是城市交通管理中非常重要的一部分,它们用于控制车辆和行人的流动,确保交通的安全和顺畅。
在这篇文章中,我们将使用Proteus软件来设计一个交通灯的仿真模型。
在Proteus中,我们可以使用ISIS和Ares两个模块进行电子电路的设计和仿真。
首先,我们需要在ISIS中创建一个新的电路图。
我们可以将交通灯的每个部分视为一个独立的电路,包括信号发生器、计时器、红绿灯和行人信号等。
首先,我们需要一个信号发生器来模拟交通灯的计时控制。
我们可以使用Proteus中提供的脉冲发生器来生成一个方波信号作为计时器的输入。
我们可以设置方波的频率和占空比来模拟不同的交通灯状态,比如红灯、绿灯和黄灯。
接下来,我们需要一个计时器来控制交通灯的转换。
我们可以使用Proteus中提供的计时器元件,比如555定时器。
我们可以设置定时器的参数,比如时钟频率和周期,来控制交通灯的转换时间。
然后,我们需要设计红绿灯的电路。
对于红灯,我们可以使用一个LED来表示,可以选择红色的LED。
对于绿灯,我们也可以使用一个LED来表示,可以选择绿色的LED。
我们可以使用Proteus中提供的LED元件,并将其连接到计时器的输出引脚上。
最后,我们还可以添加一个行人信号来模拟行人通过的情况。
我们可以使用一个LED来表示行人信号,可以选择白色的LED。
我们可以将行人信号的LED连接到计时器的输出引脚上,并设置适当的延迟来控制行人信号的亮灭。
完成电路设计后,我们可以在ISIS中进行仿真。
在仿真过程中,我们可以观察交通灯的状态和行人信号的变化。
通过调整计时器的参数,我们可以模拟不同的交通灯时间间隔和行人信号的延迟时间。
除了电路设计和仿真,Proteus还可以进行PCB布局和打印板设计。
我们可以使用Ares模块来创建一个真实的交通灯电路板,并将其制作成实际的交通灯。
总而言之,通过Proteus软件的使用,我们可以方便地设计和仿真交通灯的电路,并进行交通灯的时间间隔和行人信号的延迟的调整。
基于Proteus模拟软件的交通灯系统设计说明书
3rd International Conference on Mechanical Engineering and Intelligent Systems (ICMEIS 2015)Design of Traffic Light System Based on Proteus SimulationXuexuan CaiNorth China Electric Power University, Baoding, 071000, ChinaKeywords: proteus simulation software,traffic light systemAbstract. Based on the proteus simulation software, the paper realizes the individual timing and separated control on the transportation of Channel A and B with the 8254 counter and 8255 programmable parallel interface. The method of timing plus interruption control is adopted to count the passing time of vehicles in two directions separately, which enables the convenient change of passing times in two directions.1.Design Scheme1.1 Display of traffic lights under normal operationThe intel 8255A opening is used for display, leaving the PA7 and PA6 unused. The PA0, PA1 and PA2 respectively control the green light, yellow right and red light of Channel A, while the PA3, PA4 and PA5 differently control the green light, yellow right and red light of Channel B. Then, situation 1: when green light is in Channel A and red light in Channel B, 00100001B should be output in the 8255A opening; situation 2: when yellow light is in Channel A and red light in Channel B, 00100010B should be output in the 8255A opening; situation 3: when red light is in Channel A and green light in Channel B, 00001100B should be output in the 8255A opening; situation 4: when red light is in Channel A and yellow light in Channel B, 00010100B should be output in the 8255A opening.As to the time control, the frequency generator of counter 0 and working method 2 is used in the counter/ timer 8253. As the CLK0 pin receipts the 1MHz clock signal and the A8253 inputs 50000 (note: it is stipulated that the lower eight ones should be input before the higher eight ones in the programming), the result after calculation is just 0.05 seconds. The output of counter 0 is received by the clock signal of counter 1, which is working on the method 0: the counting will stop until the counter 0 finishes the method of outputting the jumping signals. As the counter 0 and 1 are counting in concatenation, the intended time can be controlled only by writing the value of counter 1 into the main program and the output of counter 1 will be received by PC0. For example, the situation 1 will maintain 25s without outside interruption and the B8253 should be input 500, namely 01100100B, with 0 in the higher eight ones. Situation 3 is the same with situation 1, while situation 4 is the same with situation 2. The query working method is adopted in timing. In the ending of the counting, the output 1 of PC0 means entering into the next working condition and 0 means continuing the query.1.2 Breaking off the switch in the state of emergencyDuring the process of simulation design, the emergency state of the switch simulation should be connected to PC1. In the state of emergency, PC1 will be low. The query working method is adopted in the foregoing situations of the display lights of the counter. The examination on whether the situation of the PC1 is 0 is added in the process. If the output is 1, the query will be continued; if the output is 0, the interrupt program will be conducted. If the interrupt program shows that red light is in both Channel A and Channel B, the query working method will unceasingly check out the situation of PC1 to find out whether it has recovered to be 1. If the situation becomes 1, the state of emergency has been relived and the primary state can be carried on by returning the scene; if the situation is still 0, the state of emergency isn’t relived and the lights should be kept red.2.Debug ResultsAfter the debug, the light display will be in cycle operation. If the green light of Channel A is interrupted, the red light of Channel A and B will be bright after the switch is pressed. The primary operation situation will be recovered when the switch is regained to Channel A and Channel B.The results of debug are as follows:Figure 1 Green light in Channel A and red light in Channel BFigure 2 Yellow light in Channel A and red light in Channel BFigure 3 Red light in Channel A and green light in Channel BFigure 4 Red light in Channel A and yellow light in Channel B Brief description on the debug results:(1)Figure 1 means Channel A is allowed to pass as there is green light but it is forbidden to pass Channel B as there is red light.(2)Figure 2 means that the 25s for green light in Channel A is up, the green light turns into yellow light reminding the coming of red light in the direction and red light is still in Channel B to forbid passing.(3)Figure 3 means that the 5s for yellow light in Channel A is up, it will turn into red light to forbid passing and there is green light in Channel B to allow passing.(4)Figure 5-4 means that the 25s for green light in Channel B is up, it turns into yellow light reminding the coming of red light in the direction and red light is still in Channel A to forbid passing.(5)The 5s is up and the system recovers to the primary state, namely, green light in south-north direction to allow passing and red light in Channel B to forbid passing, as shown in the following Figure. Based on the 60s cycle, the working functions of traffic lights are realized.(6) In case of emergencies, the button can be pressed to make red light on in both Channel A and Channel B, which is shown as follows:Figure 5 Red Light in both Channel A and Channel B3.SummaryThe paper conducts examination and simulation on the designed traffic system based on the proteus simulation software. By the simulation exercises, the functions of pins in 8086 chips can be understood more profoundly, such as how to use 8255 programmable parallel interface chips, how to take advantage of 8253 to make timing or output the pulses of certain frequency and how could the 8259 produce maskable interruption, etc. After the comparison between the simulation and the practical wirings and some slight adjustments on the program, the simulative traffic light system is easily built on the experiment box.References[1] Hong Yongquan. Microcomputer Principles and Interfacing Techniques [M]. Beijing: Science Press, 2009[2] Xu Zeming. Control Traffic Lights by Microcomputer [J]. Software Guide, 2007 (5)[3] Xiang Xinjian. Microcomputer Traffic Light Control System [J]. ASPT Source Journal, 1997 (09)。
51单片机控制交通灯原理图及C语言程序
Proteus仿真原理图:Keil C源程序:#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit RED_DONGXI = P1^0;//南北方向红灯亮sbit YELLOW_DONGXI = P1^1;//南北方向黄灯亮sbit RED_NANBEI = P1^3;//东西方向红灯亮sbit GREEN_DONGXI = P1^2;//南北方向绿灯亮sbit YELLOW_NANBEI = P1^4;//东西方向黄灯亮sbit GREEN_NANBEI = P1^5;//东西方向绿灯亮sbit DXweixuan1 = P1^6;//南北方向数码管位选1sbit DXweixuan2 = P1^7;//南北方向数码管位选2sbit NBweixuan1 = P3^0;//东西方向数码管位选1sbit NBweixuan2 = P3^1;//东西方向数码管位选2sbit L1=P3^5;sbit L2=P3^6;sbit L3=P3^7;uint aa, bai,shi,ge,bb;uint shi1,ge1,shi2,ge2;uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uint code table1[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};void delay(uint z);void init(uint a);void display(uint shi1,uint ge1,uint shi2,uint ge2);void xtimer0();void init1();void init2();void init3();void init4();void init5();void xint1();void xint0();void LED_ON();void LED_OFF();void main(){P0=0xFF;P1=0xFF;P2=0x00;P3=0xFF;EA=1;EX0=1;IT0=0;init1();while(1){init2();//第2个状态init3(); //第3个状态init4(); //第4个状态init5();//第5个状态}}void init1()//第一个状态:东西、南北方向均亮红灯5S {uint temp;temp=5;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_DONGXI=0; //第一个状态东西、南北均亮红灯5SRED_NANBEI=0;GREEN_DONGXI=1;GREEN_NANBEI=1;YELLOW_DONGXI=1;YELLOW_NANBEI=1;if(aa==20)//定时20*50MS=1S{aa=0;temp--;}shi1=shi2=temp/10;ge1=ge2=temp%10;if(temp==0){temp=5;break;}display(ge1,shi1,ge2,shi2);}}void init2()//第二个状态:东西亮红灯30S~5S、南北亮绿灯25~0S;{uint temp;temp=26;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_DONGXI=1;RED_NANBEI=0;GREEN_DONGXI=0;GREEN_NANBEI=1;YELLOW_DONGXI=1;//第二个状态:东西亮绿灯25S、南北亮红灯YELLOW_NANBEI=1;if(aa==20)//定时20*50MS=1S{aa=0;temp--;shi1=(temp+5)/10;ge1=(temp+5)%10;shi2=temp/10;ge2=temp%10;if(temp==0){temp=26;break;}}display(ge1,shi1,ge2,shi2);}}void init3() //第三个状态:东西绿灯变为黄灯闪5次、南北亮红灯5S {uint temp;temp=6;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_NANBEI=0;GREEN_DONGXI=1;if(aa==20)//定时20*50MS=1S{aa=0;temp--;YELLOW_DONGXI=~YELLOW_DONGXI;shi1=temp/10;shi2=shi1;ge1=temp%10;ge2=ge1;}if(temp==0){temp=6;break;}display(ge1,shi1,ge2,shi2);}}void init4()//第四个状态:东西亮绿灯25~0S,南北方向亮红灯30~5S;{uint temp;temp=26;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_DONGXI=0;RED_NANBEI=1;YELLOW_DONGXI=1;//第一个状态东西、南北均亮红灯5SGREEN_NANBEI=0;if(aa==20){aa=0;temp--;shi1=temp/10;shi2=(temp+5)/10;ge1=temp%10;ge2=(temp+5)%10;if(temp==0){temp=26;break;}}display(ge1,shi1,ge2,shi2);}}void init5()//第五个状态:东西亮红灯、南北绿灯闪5次转亮黄灯5S {uint temp;temp=6;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_NANBEI=1;RED_DONGXI=0;GREEN_DONGXI=1;GREEN_NANBEI=1;if(aa==20){aa=0;temp--;YELLOW_NANBEI=~YELLOW_NANBEI;shi1=temp/10;shi2=shi2;ge1=temp%10;ge2=ge1;if(temp==0){temp=6;break;}}display(ge1,shi1,ge2,shi2);}}void display(uint shi1,uint ge1,uint shi2,uint ge2) {DXweixuan1=0;DXweixuan2=1;NBweixuan1=1;NBweixuan2=1;P0=table[ge1];delay(5);DXweixuan1=1;DXweixuan2=0;NBweixuan1=1;NBweixuan2=1;P0=table[shi1];delay(5);DXweixuan1=1;DXweixuan2=1;NBweixuan1=0;NBweixuan2=1;P0=table[ge2];delay(5);DXweixuan1=1;DXweixuan2=1;NBweixuan1=1;NBweixuan2=0;P0=table[shi2];delay(5);}void xint0() interrupt 0 {RED_NANBEI=0;RED_DONGXI=0;GREEN_NANBEI=1;GREEN_DONGXI=1;YELLOW_NANBEI=1;YELLOW_DONGXI=1;P0=0x00;NBweixuan1=0;NBweixuan2=0;DXweixuan1=0;DXweixuan2=0;delay(2);return ;}void xint1() interrupt 2 {RED_NANBEI=1;RED_DONGXI=1;GREEN_NANBEI=0;GREEN_DONGXI=0;YELLOW_NANBEI=1;YELLOW_DONGXI=1;P0=0x00;NBweixuan1=0;NBweixuan2=0;DXweixuan1=0;DXweixuan2=0;delay(2);return ;}void xtimer0() interrupt 1 {TH0=(65535-50000)/256;TL0=(65535-50000)%256;aa++;}void delay(uint z){uint x,y;for(x=0;x<z;x++)for(y=0;y<110;y++); }。
交通灯(proteus仿真设计+程序)
52单片机简易交通灯proteus仿真设计原理交通灯作为日常生活中必不可少的交通标志,它的设计是单片机初学者必不可少要接受的一项课题,下面简单介绍用proteus 仿真一个由52单片机控制的简易交通灯。
本设计主要要求以下几个方面:一是根据系统控制要求设计硬件电路,这里是用PROTEU S件来完成;二是根据硬件电路编写相应的程序流程图然后编写相关程序,这里程序的编制主要是用KeilC51软件来完成;三是在KEIL上用已经编好的程序生成.hex 文件载入到PROTEU中,实现PROTEU与 KEIL的联调,完成调试和仿真,观察调试结果是否满足设计要求,。
一:设计方案及重点:首先南北方向红灯、东西方向绿灯亮,南北方向红灯35秒、东西方向绿灯35秒,相应的数码管显示对应的数字并读秒,同时南北方向红色的交通灯和东西方向的绿色交通灯接通点亮显示,当东西方向的绿灯时间到,则东西方向的绿灯转为黄灯,同时数码管显示黄灯的时间3秒,东西方向的黄色二极管接通点亮,此时南北方向的红灯不变。
南北方向的红灯和东西方向的黄灯时间同时到,此时南北方向的红灯跳转为绿灯,时间同北方向的绿灯时间到,南北绿灯跳转为黄灯,东西方向的红灯不变,当南北方向的黄灯和东西方向的红灯时间到,南北方向的黄灯跳转为红灯,东西方向的红灯跳转为绿灯。
设计重点:1. 数码显示管的计时2. 数码管控制交通灯的转换3. 锁存器与位选器端口的选择4. 电路连接与程序编写二:仿真器件的介绍:1. 单片机芯片:AT89C52, AT89C52是一个低电压,高性能CMOS 8位单片机,AT89C52单片机在电子行业中有着广泛的应用。
2. 数码管:7SEG-MPX2-CC这是一个两位数共阴极的数码管,1就是左边数码管的阴极2就是右边数码管的阴极,a,b,c,d,e,f,g, 就是数码管的段码,dp就是数码管的小数点八、、3. 锁存器与位选器:74HC573具体作用:74HC573锁存器在数码管显示时作用的确是为了节省IO 口,单片机P0 口先发送abcdefghp段选信号,这时使用一个74HC573将段选信号保存住,单片机P0 口再发送位选信号,此时单片机 P0 口信号不影响被锁存住的段选信号。
protues仿真单片机模拟交通灯
U1JI-P5ENP1 QTT2 P11.ri2E^P1,3AT 朋C57CLKDISPLAYp—I T-IrI4POXJrtf*PDJWD1 FQ2TAD7 PO3W3 PD堀回PD.SflMPO&tf®PDIWTP2.IWP2.1M9P2.2MIOF2.3WHP2.4M12P? 3P2.CM14P2JM15P3OTXD P3imci P3IflNTOP3^iinTps^mo pssmP3 &WR P3T.WDllM &—工_JAW.7]AID7|cE□主电路图 < 图一)\7u^T / u^~7 Llt2:FXf 7iD5 y ?4D5 T4D3■3 ■TE>;cj ■■- • =:a iiriLED-R6DD11LED-GREEND5LED-TELLOW■D9 . D7LE[>^H F LED-MI J L ED-'YEL L CW Lil* 血疔EjLH I-MlE IfaUifk F3""bpll. £<V<d 蚀曲^ihrirjr T4£|jv;h Eftldk [falpUS;| [UL13 M 13内瓯蛍乂嗅.国I関#1図■■曲I也回NFT10EJ-J OF^CE? T±勺:辰咖rse&tDMOFGftMruSlMiECMOS hg=K扯•JC-iSflEEh ID:吨•LK^LUCWid m■4LE1M& CJ1U£\Static Display 子图 <图二)H■2 H5h Alias S! P| Lj GEHCtSML E 驷・8H NU1M EE 7UEA-IBE12LZT4HEEA1LZDHLDUX^rTLLCTA 11 BJI Mt 1■_XTi^U町和耳】Pidffi Pi.iffiE Knanvja rt ix/iru»D2 Pt-J*&3 PllftCfl P ■曲" P».T«TP3-0M?PJ.iJwO P2JM10 P2-3W11P J JW 2P]Jtav3F2.®ri> r: misPl.T 他 F3 J.T4TEF3 W4T1 ra^rrt pjpn FIr/WR FITfflD ;LEb-VELL^W■封厂」LED-DRE£T4UEQ ■怔 LLW亡 LED-s&LQWD7LE 口■江LLOW> DHcfl.m 匚tp.ii匚口 MI 嶼?]> i 嘲?i匚-■廿 ” 厂厂厂I 厂厂[l 厂B | Ql 匕函訂“til ./用[通皈I 而冏许」UEliri 仿真效果 < 图三)-k.」!:」 □ 11POACH) PO1JAO I'IP0JAO2J4_KTM.2PQ^A OS POJKWG PO.TWJTPE a期 Pi IW9上 RETF^EN ALE 賦筮 叩筑1? Pj.grtiM F"i 丁間 31-PLornPli.liTSEK Ffl.ZPfl.3 F1.4 Pii.5 Pi.& PP.J P3(WWDP3imfT M.SfTiSTATIC DISPLAYT L .TXID*9R F2LED-iSHE&JlECLOfiEEKLEO-^LLOWD11LE&-TEU.OWD3±U211 ■ r- MP2J2.仿真效果 <图四)U2:FT*MLf^fiepD10Utmor*DTUD-YELlOWATSocsaPDCWDD即IWD1*>0 2wD2PDHAD3 PDJJMUPD?yAD5PDaWbF■工问F2 3U11P2IWI2瑰坏iP;俯!i PZTJW15P3 2IMT0psiimTpjjmP3$/Ti 阳良两P3T.^I J^TATlg DISPLAYC(0 J)GCTCQIAU«:A D3111074 LED-VELLiJrt'LEOOREENLEC-VELLDWUEOflEDDIOP2P2■詐■j J■ KF71■打F2(:<yCID ?|匚3© 口EEND4仿真效果 < 图五)U2;FTiUiD6LED-YELLQWLEOAEO□ 11-*-3- mw.1FO.aV*DDP0.1WD1PC.2WD2FO3UW33FD.iMDiRD.5MD5P«| 阿HRQTJADJP^M蚱EAF2.W*£P?.HM0PMW1Pj^lAlSFZ5W13FJ.G.WUP?TJM5pi.cmPl.«iT2£KPIN piaPl.4P1.-5PI .6PlftTlKDPl.i™ PI.ains P33flMT1F14TDF3.STIPST-iJC7STATICDISPLAY:C> ------ <_ > DhDflJ.T]口HP flEH CF瑞仿真效果 < 图六)汇编语言程序:SEC0ND1 EQU 30HSEC0ND2 EQU 31HDBUF EQU 40HTEMP EQU 44HLED_G1 BIT P2.1LED Y1 BIT P2.。
交通灯C程序及PROTUES仿真
交通灯C程序及PROTUES仿真#include<reg51.h>//头文件#include<intrins.h>//头文件#define uchar unsigned char//宏定义#define uint unsigned int//宏定义sbit RED_ZHU = P0^0;sbit YELLOW_ZHU = P0^2;sbit GREEN_ZHU = P0^1;sbit RED_ZHI = P0^3;sbit YELLOW_ZHI = P0^5;sbit GREEN_ZHI = P0^4;uint aa, bai,shi,ge,bb; //定义变量/*数码管显示0-9*/uint code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /*子函数声明*/void delay(uint z);void delay0(uint z);//void init(uint a);void display(uint ge,uint shi);void xtimer0();void init1();void init2();void init3();void init4();void init5();void xint1();void xint0();void LED_ON();void LED_OFF();/**********************主函数************************/void main(){P0=0X00;P1=0x00;P2=0x00;EA=1;//打开外部中断EX1=1;//允许外部中断1中断IT1=0;//INT0为沿触发方式init1();while(1){init2();//第2个状态init3(); //第3个状态init4(); //第4个状态init5();//第5个状态}}void init1()//第一个状态:主干道、支干道均亮红灯5S{uint temp;temp=6;//变量赋初值TMOD=0x01;//定时器0工作于方式1TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开外部中断ET0=1;//开定时中断TR0=1;//开定时器0while(1){RED_ZHU=1; //第一个状态主干道、支干道均亮红灯5SRED_ZHI=0;GREEN_ZHU=1;GREEN_ZHI=1;YELLOW_ZHI=1;if(aa==20)//定时20*50MS=1S{aa=0;//定时完成一次后清0temp--;//变量自增YELLOW_ZHU=~YELLOW_ZHU;//delay(10);if(temp>250)//定时100mS{temp=6;//变量清0break;}shi=temp%100/10;//显示十位ge=temp%10;//显示个位}display(ge,shi);}}void init2()//第二个状态:主干道亮绿灯30S、支干道亮红灯{uint temp;temp=26;//变量赋初值TMOD=0x01;//定时器0工作于方式1TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开外部中断ET0=1;//开定时中断TR0=1;//开定时器0while(1){RED_ZHU=1;RED_ZHI=0;GREEN_ZHU=0;GREEN_ZHI=1;YELLOW_ZHU=1;//第二个状态:主干道亮绿灯30S、支干道亮红灯YELLOW_ZHI=1;if(aa==20)//定时20*50MS=1S{aa=0;//定时完成一次后清0temp--;//变量自增if(temp==5)//定时100S{temp=30;//变量清0break;}shi=temp%100/10;//显示十位ge=temp%10;//显示个位}display(ge,shi);}}void init3() //第三个状态:{uint temp;temp=6;//变量赋初值TMOD=0x01;//定时器0工作于方式1TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开外部中断ET0=1;//开定时中断TR0=1;//开定时器0while(1){RED_ZHI=0;GREEN_ZHU=1;if(aa==20)//定时20*50MS=1S{aa=0;//定时完成一次后清0temp--;//变量自增YELLOW_ZHU=~YELLOW_ZHU;if(temp>200)//定时100S{temp=6;//变量清0break;}shi=temp%100/10;//显示十位ge=temp%10;//显示个位}display(ge,shi);;}}void init4()//第四个状态:主干道亮红灯、支干道亮绿灯25S {uint temp;temp=26;//变量赋初值TMOD=0x01;//定时器0工作于方式1TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开外部中断ET0=1;//开定时中断TR0=1;//开定时器0while(1){RED_ZHU=0;RED_ZHI=1;YELLOW_ZHU=1;YELLOW_ZHI=1;GREEN_ZHU=1;GREEN_ZHI=0;if(aa==20)//定时20*50MS=1S{aa=0;//定时完成一次后清0temp--;//变量自增if(temp==5)//定时100S{temp=25;//变量清0break;}shi=temp%100/10;//显示十位ge=temp%10;//显示个位}display(ge,shi);}}void init5()//第五个状态:{uint temp;temp=6;//变量赋初值TMOD=0x01;//定时器0工作于方式1TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开外部中断ET0=1;//开定时中断TR0=1;//开定时器0while(1){RED_ZHI=1;RED_ZHU=0;GREEN_ZHU=1;GREEN_ZHI=1;if(aa==20)//定时20*50MS=1S{aa=0;//定时完成一次后清0temp--;//变量自增YELLOW_ZHI=~YELLOW_ZHI;if(temp>250)//定时100S{temp=6;//变量清0break;}shi=temp%100/10;//显示十位ge=temp%10;//显示个位}display(ge,shi);}}/*显示子函数*/void display(uint ge,uint shi){P2=0x02;P1=table[shi];//显示十位delay0(5);P2=0x01;P1=table[ge];//显示个位delay0(5);}void xint0() interrupt 2 //外部中断1,这里用2是INT1的优先级为0 {LED_ON();}void LED_ON()//外部中断0显示子程序{RED_ZHI=0;RED_ZHU=0;GREEN_ZHI=1;GREEN_ZHU=1;YELLOW_ZHI=1;YELLOW_ZHU=1;delay0(1000);return ;}/*定时中断子函数*/void xtimer0() interrupt 1{TH0=0x4c;TL0=0x00;aa++;}/*延时子函数*/void delay0(uint z){uint i,j;for(i=0;i<z;i++)for(j=0;j<110;j++);}/******** 500ms延时函数晶振:12MHz *******/void delay( uint j){uint k;uint i;while(j){i=1250; while(i){k=180;while(k){k--;};i--;}j--;}}。
交通灯控制系统在proteus软件中的设计与仿真
理工科研
交通灯控制系统在 proteus 软件中的设计与仿真
陈 红[1] 李 玮[2]
([1]南京信息职业技术学院微电子工程系 江苏·南京 210046; [2]江苏省电力试验研究院有限公司 江苏·南京 210036)
中图分类号:TP 212
文献标识码:A
文章编号:1672- 7894(2009)21- 271- 02
如果说大学教师是大学文化建设中某种意义上的导演和指 挥,那么大学生就应该成为大学文化建设中的不可缺少的演员。大 学生应该在与教师双向的交流互动、教学相长中,充分发挥自己的 主观能动性,在大学文化建设的实践中不断锻炼自己,不断寻求知 识、技能和素养的平衡发展,提高智商、情商和德商,不断增强自己 在思想观念、思维方式、人格品质、生存方式、行为样法等方面的现 代化水平,不断实现个体价值和社会价值的统一,促进自己的全面 发展。 3.2 全面协调地推进大学文化建设
学有所成、建功立业的思想武器。必须看到,如果没有民族素质的 学的校训、校风、学科特色、知名学者的独特魅力。它们融历史、地
整体提高,科学发展观要想得到深入的贯彻落实,并不是一件非常 域、传统、民族性和时代性为一体,往往具有较强的感染力、号召力
容易的事,甚至可以说是任重而道远。民族和国家的未来最终要取 和凝聚力。第四,要大力强化大学行为文化的示范作用。即在学术
Proteus 软件仿真可以使所设计的电路实用性提高,并且在教学过 程中使用 Proteus 软件能够解决实验设备和实验项目不足的问题, 使用 Proteus 软件进行仿真教学对于优化教学资源的配置有很重要 的意思。
使用 Proteus 软件对交通控制灯的硬件电路进行设计,并且将 汇编语言编写的程序进行编译后,将生成的.HEX 文件载入单片机 以后运行,得到的效果如图 4 所示。 6 结语
Proteus实现单片机交通灯_图+程序(调试可用)
这是我初学单片机,并用Proreus软件自己绘制自己编写程序实现的一个交通红绿灯的系统。
这是硬件连接图和程序,以便今后复习。
左上右下中控制部分,上面一个开关按下时,南北方向绿灯,东西方向红灯黄灯闪烁3秒绿灯设置15秒,红灯设置18秒。
绿灯走完15秒后黄灯闪烁3秒变为红灯,红灯走完18秒后变成绿灯,以此循环。
源程序:COUNT EQU 30H ;T0中断计数SNLEDDA TA EQU 31H ;存储南北数码管显示的数据SNCOLORFLAG EQU 32H ;=1时南北绿灯亮,=2时南北黄灯亮,=3时南北红灯亮SNLEDDA TAINIT EQU 33H ;存储南北各颜色灯的初始时间EWLEDDA TA EQU 34H ;存储东西数码管显示的数据EWCOLORFLAG EQU 35H ;=1时东西红灯亮,=2时东西绿灯亮,=3时东西黄灯亮EWLEDDA TAINIT EQU 36H ;存储东西各颜色灯的初始时间org 0000hlJMP MAINorg 0003hljmp exint0ORG 000BHlJMP INTT0org 0013hljmp exint1org 0100h;主函数**************************************MAIN:CALL INITSTART:MOV A,COUNTCJNE A,#200,NOT1S ;没到1秒跳转MOV COUNT,#00 ;1秒时间到DEC SNLEDDATAMOV A,SNLEDDATAJNZ checkewleddataMOV SNLEDDATA,SNLEDDA TAINITINC SNCOLORFLAGMOV A,SNCOLORFLAGCJNE A,#04,checkewleddataMOV SNCOLORFLAG,#01checkewleddata:DEC EWLEDDATAMOV A,EWLEDDA TAJNZ timenotoverMOV EWLEDDATA,EWLEDDATAINITINC EWCOLORFLAGMOV A,EWCOLORFLAGCJNE A,#04,timenotoverMOV EWCOLORFLAG,#01TIMENOTOVER:NOT1S:call ewcolorcheckCALL snCOLORCHECKCALL DISPLAYJMP START;*********************************************;初始化函数***********************************INIT: MOV SP,#60HMOV TMOD,#01HMOV TH0,#0eCHMOV TL0,#078HMOV COUNT,#00HMOV SNLEDDATAINIT,#15MOV EWLEDDATAINIT,#18MOV SNLEDDATA,SNLEDDA TAINITMOV EWLEDDATA,EWLEDDATAINITSETB TR0 ;开定时器0SETB ET0 ;允许定时器0中断setb ex0 ;允许外部0中断setb ex1 ;允许外部1中断setb it0 ;外部中断0下降沿触发setb it1 ;外部中断1下降沿触发SETB EA ;开总中断MOV P2,#0feHMOV SNCOLORFLAG,#01RET;*****************************************;外部中断0*********************************** exint0:push accpush pswmov a,p0push accmov a,p1push accmov a,p2push accclr ex1clr p2.0clr p2.1clr p2.2clr p2.3setb p1.4clr p1.1clr p1.2setb p1.5clr p1.3clr p1.4jnb p3.2,$setb ex1pop accmov p2,apop accmov p1,apop accmov p0,apop pswpop acc;外部中断1*********************************** exint1:push accpush pswmov a,p0push accmov a,p1push accmov a,p2push accclr ex0clr p2.0clr p2.1clr p2.2clr p2.3setb p1.4setb p1.2clr p1.1clr p1.0setb p1.3clr p1.5clr p1.4jnb p3.3,$setb ex0pop accmov p2,apop accmov p1,apop accmov p0,apop pswpop acc;T0中断函数*******************************INTT0:PUSH ACCPUSH PSWMOV TH0,#0ecH ;#0echMOV TL0,#078H ;#078hMOV A,P2RL ACJNE A,#11101111B,NOT5MOV A,#0feH ;p2.0=0,南北数码管十位亮,p2.1=0,南北数码管个位亮NOT5: MOV P2,A ;p2.2=0,东西数码管十位亮,p2.3=0,东西数码管个位亮INC COUNTPOP PSWPOP ACCRETI;****************************************;南北红绿黄灯控制**************************snCOLORCHECK:PUSH ACCPUSH BPUSH PSWsngreen:MOV A,SNCOLORFLAGCJNE A,#01,snYELLOWMOV SNLEDDATAINIT,#03 ;设置南北黄灯闪烁时间CLR P1.2CLR P1.1SETB P1.0 ;南北绿灯亮JMP snCOLORCHECKOUTsnYELLOW:;MOV A,SNCOLORFLAGCJNE A,#02,snredMOV SNLEDDATAINIT,#18 ;设置南北红灯亮时间MOV A,COUNTDIV ABMOV A,BCJNE A,#00H,snNOTFLASHCPL P1.1 ;南北黄灯闪烁CLR P1.0CLR P1.2snNOTFLASH:JMP snCOLORCHECKOUTsnred:MOV SNLEDDATAINIT,#15 ;设置南北绿灯亮时间CLR P1.0CLR P1.1SETB P1.2 ;南北红灯亮snCOLORCHECKOUT:POP PSWPOP BPOP ACCRET;******************************************************;东西红绿黄灯控制**************************************ewCOLORCHECK:PUSH ACCPUSH BPUSH PSWewred:MOV A,ewCOLORFLAGCJNE A,#01,ewyellowMOV ewLEDDATAINIT,#15 ;设置东西绿灯亮时间CLR P1.3CLR P1.4SETB P1.5 ;东西红灯亮JMP ewCOLORCHECKOUT;MOV A,ewCOLORFLAGCJNE A,#03,ewgreenMOV ewLEDDATAINIT,#18 ;设置东西红灯亮时间MOV A,COUNTMOV B,#100DIV ABMOV A,BCJNE A,#00H,ewNOTFLASHCPL P1.4 ;东西黄灯闪烁CLR P1.3CLR P1.5ewNOTFLASH:JMP ewCOLORCHECKOUTewgreen:MOV ewLEDDATAINIT,#03 ;设置东西黄灯闪烁时间CLR P1.4CLR P1.5SETB P1.3 ;东西绿灯亮ewCOLORCHECKOUT:POP PSWPOP BPOP ACCRET;************************************************************;数码管显示**************************************************DISPLAY:PUSH ACCPUSH PSWPUSH BMOV A,SNLEDDATAMOV B,#10DIV ABMOV A,EWLEDDA TAMOV B,#10DIV ABMOV R2,BMOV R3,AMOV DPTR,#TABLEMOV A,P2 DISPSNH:CJNE A,#0feH,DISPSNLMOV A,R1MOVC A,@A+DPTRMOV P0,AJMP DISPOUT DISPSNL:CJNE A,#0fdH,DISPEWHMOV A,R0MOVC A,@A+DPTRMOV P0,AJMP DISPOUT DISPEWH:CJNE A,#0fbH,DISPEWLMOV A,R3MOVC A,@A+DPTRMOV P0,AJMP DISPOUT DISPEWL:CJNE A,#0f7H,DISPOUTMOV A,R2MOVC A,@A+DPTRMOV P0,A DISPOUT:POP BRET;************************************************** TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH; 0 1 2 3 4 5 6 7 8 9END。
基于proteus的单片机控制模拟交通灯的设计
基于proteus的单片机控制模拟交通灯的设计交通灯是城市交通管理中不可或缺的一部分,它能够控制交通流动,确保交通安全。
在这个设计中,我们将使用Proteus软件来模拟交通灯的控制。
首先,我们需要选择一个适合的单片机来控制交通灯。
在这个设计中,我们选择了常用的AT89C51单片机。
AT89C51是一款8位微控制器,具有强大的功能和广泛的应用范围。
接下来,我们需要连接单片机和交通灯。
我们将交通灯的红、黄、绿三个灯分别连接到单片机的三个输出引脚上,用于控制灯的亮灭。
此外,我们还需要连接一个按钮到单片机的输入引脚上,用于模拟行人过马路时的信号。
在Proteus软件中,我们可以使用元件库中提供的交通灯和按钮模拟器来完成这个设计。
我们将交通灯的灯泡分别连接到单片机的输出引脚上,将按钮连接到单片机的输入引脚上。
接下来,我们需要编写单片机的控制程序。
在这个设计中,我们需要实现交通灯的循环控制和行人信号的模拟。
我们可以使用C语言来编写程序,并使用Keil C51编译器将程序烧录到单片机中。
在程序中,我们可以使用定时器和中断来实现交通灯的循环控制。
我们可以设置一个定时器来定时切换交通灯的状态,例如每隔10秒切换一次。
当定时器中断发生时,我们可以在中断服务程序中切换交通灯的状态。
此外,我们还需要实现行人信号的模拟。
当按钮按下时,我们可以通过检测输入引脚的状态来触发行人信号。
当行人信号触发时,我们可以通过改变交通灯的状态来实现停车。
在Proteus软件中,我们可以使用仿真功能来验证我们的设计。
我们可以设置仿真参数,例如定时器的定时周期和按钮按下的时机,然后运行仿真,观察交通灯的状态和行人信号的模拟效果。
通过这个设计,我们可以学习到如何使用Proteus软件来模拟交通灯的控制,同时也能够加深对单片机的理解和应用。
交通灯的设计是一个典型的嵌入式系统应用,通过这个设计,我们可以锻炼自己的嵌入式系统开发能力。
基于proteus智能交通灯的设计与实现
基于proteus智能交通灯的设计与实现随着城市人口的不断增加和交通工具的普及,交通拥堵和交通事故越来越常见。
为了缓解这种情况,改善道路交通状况,保障行人和车辆的安全,交通灯的作用愈发重要。
然而,传统的交通灯存在一些不足之处,例如没有考虑到不同时间段和交通流量的变化等,无法满足大城市交通管理的需求。
因此,需要一种基于智能化技术的交通灯设计,以更好地优化道路交通流量。
本文将介绍一种基于Proteus的智能交通灯设计方案。
1.智能交通灯方案概述智能交通灯是一种基于计算机技术,通过交通信号控制点来优化交通流量的系统。
智能交通灯通过计算机和传感器来检测和调节交通流量,通过分析交通数据并根据预设算法计算,实现调度智能化控制,从而降低交通拥堵和交通事故的发生率。
2.智能交通灯的设计步骤智能交通灯的设计要按照以下步骤进行:2.1 系统需求分析首先要了解智能交通灯的基本需求,包括减少拥堵,优化交通流量,提高交通效率,保障行人和车辆的安全等。
需要根据实际交通情况和需求进行系统设计。
2.2 系统功能设计确定系统的基本功能,包括交通实时数据采集、交通流量分析、信号控制等。
为此需要选择合适的传感器、计算机控制器、交通灯等硬件设备,同时需开发相应的软件来实现系统功能。
2.3 系统硬件设计在开发系统前,需要进行硬件设计,确保系统硬件设备的适配性和可靠性。
硬件设计需要考虑各种因素,包括系统的功耗、专用芯片选择、模块排布等。
2.4 系统软件设计在硬件设计完成后,需要进行软件设计。
通过软件实现交通实时数据采集、交通流量分析和信号控制等功能,为后续交通灯运行提供指导。
2.5 系统测试和优化对系统进行测试,检验系统在实际运行中的性能和稳定性,找出问题并进行优化,在确保系统符合需求的情况下投入实际应用。
3.智能交通灯的运行流程智能交通灯的运行流程主要包括实时数据采集、数据处理、数据分析和信号控制四个阶段。
3.1 实时数据采集系统通过传感器采集交通实时数据,包括车辆的车速、车流量等信息。
基于Proteus的智能交通灯的仿真设计
基于Proteus的智能交通灯的仿真设计智能交通灯是一种基于现代科技的交通管理设备,通过智能化的控制系统和传感器,能够根据交通流量和道路情况,自动调整交通信号灯的时间和模式,以提高交通效率和安全性。
Proteus是一种功能强大的电子设计自动化(EDA)软件,它可以用于电路仿真和PCB设计。
在智能交通灯的仿真设计中,Proteus可以帮助我们建立交通信号灯的电路模型,并模拟不同情况下的交通流量和信号控制策略。
首先,我们需要设计交通信号灯的电路模型。
在Proteus中,我们可以使用元件库中的数字逻辑元件和LED元件来构建交通信号灯的电路。
通过连接适当的电源和控制信号,我们可以模拟交通信号灯的工作状态。
接下来,我们可以使用Proteus的仿真功能来模拟不同情况下的交通流量和信号控制策略。
通过设置不同的输入信号和参数,我们可以观察交通信号灯在不同条件下的工作效果。
比如,我们可以模拟高峰时段和低峰时段的交通流量,观察交通信号灯的调整情况以及车辆通过的效率。
在仿真设计中,我们还可以使用Proteus的调试功能来分析交通信号灯的电路和控制逻辑。
通过设置断点和监视变量,我们可以观察电路中各个信号的变化情况,以及控制逻辑的执行过程。
这有助于我们发现潜在的问题并进行调整和改进。
除了仿真设计,Proteus还可以用于PCB设计和实际制造。
通过将电路设计转化为PCB布局,我们可以将交通信号灯的电路制作成实际的电子板,并安装在实际的交通信号灯中进行测试和调试。
总之,基于Proteus的智能交通灯的仿真设计可以帮助我们模拟不同情况下的交通流量和信号控制策略,并分析交通信号灯的电路和控制逻辑。
这有助于我们优化交通信号灯的设计,提高交通效率和安全性。
同时,Proteus还可以用于PCB设计和实际制造,使我们的设计能够实际应用于交通管理中。
结合proteus实现路路彩灯—电路仿真实验
结合proteus实现路路彩灯—电路仿真实验路灯是城市道路的重要设施之一,可以提供夜间行车和行人活动的安全保障。
随着科技的不断发展,彩灯逐渐取代传统的白灯,给城市增添了一抹亮丽的色彩。
在本文中,我们将结合Proteus软件实现路灯电路的仿真实验。
路灯电路主要由三个部分组成:电源部分、控制部分和照明部分。
电源部分提供电能给整个电路系统,控制部分负责控制灯的开关和亮度,照明部分则是实现灯光的发光。
首先,我们需要选择合适的元件来搭建电路。
在Proteus中,我们可以在元件库中找到各种电子元件。
对于电源部分,我们可以选择一个直流电源和一个电容器来实现稳定的输出电压。
控制部分可以选择一个单片机,用来控制彩灯的开关和亮度。
照明部分可以选择一个LED灯和一个电阻,来实现灯光的发光。
接下来,我们需要将这些元件进行连接。
在Proteus中,我们可以通过拖拽元件并连接它们的引脚来完成电路的搭建。
首先,将直流电源和电容器连接在一起,以提供稳定的电压输出。
然后,将单片机的引脚连接到LED灯和电阻上,以控制灯的开关和亮度。
最后,将LED灯和电阻连接在一起,以实现灯光的发光。
完成电路搭建后,我们可以进行仿真实验了。
在Proteus中,我们可以设置各个元件的参数和初始状态,并运行仿真实验来观察电路的工作情况。
通过调整单片机的引脚状态,我们可以控制灯的开关和亮度,并观察LED灯的发光情况。
在仿真实验中,我们可以通过改变电源电压和电阻值来模拟不同的工作情况。
例如,可以降低电源电压来观察灯的亮度变化,或者改变电阻值来观察灯的颜色变化。
通过这些实验,我们可以更好地理解电路的工作原理和性能特点。
总结起来,通过结合Proteus实现路灯电路的仿真实验,我们可以更好地理解电路的工作原理和性能特点。
通过调整参数和运行实验,我们可以观察电路的工作情况,并优化电路设计。
这对于提高路灯电路的可靠性和性能具有重要意义,也为我们进一步研究和开发新型路灯电路提供了基础。
基于Protues仿真的简单交通信号灯附C语言程序
简单的交通信号灯实现本文中主要利用89C52单片机实现一个简单的交通信号灯系统,代码编写借助keil软件编写,再结合protues软件进行仿真。
基本实现简单的交通信号等功能。
一.代码如下#include<reg52.h>/***************宏定义**********************/#define int8_t char#define uint8_t unsigned char#define int16_t int#define uint16_t unsigned int/**************变量申请*********************/int8_t times = 0;uint8_t g_timer0_1s = 0;uint8_t g_light_shark = 0;void Timer0_Init(){TMOD &= 0xF0; //单片机16位技术模式TMOD |= 0x01;TH0 = 0x00; //装入初值TL0 = 0x4c;TF0 = 0;EA = 1; //开总中断ET0 = 1; //允许定时器0中断}void Timer0(void) interrupt 1{TH0 = 0x00; //再次装入初值TL0 = 0x4c;times++;if(times == 20){times = 0;g_timer0_1s++;g_light_shark++;}}void delay_ms(uint8_t ms){uint16_t i;do{i = 11059200 / 14000;while(--i);}while(--ms);}void hxl_deal(uint8_t time) //横行左转处理{P2 = 0xA5;if(time < 15){P0 = 0x99;}else{if(g_light_shark % 2){P0 = 0xBD;}else{P0 = 0x99;}}}void hxz_deal(uint8_t time) //横行直行处理{P2 = 0xA5;if(time < 55){P0 = 0x66;}else{if(g_light_shark % 2){P0 = 0xE7;}else{P0 = 0x66;}}}void sxl_deal(uint8_t time) //竖行左转处理{P0 = 0xA5;if(time < 75){P2 = 0x99;}else{if(g_light_shark % 2){P2 = 0xBD;}else{P2 = 0x99;}}}void sxz_deal(uint8_t time) //竖行直行处理{P0 = 0xA5;if(time < 115){P2 = 0x66;}else{if(g_light_shark % 2){P2 = 0xE7;}{P2 = 0x66;}}}void Display(){P1 = 0x40;P3 = 0x06;delay_ms(50);P1 = 0x80;P3 = 0x4f;delay_ms(5);P1 = 0x00;}void main(){Timer0_Init();P0 = 0x00;P2 = 0x00;P3 = 0xff;delay_ms(1000);TR0 = 1; //开启定时器Display();while(1){if((g_timer0_1s >= 0) && (g_timer0_1s <= 20)){hxl_deal(g_timer0_1s);}else if((g_timer0_1s > 20) && (g_timer0_1s <= 60)){hxz_deal(g_timer0_1s);}else if((g_timer0_1s > 60) && (g_timer0_1s <= 80)){sxl_deal(g_timer0_1s);}else if((g_timer0_1s > 80) && (g_timer0_1s <= 120)){sxz_deal(g_timer0_1s);}{g_timer0_1s = 0;}}}二.仿真图如下1:系统未上电2:系统运行。
基于Proteus的智能交通灯的仿真设计
摘要本智能交通灯系统的设计主要是利用单片机和C语言完成共同来完成。
首先,系统采用红、黄、绿两组共六个LED发光二极管模拟十字路口东西和南北两个方向的交通信号灯,配有7SEG-MPX6-CC(六位八段共阴极数码管)数码构成倒计时牌,其的控制核心为AT89C51芯片。
其次,系统具有处理紧急情况的功能,可以使东西和南北双向红灯,禁止普通车辆通行。
最后,系统利用Proteus软件进行了软、硬件的的仿真。
关键词:AT89C51单片机倒计时牌中断数码管目录毕业设计任务书 (I)中文摘要............................................................................................... .II 1 引言. (1)1.1设计目的及意义 (1)1.2设计的内容 (1)2 设计原理 (2)2.1总体设计方案 (2)2.2硬件设计原理 (2)2.2.1硬件原理图 (2)2.2.2主要模块电路 (3)2.2.2.1控制核心——AT89C51单片机芯片 (3)2.2.2.2 LED数码管显示 (6)2.2.2.3六路交通灯的模拟 (8)2.2.2.4其它电路 (8)2.3 软件设计原理 (9)2.3.1软件流程图 (9)2.3.1.1主流程图 (9)2.3.1.2主要子程序流程图 (10)2.3.2软件源程序 (11)3 基于Proteus的仿真调试及排故 (11)3.1 Proteus的仿真软件的介绍 (11)3.2 主要调试过程 (11)3.2.1硬件测试 (12)3.2.2软件调试 (12)3.2.3连调 (12)3.3调试时出现的问题及解决方法 (12)4 结论 (14)致谢 (15)附录 (16)附录1 硬件连接图 (16)附录2 源程序 (17)附录3 共阴极LED数码管字段码表 (21)参考文献 (22)1 引言1.1 设计目的及意义交通是一个城市经济的命脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。
protues仿真单片机模拟交通灯
protues仿真单片机模拟交通灯部门: xxx时间: xxx制作人:xxx整理范文,仅供参考,可下载自行修改主电路图<图一)Static Display子图<图二)仿真效果<图三)仿真效果<图四)仿真效果<图五)仿真效果<图六)汇编语言程序:SECOND1 EQU 30HSECOND2 EQU 31HDBUF EQU 40HTEMP EQU 44HLED_G1 BIT P2.1 。
东西路口绿灯LED_Y1 BIT P2.2 。
东西路口黄灯LED_R1 BIT P2.3 。
东西路口红灯LED_G2 BIT P2.4 。
南北路口绿灯LED_Y2 BIT P2.5 。
南北路口黄灯LED_R2 BIT P2.6 。
南北路口红灯ORG 0000HLJMP STARTORG 0100HSTART: MOV TMOD,#01H 。
置T0为工作方式1MOV TH0,#3CH 。
置T0定时初值50msMOV TL0,#0B0HCLR TF0SETB TR0 。
启动T0CLR AMOV P1,A 。
关闭不相关地LED。
***************************************************b5E2RGbC APLOOP: M OV R2,#20 。
置1s计数初值,50ms*20=1sMOV R3,#20 。
红灯亮20sMOV SECOND1,#25 。
东西路口计时显示初值25sMOV SECOND2,#25 。
南北路口计时显示初值25sLCALL D ISPLAYLCALL S TATE1 。
调用状态1WAIT1: JNB TF0,WAIT1 。
查询50ms到否CLR TF0MOV TH0,#3CH 。
恢复T0定时初值50msMOV TL0,#0B0HDJNZ R2,WAIT1 。
判断1s到否?未到继续状态1MOV R2,#20 。
置50ms计数初值DEC SECOND1 。
交通灯(proteus版本)
一般十字路口的交通灯控制系统的工作状态及其功能如表1:
表1
控制器状态
信号灯状态
车道运行状态
S0(00)
S1(01)
S3(11)
S2(10)
甲绿,乙红
甲黄,乙红
甲红,乙绿
甲红,乙黄
甲车道通行,乙车道禁止通行
甲车道缓行,乙车道禁止通行
甲车道禁止通行,乙车道通行
2、焊电路板过程中的问题
(1)芯片的布局
首先要考虑元器件布局的问题,很多同学仅仅只考虑了芯片摆放的美观性却忽略了合理地摆放芯片的重要性。合理的摆放芯片其实比美观地摆放芯片更重要,因为合理的布局能够大大减少电路板上飞线的长度。比如,译码器74LS74就最好摆在计数器74ls161的正上方,因为74LS74的1、2、6、7引脚就是和74161的11、12、13、14引脚相连,所以这些引脚靠的越近越好。
0 0 1
0 0 1
0 0 1
0 0 1
1 0 0
0 1 0
三、单元电路的设计:
1、基于NE555的秒方波发生器
用NE555芯片以及外围电路搭建成一个多谐振荡器,通过设计外围电路的参数输出方波频率为1Hz,故称为秒方波发生器。由于脉冲的占空比对系统的影响不大,故把占空比设计为1/3。输出方波用作计数器及D触发器的clk信号。NE555定时器引脚图如图1所示,脉冲频率公式:
74LS153
2
3
四输入与门
74LS04
2
4
六输入非门
74LS00
2
5
双D触发器
74LS74
1
6
发光二译码
7448
2