基于51单片机的现代交通灯Proteus仿真程序,单片机源程序文件。 急求单片机的基于AT89C51芯片交通灯 汇编语言程序(希望...

\u57fa\u4e8e51\u5355\u7247\u673a\u7684\u7b80\u6613\u4ea4\u901a\u706f\u7684proteus\u4eff\u771f\uff0c\u6211\u8981\u539f\u7406\u56fe\uff0c\u4eff\u771f\u56fe\uff0cprotell\u56fe\uff0c\u7a0b\u5e8f\u8981\u5b8c\u6574\u7684\uff0c\u5bf9\u5e94\u54e6\uff0c

#include "reg51.h"
#define uchar unsigned char
sbit k1=P1^0;

void delay8s(void)
{
unsigned char i,j,k;
for(i=80;i>0;i--)
for(j=200;j>0;j--)
for(k=248;k>0;k--);
}

void delay05s(void)
{
unsigned char i,j,k;
for(i=2;i>0;i--)
for(j=200;j>0;j--)
for(k=248;k>0;k--);
}

void zt0()
{
P2=0xf3;
delay8s();
}

void zt1()
{
char i;
for(i=4;i>0;i--)
{
P2=0xeb;
delay05s();
P2=0xfb;
delay05s();
}
}

void zt2()
{
P2=0xde;
delay8s();
}

void zt3()
{
char j;
for(j=4;j>0;j--)
{
P2=0xdd;
delay05s();
P2=0xdf;
delay05s();
}
}

void k1yes()
{
while(1)
{
zt0();
zt1();
zt2();
zt3();
}
}

void k1no()
{
P2=0x00;
delay05s();
P2=0xff;
delay05s();
}

void main(void)
{
while(1)
{
uchar a;
a=P1;
a=a&0x01;
switch(a)
{
case 0:k1yes();break;
case 1:k1no();break;
}
}
}

\u60b2\u54c0\u554a\u3002\u8fde\u8bba\u6587\u90fd\u8981\u522b\u4eba\u5e2e\u4f60\u505a\uff0c\u8fd8\u4e0d\u5982\u628a\u5de5\u8d44\u4e5f\u4ea4\u7ed9\u522b\u4eba\u5e2e\u4f60\u82b1\u7b97\u4e86\u3002

ORG 0000H
SJMP A3 ;四盏红灯亮
A3:MOV SP,#60H
MOV A, #24H
MOV P1, A
CLR P3.4
CLR P3.3
SETB P3.5
SETB P3.2 ;显示5秒
MOV R4,#05H
LOOP1: MOV R2,#03H
LCALL LP ;调显示子程序
DJNZ R4,LOOP1
MOV R4,#00H
MOV R2,#03H
LCALL LP ;东西绿灯亮,南北红灯亮
A2:MOV A,#0CH
CLR P3.5
MOV P1,A
SETB P3.3
CLR P3.4
SETB P3.2 ;显示20秒
MOV R4,#14H
LOOP2 :MOV R2,#03H
LCALL LP ;调显示子程序
DJNZ R4,LOOP2
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序
SETB P3.2
CLR P3.3 ; 显示5秒
MOV R4 ,#05H ;东西黄灯亮,南北红灯亮
LOOP9:MOV A,#14H
MOV P1 ,A
CLR P3.5
SETB P3.4
MOV R2,#02H
LCALL LP ;调显示子程序
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序,南北红灯亮
MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序
DJNZ R4,LOOP9
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序,东西红灯亮,南北绿灯亮
A8:MOV A, #61H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
SETB P3.5 ; 显示20秒
MOV R4,#14H
LOOP3:MOV R2,#03H
LCALL LP ;调显示子程序
DJNZ R4,LOOP3
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序
SETB P3.5
MOV R4 ,#05H
LOOP10:MOV R2,#02H
LCALL LP ;调显示子程序,东西红灯亮,南北黄灯亮
A0:MOV A,#0A2H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序,东西红灯亮
MOV A,#20H
MOV P1,A
CLR P3.4
CLR P3.3
CLR P3.2
MOV R2,#01H ;定时
LCALL DELAY ;调延时子程序
DJNZ R4,LOOP10
MOV R4,#00H
MOV R2,#03H
LCALL LP ;调显示子程序
LJMP A2 ;延时子程序
DELAY:PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
DJNZ R2 ,DELAY
RET ;显示子程序
xian: MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S:DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S1:DJNZ R7,H55S1
LCALL DELAY
RET
这是交通灯的子程序。它主要是被调用控制各个方向灯亮灭情况和时间。
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh ;查表子程序
END

  • 鍩轰簬51鍗曠墖鏈虹殑浜ら氱伅璁捐涓庢牱瀹炵幇绾㈢伅浜30绉掔豢鐏寒25绉掗粍鐏寒5绉
    绛旓細寮涓涓畾鏃跺櫒锛屽畾鏃跺懆鏈1s锛岃缃竴涓猰=0锛屽湪瀹氭椂鏈嶅姟鍑芥暟閲岄潰m++锛宮=30鎵ц绾㈢伅浜紝m=55鎵ц缁跨伅浜紝m=60鎵ц榛勭伅浜紝鐒跺悗m=0
  • 鐢51鍗曠墖鏈鏄剧ず浜ら氱伅鍊掕鏃跺師鐞嗘槸浠涔
    绛旓細void main(){ P3 = 0;P1 = 0;P2 = 0xff;initTimer();TR0=1;ET0=1;EA=1;while(1){ switch(state){ // 鐘舵佽烦杞 case 0:if(ct == 0){ P3=0;P1=0;P2=0xff;ct = 10;state = 1;} break;case 1:if(ct == 0){ P3=0;P1=0;P2=0xff;ct = 2;state = 2;} break;...
  • MSC-51鍗曠墖鏈轰氦閫氱伅璁烘枃
    绛旓細鍗曠墖鏈轰氦閫氱伅鎺у埗绯荤粺璁捐--甯︿豢鐪熺殑璁烘枃缂栧彿:JD943 璁烘枃瀛楁暟:7687,椤垫暟:29鎽樿 鏈璁℃槸浜ら氫俊鍙风伅鎺у埗绯荤粺锛岄殢鐫绀句細鐨勪笉鏂殑杩涙锛岀ぞ浼氱殑涓嶆柇鍙戝睍銆備氦閫氫篃鏃ユ笎澶嶆潅锛屼氦閫氱殑鑷姩鍖栦篃涓嶆柇鏇存柊锛屼氦閫氱殑涓浜涙寚鎸ョ郴缁熷厜闈犱汉鏉ュ畬鎴愭槸杩滆繙涓嶅鐨勶紝杩欏氨闇瑕佽璁″悇绉嶄氦閫氭寚鎸ヨ嚜鍔ㄥ寲绯荤粺鏉ュ畬鎴愯繖浜涘鏉傜殑宸ヤ綔...
  • 鍒╃敤mcs-51鍗曠墖鏈鎸囦护绯荤粺璁捐涓娈浜ら氱伅杞祦鐐逛寒鐨勭▼搴
    绛旓細鍙傝冪▼搴忥紝 鍏蜂綋鐣欒█鍟嗚銆侽RG 0000H LJMP MAIN ORG 0100H MAIN:MOV SP,#60H ; LCALL DIR ;璋冪敤鏃ユ湡銆佹椂闂存樉绀哄瓙绋嬪簭 LOOP:MOV P1,#0FFH LJMP TEST LCALL ROAD1 ;璺彛1鐨勮溅鐩磋鏃跺悇璺彛鐏寒鎯呭喌 LCALL DLY30s ;寤舵椂30绉 MOV P1,#0FFH ;鎭㈠P1鍙i珮鐢靛钩 LCALL RESET ;鎭㈠81...
  • 鐢51鍗曠墖鏈鍒朵綔绾㈢豢鐏,瑕佹眰鎸夐敭鑳芥帶鍒舵暣涓數璺殑鍚姩鍜屽仠姝,鐢ㄦ眹缂栬瑷...
    绛旓細鏆傜ǔ鎬佺粨鏉熸椂锛孖C2鈶㈣剼涓轰綆鐢靛钩锛屽叾缁廋3銆丷23寰垎鍚庯紝涓嬮檷娌垮張瑙﹀彂IC3锛屽舰鎴愮浜岀骇鍗曠ǔ鎬佸欢鏃躲傚姝や緷娆¤Е鍙戝畾鏃讹紝瀹屾垚缁胯壊鐏寒-榛勮壊鐏寒(8绉掋10绉掋12绉)-绾㈣壊鐏寒(60绉掋45绉掋30绉)鐨勫惊鐜懆鏈熴 鏈帶鍒跺櫒閫氳繃鍥涚骇鐢佃矾棣栧熬鐩告帴锛屼緷娆″欢鏃惰Е鍙戯紝浣浜ら氱伅渚濇鍑虹幇缁-榛-绾(鑹)淇″彿锛屾寚鎸ヨ浜...
  • 51鍗曠墖鏈轰氦閫氱伅璁捐,姹傜▼搴忓拰Proteus浠跨湡鍥,鎬ラ渶璇峰ぇ绁炰滑甯府蹇欏晩_鐧...
    绛旓細宸叉寜瑕佹眰瀹屾垚锛屼袱涓腑鏂寜閽傛湜閲囩撼銆
  • 51鍗曠墖鏈轰氦閫氱伅绋嬪簭 涓滆タ绾㈢伅浜60绉,鍗楀寳缁跨伅浜55绉 涓滆タ缁跨伅浜55绉,鍗...
    绛旓細include<reg52.h> sbit dx P1.0 sbit nb P1.1 void delay(void) //璇樊 0us { unsigned char a,b,c;for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);_nop_; //if Keil,require use intrins.h } void mian(){ char a;while(1){ nb=1;dx=0;f...
  • 鍗曠墖鏈轰氦閫氱伅绋嬪簭
    绛旓細閲囩敤51鍗曠墖鏈浣滀负绯荤粺鐨凪CU锛屽熀鏈畬鎴愭帶鍒朵袱缁浜ら鎸囩ず鐏氦鏇夸寒 姣忎釜琛楀彛鏈夊乏鎷愩佺洿琛屽強琛屼汉涓夌鎸囩ず鐏傜洿琛岀伅姣忎釜鐏湁绾侀粍銆佺豢涓夌棰滆壊銆傝嚜琛岃溅涓庢苯杞﹀叡鐢ㄥ乏鎷愬拰鐩磋鐏傞鍏堜笢瑗垮悜鐩磋缁跨伅鍜岃浜虹伅浜1鍒嗛挓锛屽乏杞伅浜30绉掞紝榛勭伅浜5绉掞紙鍚屾椂鍗楀寳鍚戠孩鐏寒95绉掞級锛岀劧鍚庝笢瑗垮悜绾㈢伅浜95绉掗挓锛堝悓鏃堕鍏堝崡鍖...
  • 鍒╃敤51鍗曠墖鏈妯℃嫙浜ら氱伅鎺у埗,鎬庝箞鐢ㄦ暟鐮佺鏄剧ず鍑烘潵
    绛旓細杩欐渶濂界敤闈欐佹樉绀猴紝鍙渶瑕佹墿灞74HC595鍗冲彲锛屾瘡涓74HC595鍙互鏄剧ず涓浣嶆暟瀛楋紝瀹冧滑绾ц仈锛屾墍浠ヤ竴鑸彧闇瑕4鏍笽O鍙g嚎鍗冲彲銆傝佺殑鏂规浣跨敤74LS164锛屼笉杩囧垏鎹㈡椂鏈夐棯鍔ㄣ
  • 璺眰51鍗曠墖鏈轰氦閫淇″彿鐏痗璇█绋嬪簭璁捐
    绛旓細GPIO_TRAFFIC = 0xFF; //灏嗘墍鏈夌殑鐏鐔勭伃 RED00 = 1; GREEN00 = 1;GREEN11 = 0; //瀹濈敯璺豢鐏寒 GREEN10 = 0; //瀹濈敯璺汉琛岄亾缁跨伅浜 RED01 = 0; //鍓嶈繘璺孩鐏寒 RED00 = 0; //鍓嶈繘璺汉琛岄亾绾㈢伅浜 } //--榛勭伅绛夊緟鍒囨崲鐘舵侊紝5绉--// else if(S...
  • 扩展阅读:51单片机交通灯设计ppt ... 51单片机简单红绿灯 ... 交通灯plc编程图 ... 简单的51单片机交通灯 ... 最简单红绿灯plc编程 ... 单片机红绿灯倒计时 ... at89c51交通灯 ... 用51单片机设计交通灯 ... 51单片机模拟交通灯代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网