1樓:匿名使用者
org 0000h
ljmp main
org 000bh
ljmp t0isr
org 0030h
main:
mov tmod,#02h
mov th0,#6
mov tl0,#6
setb tr0
setb et0
setb ea
mov r2,#10
sjmp $
t0isr:
djnz r2,t0e
cpl p1.0
mov r2,#10
t0e:
retiend
2樓:匿名使用者
#include
#define uchar unsigned char
#define uint unsigned int
sbit key1=p3^2;
sbit key2=p3^3;
uchar pwm;
void keyscan(); //宣告一個鍵盤輸入函式
void delay(uchar z);
void main()
}void time0() interrupt 1 //中斷函式
void time1() interrupt 3 //中斷函式
void keyscan()
// while(!key1); //不能加????
}if(key2==0) //檢測按鍵2是否按下,是就執行下面的**,沒就跳過去
// while(!key2); //不能加,???
} }給你大致參考一下,
3樓:超左右搖擺
只要讓p1.0口輸出5ms高電平然後5ms低電平就可以了。自己看看書吧
4樓:匿名使用者
只要讓p1.0口輸出5ms高電平然後5ms低電平就可以了
微控制器,用定時器中斷方式輸出週期性方波,在p1.0口輸出一個週期為1ms的方波
5樓:匿名使用者
週期1ms,定時器應為500us定時。反覆求反就是1ms方波
6樓:ta戀雪
先把p1.0置1,然後定時器1ms定時,時間到置低,方波就出來了
設微控制器的fosc=12mhz.使p1.0和p1.1分別輸出週期為1ms和10 ms的方波.請用定時器t0的方式2實現 5
某51微控制器系統時脈頻率為12mhz,使用定時器0定時10ms方式,實現從p1.1輸出週期為1s的方波。 20
7樓:匿名使用者
51微控制器的定時器t0要工作在方式1,才能定時10ms。而tmod=0x02,是方式2,定時最長只有256us,是不行的,應該是tmod=0x01,才對。採用中斷方式,對10ms定時中斷計數50次為500ms,交替從p1.
1輸出高電平和低電平,即輸出週期 為1s的方波訊號了。如下的**圖,示波器測試為1s的方法訊號。
8樓:匿名使用者
tmod=0x02 是不行的
定時器0工作方式2一次最大隻能定時256 us工作方式1一次最大能定時65536 us
工作方式0一次最大隻能定時8192 us
設微控制器fosc=12mhz,利用t0方式1產生10ms定時,在p1.0引腳上輸出週期為2ms的方波。
9樓:
1、你的思路和程式都有問題
2、如果你想在p1.0引腳上輸出週期為2ms的方波,t0定時中斷應該定在1ms,然後再中斷程式中對p1.0取反,每個1ms對p1.0取反一次,就得出週期為2ms的方波。
3、如果是定時10ms,計數器初值應該是d8f0h,而不是6318hmov th0,#d8h
mov tl0,#f0h
4、mov r1,#500指令是非法的,r1是8位暫存器,最大賦值為255。
簡述8051微控制器的定時計數器的四種工作方式的特點
方式0為13位定時計數方式 方式1為16位定時計數方式 為最常用方式 方式2為8位自動重灌初值計數方式 方式3只適用t0,把16位的t0分為兩個8位定時計數器 對樓上的回答,稍做補充 方式0為13位定時計數方式 計數範圍 0 8192,定時 0 8192us 12mhz晶振時 方式1為16位定時計數...
微控制器中斷實驗,微控制器定時器中斷實驗 程式(組合語言)不要c語言的
include 包含52微控制器暫存器定義的標頭檔案 函式功能 主函式 void main void 函式功能 外中斷t0的中斷服務程式 void int0 void interrupt 0 外中斷0的中斷編號為0 這是一個外中斷led實驗,你看看吧 中斷實驗有幾種,譬如外部中斷0,1,定時器中斷 ...
MCS 51微控制器 1 利用定時器 數碼管實現秒錶(時分秒都要有)。2 實現可調日曆
keyval equ 30h keytm equ 31h keyscan equ 32h dat equ 33h scanled equ 39h clk equ 77h sec equ 78h min equ 79h hour equ 7ah pause bit 00h dot bit 01h or...