1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
#include《stcreg.h》
#define uchar unsigned char #define uint unsigned int ***it FMQ=P3^4; ***it QR=P2^7; ***it QY=P2^6; ***it QG=P2^5; ***it HR=P2^7; ***it HY=P2^6; ***it HG=P2^5; ***it ZR=P2^4; ***it ZY=P2^3; ***it ZG=P2^2; ***it YR=P2^4; ***it YY=P2^3; ***it YG=P2^2; ***it SWITCH1=P1^0; ***it SWITCH2=P1^1; ***it SWITCH3=P1^2; ***it SWITCH4=P1^3; ***it P3_2=P3^2; ***it P3_3=P3^3; uchar DAT1,DAT2; //显示时间变量 uchar DISP1[2]={0,0}; //显示缓冲区1,南北 uchar DISP2[2]={0,0}; //显示缓冲区2,东西 uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF}; void DISPCLK1(uchar i); void DISPCLK2(uchar i); void DEL1MS(uint z) { uint x,y; for(x=0;x《z;x++) for(y=0;y《123;y++); } void main() { uchar i,j; TCON=0x5; PX1=1; EX0=1; EX1=1; EA=1; P0=0xFF; P1=0xFF; P2=0xFF; P3=0xFF; while(1) { P1=0xFF; P2=0xFF; DAT1=25; DAT2=25; QG=0; HG=0; ZR=0; YR=0; for(i=0;i《20;i++) { for(j=0;j《200;j++) { DISPCLK1(DAT1); DISPCLK2(DAT2); DEL1MS(25); //延时5毫秒 } FMQ=1; DAT1=DAT1-1; DAT2=DAT2-1; } P1=0xFF; P2=0xFF; ZY=0; YY=0; QY=0; HY=0; for(i = 0; i 《 5; i++) { for(j = 0; j 《 200; j++) { DISPCLK1(DAT1);//显示 DISPCLK2(DAT2);//显示 DEL1MS(25); //延时3毫秒 } QY = ~QY; //南北向黄灯亮 HY = ~HY; ZY = ~ZY; //东西方向黄灯亮 YY = ~YY; FMQ = ~FMQ; //黄灯时蜂鸣器叫一声 DAT1 = DAT1 - 1;//完成数字的减1操作,调整好的数字送显存 DAT2 = DAT2 - 1;//完成数字的减1操作,调整好的数字送显存 } P1 = 0xff; P2 = 0xff; DAT1 = 15; //汇编0x20 DAT2 = 15; //汇编0x20 ZG = 0; //东西方向绿灯亮 YG = 0; QR = 0; //南北方向红灯亮 HR = 0; for(i = 0; i 《 10; i++)//执行15秒 { for(j = 0; j 《 200; j++) { DISPCLK1(DAT1);//显示 DISPCLK2(DAT2);//显示 DEL1MS(25); //延时3毫秒 } FMQ = 1; //蜂鸣器响 DAT1 = DAT1 - 1;//完成数字的减1操作,调整好的数字送显存 DAT2 = DAT2 - 1;//完成数字的减1操作,调整好的数字送显存 } //最后5秒黄灯闪 P1 = 0xff; P2 = 0xff; //关所有的灯 ZY = 0; //黄灯亮 YY = 0; QY = 0; HY = 0; for(i = 0; i 《 5; i++) { for(j = 0; j 《 200; j++) { DISPCLK1(DAT1);//显示 DISPCLK2(DAT2);//显示 DEL1MS(25); //延时3毫秒 } QY = ~QY; //南北向黄灯亮 HY = ~HY; ZY = ~ZY; //东西方向黄灯亮 YY = ~YY; FMQ = ~FMQ; //黄灯时蜂鸣器叫一声 DAT1 = DAT1 - 1;//完成数字的减1操作 ,调整好的数字送显存 DAT2 = DAT2 - 1;//完成数字的减1操作 ,调整好的数字送显存 } } } void D_X() interrupt 0 using 0 { uchar i,j,temp0,temp1,temp2,temp3; EA=0; P3_2=1; while(!P3_2); temp0=DAT1; temp1=DAT2; temp2=P1; temp3=P2; DAT1=60; DAT2=60; P1=0xff; P2=0xff; ZG=0; YG=0; QR=0; HR=0; for(i=0;i《60;i++) { for(j=0;j《200;j++) { DISPCLK1(DAT1); DISPCLK2(DAT2); DEL1MS(25); } DAT1=DAT1-1; DAT2=DAT2-1; } DAT1=temp0; DAT2=temp1; P1=temp2; P2=temp3; EA=1; } void N_B() interrupt 2 using 0 { uchar i,j,temp0,temp1,temp2,temp3; EA=0; P3_3=1; while(!P3_3); temp0=DAT1; temp1=DAT2; temp2=P1; temp3=P2; DAT1=60; DAT2=60; P1=0xff; P2=0xff; ZR=0; YR=0; QG=0; HG=0; for(i=0;i《60;i++) { for(j=0;j《200;j++) { DISPCLK1(DAT1); DISPCLK2(DAT2); DEL1MS(25); } DAT1=DAT1-1; DAT2=DAT2-1; } DAT1=temp0; DAT2=temp1; P1=temp2; P2=temp3; EA=1; } void DISPCLK1(uchar i) { DISP1[0]=i%10; DISP1[1]=i/10; P0=table[DISP1[0]]; SWITCH2=0; DEL1MS(2); SWITCH2=1; P0=table[DISP1[1]]; SWITCH1=0; DEL1MS(2); SWITCH1=1; } void DISPCLK2(uchar i) { DISP2[0]=i%10; DISP2[1]=i/10; P0=table[DISP2[0]]; SWITCH4=0; DEL1MS(2); SWITCH4=1; P0=table[DISP2[1]]; SWITCH3=0; DEL1MS(2); SWITCH3=1; } |
|
|
|
只有小组成员才能发言,加入小组>>
2548 浏览 0 评论
1146浏览 2评论
745浏览 1评论
499浏览 0评论
265浏览 0评论
426浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 00:15 , Processed in 1.541185 second(s), Total 79, Slave 61 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号