導航:首頁 > 操作系統 > 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函數控制單片機相關的資料

熱點內容
c傳遞指針到python 瀏覽:160
手動添加引導的命令 瀏覽:52
740伺服器小藍條是做什麼的 瀏覽:520
linux文件操作命令 瀏覽:125
安卓手機圖片文件夾加鎖 瀏覽:778
steam提示音在哪個文件夾 瀏覽:337
項目開發全程實錄pdf 瀏覽:530
單片機reset 瀏覽:595
pdf怎麼是英文 瀏覽:969
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:371
php去掉小數後面的0 瀏覽:954
阿里備案買什麼伺服器 瀏覽:261
網路驅動下載到哪個文件夾 瀏覽:481
達內程序員培訓西安 瀏覽:505
人保送車主惠app上怎麼年檢 瀏覽:604
android手機開機密碼 瀏覽:481
linux查看某個進程命令 瀏覽:530
閑置的騰訊雲伺服器 瀏覽:439