|
初學(xué)者 分享設(shè)計 大神不吐槽哈,這是實訓(xùn)時的作業(yè)設(shè)計。
源程序在附件中更清晰。有注釋
大神們?nèi)粲袑W(xué)習(xí)的好建議一起分享哈
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1236.JPG (146.55 KB, 下載次數(shù): 37)
下載附件
2018-7-1 11:08 上傳
單片機(jī)源程序:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar Digits_of_6DSY[]={0,0,0,0,0,0};
- uchar Count;
- sbit Dot=P0^7;
- void DelayMS(uint ms)
- {
- uchar t;
- while(ms--) for(t=0;t<120;t++);
- }
- void main()
- {
- uchar i,j;
- P0=0x00;
- P3=0xff;
- Count=0;
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- IE=0x82;
- TR0=1;
- while(1)
- {
- j=0x7f;
- for(i=5;i!=-1;i--)
- {
- j=_crol_(j,1);
- P3=j;
- P0=DSY_CODE[Digits_of_6DSY[i]];
- if(i==1) Dot=1;
- DelayMS(2);
- }
- }
- }
- void Timer0() interrupt 1
- {
- uchar i;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- if(++Count!=2) return;
- Count=0;
- Digits_of_6DSY[0]++;
- for(i=0;i<=5;i++)
- {
- if(Digits_of_6DSY[i]==10)
- {
- Digits_of_6DSY[i]=0;
- if(i!=5) Digits_of_6DSY[i+1]++;
- }
- else break;
- }
- }
復(fù)制代碼
0.png (7.57 KB, 下載次數(shù): 43)
下載附件
2018-7-1 16:38 上傳
全部資料51hei下載地址:
10000s內(nèi)數(shù)碼管計時.zip
(23.14 KB, 下載次數(shù): 23)
2018-7-1 11:08 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|