適合新手學習仿真38譯碼器驅動的數碼管原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (22.26 KB, 下載次數: 50)
下載附件
2018-1-21 16:42 上傳
0.png (50.34 KB, 下載次數: 49)
下載附件
2018-1-21 16:41 上傳
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- sbit A0=P2^2;
- sbit A1=P2^3;
- sbit A2=P2^4;
- uchar a,t,x,y;
- void delay(void)
- {
- unsigned char i=0,j=0;
- for(i=0;i<100;i++);
- for(j=0;j<20;j++);
- }
- void Timer0() interrupt 1 //中斷函數 中斷方式1
- {
- t++;
- TH0=0x4C; //計數器賦初值 下同
- TL0=0x00;
- }
- void data_tim()
- {
- if(t==20)
- {
- a--;
- t=0;
- }
- x=a/10;
- y=a%10;
- }
- void display()
- {
- A1=A2=A0=0; //38譯碼器的位碼
- P0=duanma[x]; //八個數碼管的段碼
- delay();
- P0=0;
- A1=A2=0;A0=1;
- P0=duanma[y];
- delay();
- P0=0; //消隱
- }
- void init_t()
- {
- TMOD=0x01;
- TH0=0x4C;
- TL0=0x00;
- ET0=1;
- TR0=1;
- EA=1;
- }
- void main(void)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
38譯碼器驅動數碼管.rar
(31.3 KB, 下載次數: 32)
2018-1-21 09:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|