1. 秒錶(精確00.00),四位共陰數碼管顯示,單片機S52控制,要求可以暫停、開始,P2口控制段,P3口控制位
用一個定時器,模式1,10ms周期,開了中斷就行了。每次進入中斷就調用一次鍵盤函數、計時函數、顯示函數。
計時:兩位元組分別做小數和整數部分,每次中斷小數+1,小數大於99清0整數+1
鍵盤:狀態機控制,分為:M1.沒按下;M2.剛按下;M3.已按下;M4.剛松開。4個狀態,只有從M2剛按下確認為M3已按下的時候執行鍵盤動作,每次轉換狀態後多退出鍵盤程序。運行順序是:先是M1,檢測到0轉M2,檢測到1不動作;M2時檢測到0轉M3並執行鍵盤動作,檢測到1轉M1;M3時檢測到0轉M4,檢測到1不動作;M4時檢測到0轉M1,檢測到1轉M3.
顯示:在4個數碼管間循環,每次只顯示1位,每次進入程序改變顯示位,分別是整數的十位、整數的個位、小數的十位、小數的個位。
2. 利用51單片機,4個數碼管設計一個計時器,要求在數碼管上顯示的數據從0開始每1秒鍾加1。
共陽數碼管中斷程序:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]=
{
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x83,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
uint num,a;
uchar ,shi,ge;
void init();
void delay(uint);
void display(uchar,ucharshi,ucharge);
uint fb();
uint fs();
uint fg();
void main()
{
init();
while(1)
{
display(fb(),fs(),fg());
}
}
void init()
{
num=0;
a=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void display(uchar,ucharshi,ucharge)
{
P1=0xfd;
P0=table[];
delay(1);
P1=0xfb;
P0=table[shi];
delay(1);
P1=0xf7;
P0=table[ge];
delay(1);
}
void timeoff() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65526-50000)%256;
a++;
if(a%20==0)
{
num++;
if(num==999)
{
num=0;
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uint fb()
{
=num/100;
return ;
}
uint fs()
{
shi=num%100/10;
return shi;
}
uint fg()
{
ge =num%100%10;
return ge;
}
(2)單片機數碼管4位秒錶擴展閱讀
2個可編程定時/計數器·5個中斷源,2個優先順序(52有6個)
一個全雙工串列通信口
外部數據存儲器定址空間為64kB
外部程序存儲器定址空間為64kB
邏輯操作位定址功能·雙列直插40PinDIP封裝
單一+5V電源供電
CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;
RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;
ROM:用以存放程序、一些原始數據和表格;
I/O口:四個8位並行I/O口,既可用作輸入,也可用作輸出
T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
五個中斷源的中斷控制系統;
一個全雙工UART(通用非同步接收發送器)的串列I/O口,用於實現單片機之間或單片機與微機之間的串列通信;
片內振盪器和時鍾產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6M—12M。
參考資料來源:網路-51單片機
3. 51單片機的4位數碼管做簡易秒錶C語言程序
#include"dz110306140.h"這是什麼頭文件
4. 單片機如何用四位數碼管來做0-250的計時器
這個問題真的不能幫到你了,因為你問的問題我真的不是太理
5. 我用51單片機做了一個秒錶,使用四位共陰數碼管顯示,但是數碼管很暗,怎麼是數碼管增加亮度
把一個多位數(大於9的數)分別顯示在兩個數碼管上面就是把這個數的每一位拆開,用數碼管的動態掃描進行顯示。至於閃動,不就是一亮一滅嗎?就用個定時器定時,在一秒的時間內,一半時間是亮的,一半時間是滅的,不就閃爍了嘛
6. 51單片機4位數碼管做秒錶,C語言編程含有控制開關開始停止清零。
晶振頻率,沒有限定?
7. AT89C51單片機用4位數碼管做秒錶,要求用動態掃描做,匯編語言
4位數碼管動態掃描的電路,並編程實現6位數碼管同時顯示"135。
STRT EQU P1.0
CLRR EQU P1.1
ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT0
ORG 30H
MAIN:
MOV SP,#60H
MOV R4,#20
MOV TMOD,#01H
MOV TH0,#3CH;12M晶振時定時初值取#3CB0H,還可細調如 TL=#0B7H,可以更准
MOV TL0,#0B0H
SETB ET0
SETB EA
(7)單片機數碼管4位秒錶擴展閱讀:
比起機器語言,匯編語言具有更高的機器相關性,更加便於記憶和書寫,但又同時保留了機器語言高速度和高效率的特點。匯編語言仍是面向機器的語言,很難從其代碼上理解程序設計意圖,設計出來的程序不易被移植,故不像其他大多數的高級計算機語言一樣被廣泛應用。所以在高級語言高度發展的今天,它通常被用在底層,通常是程序優化或硬體操作的場合。
8. 單片機編程製作電子秒錶能顯示分(0-99),秒(0-59)
你好
樓主。
很幸運的看到你的問題。
但是又很遺憾到現在還沒有人回答你的問題。也可能你現在已經在別的地方找到了答案,那就得恭喜你啦。
對於你的問題我愛莫能助!
可能是你問的問題有些專業了。或者別人沒有遇到或者接觸過你的問題,所以幫不了你。建議你去問題的相關論壇去求助,那裡的人通常比較多,也比較熱心,可能能快點幫你解決問題。
希望我的回答也能夠幫到你!
祝你好運。
快過年了,
最後祝您全家幸福健康快樂每一天!
9. 用單片機做一個四位數碼管秒錶顯示000.0--059.9
我的是數字秒錶的,也一樣嗎