ps:
使用的是51微控制器, 晶振為11.0592m的, 時間選擇5ms。
這篇部落格好像是第一篇微控制器部落格誒~。
演算法:
簡單的計時器應用, 最開始 根據 2^16 - (t - f)/12 計算得到值, 將其轉換為16進製制 (注意:單位的改變, 例如晶振要乘上 10e6 時間 要轉換為秒s 乘上 10e-3)
由此可以得到 th0/tl0的值。
例如:
設計的是5ms, 則 算式為 2^16 - (5 * 10^-3 - 11.0592 * 10^6) / 12; 轉換為16進製制 為dc00; 所以 th0 = 0xdc__tl0 = 0x00;
顯示:
拆字什麼的 就不說了~~, 反正就是 分和秒 對 10取餘 和 整除。
下面函式中的 counter 和 second 分別對應 秒和分。
hint:
老師說, 最好在 tmp=counter%4; 前 加上 if(changed == 1)執行拆字顯示, 然後再將執行空語句 如此迴圈。 但還是不怎麼明白為什麼。 好像是說 保護 io 之類的~~~~
#include
#define uchar unsigned char
uchar counter=0,tmp,second=0,minute=0, changed = 1;
main()
; //拆字
//顯示
tmp=counter%4;
switch(tmp)
break;
case
1: break;
case
2: break;
case
3: break;}}
/*if(j==2)
*/}void zhongduan()interrupt 1
*/counter++;
if(counter==200)
}}
51微控制器液晶顯示計時器
要想實現人機互動,顯示裝置是不可缺少的。前面講到了如何利用微控制器控制數碼管的顯示,這篇文章主要關於如何控制液晶顯示,並在此基礎上加上定時器的功能,把原來已用數碼管顯示的定時器搬到液晶屏上來。這裡用到的液晶為lcd1602,能夠同時顯示16x02即32個字元 16列2行 1602液晶模組內部的字元發...
51微控制器做乙個計時器
同樣我們使用的仍然是stc的8051微控制器,這段 是用來做乙個計時器,通過數碼管實時顯示出來,因為板子上數碼管有6個,所以可以設定小時,分鐘,秒三個單位,在proteus上也是可以模擬的,計時結束可以用蜂鳴器,或者繼電器介面連線 乙個鬧鈴,鬧鈴用電磁式的就可以,當然簡單來說蜂鳴器就是乙個不錯的選擇...
微控制器 51微控制器時鐘 利用中斷
include include delay delay.h define timeport p0 sbit bit select p2 0 sbit seg select p2 1 sbit key1 p2 2 sbit key2 p2 3 code unsigned char timedata 1...