|
單片機(jī)源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- //變量unm為要顯示的數(shù),變量time為定時(shí)器計(jì)數(shù)變量、
- uint num=0,time=0;num1=0;
- //共陽(yáng)極數(shù)碼管字段碼
- uchar code a[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
- //位選碼
- uchar code b[4]={0Xfe,0Xfd,0xfb,0xf7};
- //延時(shí)函數(shù)
- void delay(uint x)
- {
- uint y;
- for(;x>0;x--)
- for(y=500;y>0;y--);
-
- }
- //定時(shí)器T0初始化函數(shù)
- void initT0()
- {
- TMOD=0x01; //定時(shí)器T0工作方式一,工作在定時(shí)模式
- TH0=(65536-50000)/256; //給定時(shí)器T0的高八位賦初值
- TL0=(65536-50000)%256; //給定時(shí)器T0的低八位賦初值
- EA=1; //開(kāi)關(guān)中斷
- ET0=1; //定時(shí)器T0中斷允許
- TR0=1; //啟動(dòng)定時(shí)器T0
- }
- //主函數(shù)
- void main()
- {
- initT0();
- while(1)
- {
- while(time<20) //由于是兩位數(shù)碼管,因而采用動(dòng)態(tài)顯示方式
- {
- P1=b[0]; //送位選碼
- P0=a[num%10]; //送字段碼
- delay(1); //延時(shí)
- P1=b[1];
- P0=a[num/10];
- delay(1);
- P1=b[2]; //送位選碼
- P0=a[num1%10]; //送字段碼
- delay(1); //延時(shí)
- P1=b[3];
- P0=a[num1/10];
- delay(1);
- }
- num++;num1++;time=0;
-
- if(num==99)num=0;
- if(num1==99)num1=0;
- }
- }
- //定時(shí)器T0中斷服務(wù)函數(shù)
- void T0int()interrupt 1
- {
- TH0=(65536-50000)/256; //給定時(shí)器T0的高八位賦初值
- TL0=(65536-50000)%256; //給定時(shí)器T0的低八位賦初值
- time++;
- }
復(fù)制代碼
所有資料51hei提供下載:
數(shù)碼管顯示0-99(共陽(yáng)極).rar
(22.73 KB, 下載次數(shù): 21)
2018-8-29 01:02 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|