|
1.png (24.33 KB, 下載次數(shù): 55)
下載附件
2018-12-13 09:35 上傳
2.png (25.17 KB, 下載次數(shù): 53)
下載附件
2018-12-13 09:35 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define wei=P2;
- #define duan=P0;
- sbit led=P1^0;
- sbit S2=P3^0;
- sbit S3=P3^1;
- sbit S4=P3^2;
- uchar sec,num;
- uint cnt=0; //全局變量,控制數(shù)碼管顯示的數(shù)字的變化
- uint ge,shi,qian,bai;
- uchar code arry[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void delay(uint i);//軟件延時函數(shù)
- void display(); //數(shù)碼管顯示函數(shù)
- void delay(uint i)//軟件延時函數(shù)
- {
- uint a,c;
- for(a =i;a>0;a--)
- {
- for(c=114;c>0;c--);
- }
- }
- void display()
- {
- qian=cnt/1000;
- bai=(cnt%1000)/100;
- shi=((cnt%1000)%100)/10;
- ge= ((cnt%1000)%100)%10;
- P2=0xf7;
- P0=arry[ge];
- delay(5); //防止重影
- P2=0xfb;
- P0=arry[shi];
- delay(5);
- P2=0xfd;
- P0=arry[bai];
- delay(5);
- P2=0xfe;
- P0=arry[qian];
- delay(5);
- }
- void Timer0Init()
- {
- TMOD|=0X11;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
- TH0=0X3c; //給定時器賦初值,定時1ms
- TL0=0Xb0;
- TH1=0X3C;
- TL1=0XB0;
- ET1=1;
- ET0=1;//打開定時器0中斷允許
- EA=1;//打開總中斷
-
- }
- void Timer0() interrupt 1
- {
-
- TH0=0X3c; //
- TL0=0Xb0;
- sec++;
- if(sec==20)
- {
-
- TF0=0;
- sec=0;
- cnt++;
-
- }
- if(cnt==9999)
- {
-
- cnt=9999;
- TR0=0;
- TF0=0;
- }
- }
- void Timer1() interrupt 3
- {
-
- TH1=0X3c; //
- TL1=0Xb0;
- num++;
- if(num==10)
- {
- num=0;
- TF1=0;
- led=~led;
-
- }
- }
- void main()//主函數(shù)
- {
- Timer0Init();
- while(1)
- {
- display();
- if(S2==0)//開始/復(fù)位
- {
- delay(10);
- if(S2==0)
- {
- sec = 0;
- num=0;
- cnt=0;
- TR0=1;
- TR1=1;
- }
- }
- if(S3==0)//暫停
- {
- delay(10);
- if(S3==0)
- {
- TR0 = 0; //關(guān)閉定時器
- TF0 = 0;
- TR1=0;
- TF1=0;
- }
-
- }
- if(S4==0)//繼續(xù)開始
- {
- delay(10);
- if(S4==0)
- {
- sec = 0;
- num=0;
- TR0=1;
- TR1=1;
- }
-
- }
-
-
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
51單片機(jī)0到9999數(shù)碼管顯示的Proteus仿真 代碼.dsn.zip
(77.43 KB, 下載次數(shù): 82)
2018-12-13 09:38 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|