1樓:
別人編的不代表你能用,不同的電路情況是有細微區別的,可以你晶振離cpu遠點 可能你晶振跟別人的不一個品牌 可能你那溫度比別人的高, 這都導致延時函式不準。
自己動手測量才是王道。用個示波器測一下,不費什麼功夫,而且自己心裡也有底了。
下面是我自己的延時函式,僅供參考
void delayms_110592(unsigned int time_)//延時時間為 1ms * x 晶振是11.0592m
void delayus_110592(unsigned int time_)//延時時間為 1us * x 晶振是11.0592m
delayms_110592();這個函式的形參越大相對誤差越小,一般都是大於標準值,比如delayms_110592(100);肯定大於100ms,而且delayms_110592(1000);的相對誤差要小一點
你可以用示波器測量來試一下,具體什麼原因,自己思考~~~
delayms_110592();這個函式的形參越小相對誤差越小,一般都是大於標準值
2樓:網抓手
首先你的時鐘要穩,不要用片內rc時鐘源,用外部晶振,如果你對彙編熟悉,可以編一個延時函式,編譯後檢視彙編**,根據彙編**計算、修改(一般通過插入空控作-nop)使其延時滿足一定的時基(如10us,100us,1ms等),如果對彙編不瞭解,那最好還是用中斷方式。
微控制器中的spi,i2c,單匯流排,匯流排什麼意思,什麼用,什麼區別,
3樓:胖大海君
嘿嘿 你提出的問題很多呀 我來幫你解答吧
1 先來回答你什麼是匯流排:
匯流排就是一個公共的計算機的連線線 所有外圍裝置 都可以通過它與計算機相連線 是資訊傳遞的通道 在它上面可以掛很多個外設元件。
2 匯流排的種類很多:
如晶片級的匯流排 如 spi,i2c,單匯流排 近距離進行cpu與其它外圍晶片的連線
他們多是採用序列方式傳送 資料的 即一位一位傳送資料 可以節省傳送線的條數
spi 需要3條線: 一條時鐘線 一條資料接收線 一條資料傳送線
i2c 需要2跳線 一條時鐘線 一條 資料線
單匯流排 即是用一條資料線來通訊 如ds18b20數字溫度感測器
還有rs-232 用於計算機和計算機或微控制器進行資料通訊的
還有rs-485 、can等工業現場匯流排 用於遠距離通訊 距離可達1000米。
3 匯流排的概念、種類、區別 都給你介紹了 呵呵 滿意 就給加分啊
對微控制器程式設計要用什麼軟體,我想學微控制器程式設計,應該用什麼軟體啊?
大哥,你是門外漢吧,微控制器直接用c語言程式設計,微軟那個就行,我們學校就是那麼教的,它內部實際運算時不需要軟體的,是用數位電路直接計算的,所以簡單的邏輯程式我們都用數位電路做。前期計算好,然後把閘電路或者觸發器計時器什麼的都連起來。 現在有silicon lab開發的和eclipse很相似的sim...
微控制器C語言程式設計題,微控制器C語言程式設計題
爬行的山羊 這是兩個題啊。哈哈好做,第一個有c語言的冒泡法排序,第二個用中斷,讀,輸出就可以 include define led0 0 define led1 1 define led2 2 define ledport p2 sbit sw0 p1 0 sbit sw1 p1 1 sbit sw...
微控制器程式設計題
一般都是共陽的接法,就假設是共陽的吧。接在p1口上。彙編 org 0000h mov a,0feh mov p1,a loop acall delay rl a rl a mov p1,a cjne a,7fh,next1 rr a ajmp next2 next1 cjne a,0bfh,next...