用c語言怎麼在微控制器at89c51上編寫延時10秒的

時間 2021-08-30 09:55:58

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/小雕lns/blog/item/27b4fb5208ec6d0b0df3e373.html

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樓:魂政

這。。。。。。。。。。無語了,,簡單

請教微控制器89C52問題,請教微控制器89C52問題?

用定時器中斷 來 控制驅動數碼管 就不會產生 這種現象,每個數碼管的重新整理頻率 50 hz 如 4個 數碼管 可以 定時 3 5 ms 就可以,每次中斷 更新 1 位數碼管。你的微控制器系統,現在看來是有兩個任務。一般的教材,乙個例題的程式,往往就講乙個任務。多個任務就要多個程式段,輪流執行,這樣...

微控制器c語言中,微控制器C語言中 while a 是什麼意思 a為什麼要定義得那麼大 比如

金色潛鳥 我估計,那是用來作時間間隔控制。while a 是迴圈50000次,當a 變0時,while 結束。為何定得如此大,是因為空迴圈速度很快,只有迴圈很多次才能獲得足夠長的時間間隔。a 50000 while a 第2個 while a 似乎有問題,死迴圈。是不是前面漏了另乙個 a 50000...

89c51微控制器問題,使AT89C51微控制器復位有幾種方法 復位後的狀態如何

一定要採用與運算的話,我是這樣算的 unsigned char target 待測試數unsigned char tmp,i,j 變數tmp 0x01 j 0 for i 7 i 0 i tmp 1 tmp左移一位 接下來判斷j是偶數還是奇數就能知道target裡1的個數了。回hanxingfdx ...