1樓:匿名使用者
1、十秒對於微控制器來說是很長很長的時間了,微控制器十秒的時間什麼事都不能做,只在跑這延時程式,那是什麼概念,用中斷的話,微控制器正常執行其他程式,只是時間到了才過來處理延時以後的程式,效率不知道高了多少 。
2、例程:
//假設晶振12mhz
#include "reg51.h"
unsigned int ysjs=0;
void main(void)
}void timer1(void) interrupt 3 //定時器1中斷函式使用預設暫存器組}
2樓:匿名使用者
首先不知兄弟你玩微控制器玩了多久,用c語言程式設計的話極難做到精確地延時10ms,不過誤差不會大,我下了兩個,借鑑下:
1.void delay(uint cnt) //簡單的延時3.void delay(int a)
用12mhz的話a=10000
3樓:匿名使用者
這麼長的延時,不用迴圈延時,沒實際意義 。微控制器在這10s時間裡不能做其它事了。要用定時器中斷,定時10s。不是很難的,按常規寫法,誤差+1.6ms。
#include
#define uchar unsigned charsbit led=p1^0;
uchar time;
void initt0( )
void main(void)
}void t0int( ) interrupt 1如果細調定時初值(包括重灌),th0 = (65536-49993)/256;
tl0 = (65536-49993256;
誤差可以減小到+0.3ms
4樓:小雕
參考http://hi.baidu.com/小雕
5樓:匿名使用者
你 用keil進行調下就行了
用c語言怎麼在微控制器at89c51上編寫一個用一個開關控制16個燈亮和滅的程式
6樓:匿名使用者
你買一塊微控制器開發板對照微控制器程式設計書就能搞定了,花點時間。需求有點模糊,要具體。
7樓:頂起石頭的小草
16個燈是要怎麼去控制?一次性的兩滅
用at89c51微控制器編寫一個c語言程式實現2個數碼管秒計數器,用4個按鍵分別控制暫停、加一秒、減一秒和繼續
8樓:匿名使用者
#include
#define uchar unsigned char;
uchar led1,led2;
uchar distab=;
uchar num=0;sec,key;
void delay(unsigned int a)}main()}}
)display();}}
9樓:匿名使用者
怎麼不多看看書啊,這麼.............還來懸賞20分,浪費啊
10樓:魂政
這。。。。。。。。。。無語了,,簡單
nop 在c語言裡怎麼用呢,51微控制器c語言裡 nop 函式怎麼用?
在c語言裡沒有這個 nop 函式,這個函式是在51微控制器裡使用的。作用 對於延時很短的,要求在us級的,採用 nop 函式,這個函式相當彙編nop指令,延時幾微秒。nop指令為單週期指令,可由晶振頻率算出延時時間,對於12m晶振,延時1us。對於延時比較長的,要求在大於10us,採用c51中的迴圈...
微控制器C語言程式設計,微控制器C語言程式設計題
按你的程式的結構,不做大的變動,又能理解的方法 四個程式合併成一個,當然就只能有一個主程式了,一個while 1 了,凡是while 1 以上的程式只保留一個就行了。四個程式的while 1 以下的都合併寫在一個while 1 下面,分為四段。有四個按鍵,判斷按鍵被按下的程式會寫吧?那判斷每個按鍵的...
微控制器C語言程式設計,51微控制器C語言程式設計
使用兩個定時器或一個定時器中使用兩個計數都能滿足你的要求。建議使用一個定時器和一個計數器即可,如計數器為i,則if i 測溫定時 0 溫度測量 if i 步進電機定時 0 步進電機控制 注 此時要求兩個控制模組的定時步長是一致,比如都是1ms 設定一個比較小的定時間隔,例如1ms,用靜態變數累加,比...