1樓:匿名使用者
#include
#include
#define u16 unsigned int#define u8 unsigned char#define pin0 0x01
#define pin1 0x02
#define pin2 0x04
#define pin3 0x08
#define pin4 0x10
#define pin5 0x20
#define pin6 0x40
#define pin7 0x80
sbit k1=p3^3;
sbit k2=p3^4;
sbit k3=p3^5;
#define k1 pin0
#define k2 pin1
#define k3 pin2
u8 key=0xff;//消抖後的有效按鍵值u8 key_down=0x00;//按鍵下降沿掃描結果,1有效u8 key_up=0x00; //上升沿掃描結果,1有效u8 key_sc=0xff;//上次掃描的按鍵值//按鍵掃描程式
void scankey()
}else
key_down=key_sc&(~key);//下降沿掃描key_up=(~key_sc)&key;//下降沿掃描key_sc=key;
}u8 readpin(u8 port,u8 pin)u8 ds[4]; //數碼管顯示快取
code u8 w=; //位碼
code u8 d=;//斷碼
code u8 dand=;
void dispaly()
void timer0init(void) //1毫秒@11.0592mhz
void init() //初始化函式
u16 js_ms=0;
u8 flag=0;
u16 count=0;
void main()//主函式
if(readpin(key_down,k2)==1)if(readpin(key_down,k3)==1) }}void timer0() interrupt 1//定時器,實現倒計時}
2樓:匿名使用者
你好!是c語言寫程式嗎?實物準備好了嗎
利用微控制器設計59秒計時器
3樓:匿名使用者
共陽共陰只是你在選com端時給其高低電平的問題無關大雅我給一段pic微控制器的程式讓你參考一下,如果你看懂的話應該能做出來了#include
#include
//此程式實現計時秒錶功能,時鐘顯示範圍00.00~99.99秒,分辨度:0.01秒
unsigned char s0,s1,s2,s3;
//定義0.01 秒、0.1 秒、1秒、10秒計時器unsigned char s[4];
unsigned char k ,data ,sreg;
unsigned int i;
const table[10]=;
//不帶小數點的顯示段碼錶
const table0[10]=;
//帶小數點的顯示段碼錶
//tmr0初始化子程式
void tmint()
//spi顯示初始化子程式
void spiinit()
//系統其它部分初始化子程式
void initial()
//spi傳輸資料子程式
void spiled(data)
while(sspif==0);
sspif=0;
}//顯示子程式,顯示4位數
void dispaly()
for(k=0;k<4;k++)
ra5=1; //最後給鎖存訊號,代表顯示任務完成}//軟體延時子程式
void delay()
//鍵掃描子程式
void keyscan()
delay(); //若有鍵按下,則軟體延時if ((rb5==0)||(rb4==0)) break;//若還有鍵按下,則終止迴圈掃描,返回}}
//等鍵鬆開子程式
void keyrelax()
//為防止按鍵過於靈敏,每次等鍵鬆開才返回}//系統賦值初始化子程式
void inizhi()
//中斷服務程式
void interrupt clkint(void)}}}s[0]=s0;
s[1]=s1;
s[2]=s2;
s[3]=s3;
}//主程式
main()}
4樓:匿名使用者
我寫的stc89c52的利用定時器1在六位數碼管前三位顯示秒錶。精確到0.01秒,你可以參考下,改下io口。不知道你的硬體設計只能給予程式參考。
#include
#define uint unsigned int#define uchar unsigned charsbit dula=p2^6;
sbit wela=p2^7;
uchar code tabledu=;//段選編碼表uchar code tablewe=; //位選編碼表void delay();
void inti();
uint temp;
display(temp);
void main()
}void inti()
void timer1() interrupt 3display(x)
void delay()
51微控制器的定時器程式,c語言編寫,使用內部定時器設計一個三位秒錶 (秒,十秒,分),顯示秒位的變動, 5
5樓:做而論道
到我的空間找找,有這樣的例項。
6樓:匿名使用者
方法:首先:要學會數碼管的顯示程式
然後:按鍵的操作,注意軟體的消抖(具體的是延時,10ms左右)。
假設有k1~停表,k2~復位,k3~繼續執行先說停表和繼續執行的
停表:如果k1按下,tr0=0;
繼續執行:如果k3按下,tr0=1;
復位:直接用硬體復位微控制器或者k2按下,資料清零。
要實現資料的迴圈:只要定時器計數到最大值時,再把最小值賦給它!
7樓:我是電阻
我也是做實驗的我不會 川大電子 嘿嘿
要求:一 課程設計內容:設計一個微控制器秒錶,該秒錶可顯示00.00到99.99秒的時間,進行相應的微控制器硬體電
8樓:順勢而為自信積累
首先明白有幾個模組:1、51最小系統 2、定時器10ms中斷一次 3、數碼管顯示(建兩個陣列,一個不帶小數的,一個帶小數的)3、按鍵掃描
就這幾個模組,心裡有個數,具體自己寫吧
核心部分是定時器部分,我寫一個:
//timer0
void timer0_init(void)void timer0(void) interrupt 1//主函式可以計t的值,10ms t自增1。 1秒t是多少,會算吧。
這些程式網上也可以找找,比較簡單。
希望對你有點幫助
9樓:匿名使用者
請把微控制器的型號以及開發板的電路圖給出給出,不然沒法做。你也可以找你們學校上屆的學長去要做好的程式。
10樓:匿名使用者
//timer0
void timer0_init(void)void timer0(void) interrupt 1{th0=(65535-10000)/256;
tl0=(65535-10000) %256;
t++;
11樓:匿名使用者
剛好做過一個,助人為快樂之本,不求分!已發到你郵箱了!
時基電路可以用微控制器內部定時器的功能代替
mist 紫櫻陪林皎看星星 完全可以。一般的時基晶片都要靠外部的電容和電阻來調節時間常數,而實際的電容值和電阻值與標稱值有一定誤差,這就導致了用時基電路的定時精度比較低。用微控制器定時器做定時,定時精度要好幾個數量級,特別是加了補償之後,可以做得非常準。如果對微控制器還不熟悉,補償不太會做,也可以用...
微控制器定時器中斷功能和定時器定時功能有什麼區別,什麼情況需要中斷,什麼時候不需要呢,講好必採納
小灰狼 定時器的定時,就像你設定的鬧鐘,中斷,就像你設定的鬧鐘到點自動發出聲音。如果只是定時,不產生中斷,就需要你編寫的主程式經常去檢視定時的時間到了沒,而且就算檢視到定時時間到了,你也不知道是什麼時候到的,如果有中斷,則會自動跳到中斷函式執行你安排好的 鬧鐘發出聲音就是安排好的,也可以是震動 硬體...
51微控制器定時器中斷程式
m愛人 再次重新啟動。用c語言實現的,先要定義好定時器的初值,不管你使用多大的晶振,使用51微控制器,一般都是12分頻出來,也就可以得出一個機器週期,機器週期 12 n n指晶振頻率 假設你要定時的時間為m,那麼定時的初值為 m 機器週期 初值 th0 65536 初值 256 tl0 65536 ...