仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar m;
- void delay(uint k);
- uchar code table[]={
- 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};//A為高位的共陰數碼表
- void delay(uint k){
- unsigned char a,b ;
- for(;k>0;k--)
- for(b=142;b>0;b--)
- for(a=2;a>0;a--);//延時函數
- }
- void main()
- {
- TMOD=0x05;
- TH0 = (65536-1)/256;
- TL0 = (65536-1)%256;
- EA=1;
- ET0=1;
- m=0;
- P1=0xff;
- TR0=1;
- while(1)
- {
- uchar sw,gw;
- sw=m/10; //十位
- gw=m%10; //個位
- P1=0xfe; //選擇個位的顯示數碼管
- P2=table[gw];//顯示個位 ,將高電平傳到數碼管個位
- delay(10); //延時
- P1=0xfd; //選擇十位顯示的數碼管
- P2=table[sw]; //顯示十位
- delay(10);//延時
-
- }
- }
- void timer0() interrupt 1
- {
- TH0 = (65536-1)/256;
- TL0 = (65536-1)%256;
- m++;
- if(m==100)m=0;
- }
復制代碼
Keil代碼與Proteus仿真下載:
maichong.zip
(33.97 KB, 下載次數: 106)
2019-10-28 14:35 上傳
點擊文件名下載附件
|