單片機數碼管仿真的原理圖
0.png (25.31 KB, 下載次數: 88)
下載附件
2016-5-29 15:55 上傳
0.png (69.38 KB, 下載次數: 103)
下載附件
2016-5-29 15:55 上傳
仿真文件下載:http://m.zg4o1577.cn/bbs/dpj-50777-1.html
- #include <reg51.h>
- #define uchar unsigned char
- uchar count = 0;
- uchar switc[9] = {0X7F, 0XBF, 0XDF, 0XEF, 0XF7, 0XFB, 0XFD, 0XFE}; //控制哪一個數碼管亮
- unsigned char disNumber[10] = {0xFF,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //數碼管顯示的數
- unsigned char disNumber_index;
-
- void delay2ms(void) //誤差 0us
- {
- unsigned char a,b;
- for(b=4;b>0;b--)
- for(a=248;a>0;a--)
- ;
- }
- void time1() interrupt 1 //定時器中斷
- {
- uchar tempValue = 0;
- count++;
- if(count == 20)
- {
- count = 0;
- disNumber_index++;
- if(disNumber_index == 9)
- disNumber_index =0;
- }
-
-
- TH0=(65536-50000)/256; //16位定時器0x60B0 高八位TH0 60低八位 B0 定時50000微秒觸發定時器
- TL0=(65536-50000)%256;
- }
- void main(void)
- {
- TMOD=0x01;//設置定時器0為工作方式1
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;//打開中斷總開關
- ET0=1;//開定時器0中斷
- TR0=1;//啟動定時器0
- P2 = 0x00;
-
- while(1)
- {
- P0 = disNumber[disNumber_index];
-
- }
- }//小月子2016年5月21日編輯 如果您有什么不理解的地方請加小月子QQ:616142166
- //小月子是個電子發燒友,小月子電子網店賣的是電子電路類、編程類學習資料教學視頻
- //請關注我的網
復制代碼
|