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

熱點內容
武侯京東程序員的工資待遇 瀏覽:482
單片機學習指導 瀏覽:586
胸7椎體輕度壓縮 瀏覽:108
sk5伺服器什麼意思 瀏覽:554
什麼是廊坊交警app 瀏覽:294
衣櫃造價演算法 瀏覽:984
默認的web伺服器地址 瀏覽:694
單片機與發光二極體 瀏覽:320
pythonwebmodule 瀏覽:328
空調壓縮機不停了 瀏覽:115
python序列怎麼取 瀏覽:199
線上資料庫加密怎麼查詢 瀏覽:794
js中數據加密 瀏覽:470
穴pdf 瀏覽:549
阿里雲伺服器雲資料庫還需要嗎 瀏覽:146
在程序設計中常用的演算法有哪些 瀏覽:977
為什麼蘇州公積金app一直維護 瀏覽:805
有ip地址但是dhcp伺服器 瀏覽:446
三星手機加密中斷怎麼回事 瀏覽:538
訓練模型init源碼 瀏覽:840