導航:首頁 > 操作系統 > if函數控制單片機

if函數控制單片機

發布時間:2023-06-11 03:02:03

① 用c語言編寫一個計數器(單片機為51型,數碼管為共陰)要求有三個按鍵分別控制停止、加、減

一看到你說是計數器,又看到你要求有停止功能,意思是把Timer改為計數器,然後可以通過一個鍵停止計數對吧?
如果這樣的話挺簡單的,51單片機的計數器io口記得好像是P3^0和P3^1,但不管怎麼,首先設置TMOD,將C/T位置1,這就改為計數器了,然後可以編寫函數來對一個變數進行加減;同樣利用51單片機的外部中斷也可以實現計數功能,打開外部中斷開關,在外部中斷服務函數對計數變數進行加減;最簡單的,直接利用io口高低電平變化來進行計數,編寫if函數,只要某個io口電平變化了,就對計數變數進行加減。
如果你對這個有點陌生,那麼回復我一起討論或者我可以幫你寫程序。
希望我的回答能幫助到你。

② 51單片機定時器進入中斷問題

EA=1;允許中斷
ET0=1;定時器中斷使能
TR0=1;開定時器,開始計時,定時器開始工作;按機器周期向上加1,當定時器溢出(計數值大於65535),硬體產生中斷,
進入中斷和你寫的函數沒有關系,是定時器硬體控制進入中斷,你的程序執行到哪中斷,中斷返回繼續執行你的程序

③ 51單片機定時器T1中斷使數碼管計數0—F,每秒加1,想要將if()函數寫到main()函數中,如何實現。

把初始化程序 Timer1Init(); 放在while(1) 的上面,你現在這樣,每次循環都初始化了,就永遠也不計數了 。另外,開機是顯示8,是因為,開機P0口全為1,要過1秒後開始從0開始顯示,可以在while(1)上面加一行 P0=0x3f; 這樣,開機就顯示0了。另外,這種定時1秒,定時器最好定時長點,如50ms ,你現在是定時1ms ,這中斷頻率太高了,如果有其它程序就會影響主程序的執行。
還有,if 語句下面的
if(i==1000)
{
//TR1=0;//要這行,就計數一遍就停了,要不停地計數就要刪掉
i=0;
P0=smgan[n++];
if(n==16) n=0;

}

閱讀全文

與if函數控制單片機相關的資料

熱點內容
php獲取原始數據 瀏覽:244
pic單片機如何編程 瀏覽:888
javabyte寫文件 瀏覽:319
java獲取類包名 瀏覽:888
ftp命令編碼格式 瀏覽:298
程序員那麼可愛陸離穿正裝 瀏覽:169
源碼的賬號密碼在哪個文件 瀏覽:437
如何在中國農業銀行app綁定銀行卡 瀏覽:991
shopnum1多用戶商城系統源碼 瀏覽:745
紅包廣告平台源碼 瀏覽:772
硬碟格式化時用的dos命令是 瀏覽:942
找人緩解壓力 瀏覽:937
iphone的pdf 瀏覽:351
90壓縮餅干怎麼吃 瀏覽:668
php教材下載 瀏覽:915
什麼解壓密碼最好 瀏覽:590
資料庫與伺服器如何連接 瀏覽:444
架構師需要閱讀的源碼 瀏覽:483
ch編譯器 瀏覽:456
java必須自己寫一個編譯器嗎 瀏覽:944