仿真圖.png (16.82 KB, 下載次數(shù): 68)
下載附件
仿真圖
2017-5-13 12:38 上傳
0.png (75.33 KB, 下載次數(shù): 64)
下載附件
2017-5-13 21:18 上傳
單片機源程序:
- /*這個程序主要實現(xiàn)
- 每隔1ms左右數(shù)碼顯示管上的數(shù)字自動累加1
-
- BY:IZHIQIANG
-
- */
- #include<REGX52.H>
- #include<INTRINS.H>
- code unsigned char TransCodes[10]=
- {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定義查表數(shù)組,顯示0-9中的第幾個就直接選第幾個就行
- void Display(int Datum);//自定義的數(shù)碼管顯示函數(shù)的聲明
- void Delay5ms();//5ms延時聲明
- int main()
- {
- int i;
- for(i=0;i<999;i++)//i從0到999累加
- {
- if(i>999)//當i大于999就給它置0
- {
- i=0;
- }
- Display(i);//在數(shù)碼管上顯示i的值
- }
- return 0;
- }
- void Display(int Datum)//自定義的數(shù)碼管顯示函數(shù)的定義
- {
-
- //數(shù)值轉換
- int bai,shi,ge,i;
- bai=Datum/100;//百位
- shi=Datum%100/10;//十位
- ge=Datum%10;//個位
- //數(shù)碼管顯示,每位數(shù)字顯示5ms,不停地輪回顯示
- //大多數(shù)數(shù)碼管都是用的這種視覺延遲的方法顯示多個數(shù)字
- //在這里只用了數(shù)碼管的后三位
- //這里66然后乘以下面3個5ms的和,等于990ms,差不多1秒。
-
- for(i=0;i<66;i++) //66個循環(huán)
- {
- P2_4=1,P2_5=1,P2_6=1;//關掉三個數(shù)碼管
- P0=TransCodes[bai];//P0輸出百位數(shù)字
- P2_4=0,P2_5=1,P2_6=1;//打開百位輸入端
-
- Delay5ms(); //5ms延時
- P2_4=1,P2_5=1,P2_6=1;//這里是十位的,其他同上
- P0=TransCodes[shi];
- P2_4=1,P2_5=0,P2_6=1;
-
- Delay5ms();
- P2_4=1,P2_5=1,P2_6=1;//這個是個位的,其他同上
- P0=TransCodes[ge];
- P2_4=1,P2_5=1,P2_6=0;
-
- Delay5ms();
- }
- }
- //5ms的軟件延時,這個是用stc軟件生成的
- void Delay5ms()
- {
- unsigned char i, j;
- i = 10;
- j = 183;
- do
- {
- while (--j);
- } while (--i);
- }
復制代碼
下載:
數(shù)碼管顯示.zip
(50.76 KB, 下載次數(shù): 70)
2017-5-13 12:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|