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

熱點內容
如何解開應用加密 瀏覽:902
考研詞彙劉一男pdf 瀏覽:119
kali的內核頭編譯 瀏覽:867
數控銑床洗斜面怎麼編程 瀏覽:894
程序員基礎架構崗怎麼樣 瀏覽:412
有什麼好的付費app 瀏覽:626
java生成6隨機數字 瀏覽:177
匯編語言程序設計教程pdf 瀏覽:44
我的老公是冥王在哪個app上看 瀏覽:70
程序員婚前准備 瀏覽:372
金鏟鏟之戰微信安卓兌換碼怎麼換 瀏覽:846
單片機38解碼器 瀏覽:335
思域換壓縮機 瀏覽:183
必應伺服器ip地址 瀏覽:628
魔獸世界伺服器怎麼連接 瀏覽:39
什麼地方會用到雲伺服器 瀏覽:54
pdfarchitect 瀏覽:676
圖片找不到文件夾 瀏覽:199
看書免費app哪個最好 瀏覽:630
python伺服器怎麼安裝 瀏覽:382