|
一直想有這樣的顯示,沒(méi)有成功,只是在仿真中能顯示,是靜態(tài)顯示,對(duì)定時(shí)器學(xué)習(xí)后,有更深了一點(diǎn)認(rèn)識(shí),就感覺(jué)用定時(shí)器能實(shí)現(xiàn),結(jié)果就成功了。
1.jpg (334 KB, 下載次數(shù): 44)
下載附件
2018-12-14 23:39 上傳
2.png (44.68 KB, 下載次數(shù): 41)
下載附件
2018-12-14 23:39 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- typedef unsigned char u8;
- typedef unsigned int u16;
- u8 num,t,aa;
- u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
- void delay(u16 i)
- {
- while(i--);
- }
- sbit LSA=P2^2;
- sbit LSB=P2^3;
- sbit LSC=P2^4;
- void TimerInit()
- {
- TMOD=0X11;
- TH1=0X3C;
- TL1=0XB0;
- TH0=0X3C;
- TL0=0XB0;
- EA=1;
- ET1=1;
- TR1=1;
- ET0=1;
- }
- void Timer1() interrupt 3
- {
- TH1=0X3C;
- TL1=0XB0;
- num++;
- if(num==20)
- {
- num=0;
- TF1=0;
- t++;
- if(t==15)
- {
- TR1=0;
- TF1=0;
- TR0=1;
- }
- }
- }
- void Timer0() interrupt 1
- {
- TH0=0X3C;
- TL0=0XB0;
- aa++;
- if(aa==20)
- {
- aa=0;
- TF0=0;
- t--;
- }
- if(t==0)
- {
- TR0=0;
- TF0=0;
- TR1=1;
- }
- }
- void DigDisplay()
- {
- u8 i;
- for(i=0;i<8;i++)
- {
- switch(i)
- {
- case(0):LSA=0;LSB=0;LSC=0;break;
- case(1):LSA=1;LSB=0;LSC=0;break;
- case(2):LSA=0;LSB=1;LSC=0;break;
- case(3):LSA=1;LSB=1;LSC=0;break;
- case(4):LSA=0;LSB=0;LSC=1;break;
- case(5):LSA=1;LSB=0;LSC=1;break;
- case(6):LSA=0;LSB=1;LSC=1;break;
- case(7):LSA=1;LSB=1;LSC=1;break;
- }
- P0=smgduan[t];
- delay(10);
- P0=0x00;
- }
- }
- void main()
- {
- TimerInit();
- while(1)
- {
- DigDisplay();
- }
- }
-
復(fù)制代碼
所有資料51hei提供下載:
控制普中的板子動(dòng)態(tài)加減循環(huán)0-F.zip
(13 KB, 下載次數(shù): 6)
2018-12-14 23:51 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|