|
數(shù)碼管顯示倒計時時間的交通燈控制設(shè)計,帶ad畫的原理圖和pcb
0.png (56.78 KB, 下載次數(shù): 40)
下載附件
2016-6-27 14:01 上傳
0.png (41.43 KB, 下載次數(shù): 50)
下載附件
2016-6-27 14:01 上傳
- #include "reg51.h"
- #include"absacc.h"
- #define uchar unsigned char
- #define uint unsigned int
- typedef unsigned char BYTE;
- typedef unsigned int WORD;
-
- sbit ge1=P2^3; //南北數(shù)碼管
- sbit shi1=P2^2;
- sbit ge2=P2^1; //東西數(shù)碼管
- sbit shi2=P2^0;
-
- sbit SNR=P1^5; //南北綠黃紅燈
- sbit SNY=P1^4;
- sbit SNG=P1^3;
- sbit EWR=P1^2; //東西綠黃紅燈
- sbit EWY=P1^1;
- sbit EWG=P1^0;
- uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- uint m,a,b,c,d;
- uchar ewg,snr;
- uchar tt=0;
- unsigned char flag;
- /******延時程序******/
- void delay(WORD n)
- {
- WORD x;
- while(n--)
- {
- x=500;
- while(x--);
- }
- }
- void delay2(WORD n)
- {
- WORD x;
- while(n--)
- {
- x=5000;
- while(x--);
- }
- }
- /******倒計時顯示******/
- void display()
- {
- a=snr/10; //南北時間
- b=snr%10;
- shi1=1;
- ge1=0;
- shi2=1;
- ge2=1;
- P0=table[a];
- WR=0;
- WR=1;
- delay2(1);
- ge1=1;
- shi1=0;
- shi2=1;
- ge2=1;
- P0=table[b];
- WR=0;
- WR=1;
- delay2(1);
- c=ewg/10; //東西時間
- d=ewg%10;
- shi2=1;
- ge2=0;
- ge1=1;
- shi1=1;
- P0=table[c];
- WR=0;
- WR=1;
- delay2(1);
- ge2=1;
- shi2=0;
- ge1=1;
- shi1=1;
- P0=table[d];
- WR=0;
- WR=1;
- delay2(1);
- }
- /******程序初始化******/
- void initial()
- {
- ewg=0;snr=0;P1=0xff;
- TMOD=0x01;
- TH0=(65536-46080)/256;
- TL0=(65536-56080)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- /*****************主函數(shù)********************/
- void main()
- {
- initial();
- ewg=30;snr=35;
- flag=0;
- while(1)
- {
- display();
- }
- }
- void T0_int() interrupt 1
- {
- TH0=(65536-46078)/256;
- TL0=(65536-56078)%256;
- tt++;
- if(tt==20)
- {
- tt=0;
- if(flag==0)
- {
- EWG=0;EWY=1;EWR=1;SNG=1;SNY=1;SNR=0;
- if(ewg>0&&snr>0){ewg--;snr--;}
- if(ewg==0){flag=1;ewg=6,snr=6;}
- }
- if(flag==1)
- {
- EWG=1;EWY=0;EWR=1;SNG=1;SNY=1;SNR=0;
- if(ewg>0&&snr>0){ewg--;snr--;}
- if(ewg==0){flag=2;ewg=36,snr=31;}
- }
- if(flag==2)
- { EWG=1;EWY=1;EWR=0;SNG=0;SNY=1;SNR=1;
- if(ewg>0&&snr>0){ewg--;snr--;}
- if(snr==0){flag=3;ewg=6,snr=6;}
- }
- if(flag==3)
- {
- EWG=1;EWY=1;EWR=0;SNG=1;SNY=0;SNR=1;
- if(ewg>0&&snr>0){ewg--;snr--;}
- if(ewg==0){flag=0;ewg=30,snr=35;}
- }
- }
- }
復(fù)制代碼
課設(shè).zip
(317.39 KB, 下載次數(shù): 33)
2016-6-27 10:56 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|