1樓:
led bit p1.2;
org 0000h
ljmp start
org 000bh
ljmp timer0interrupt
start:
mov sp,#60h
mov r2,#50;50個1ms
lcall inittimer0
loop:
;add your code here!
ljmp loop
inittimer0:
mov tmod,#00h;1ms
mov th0,#1ch
mov tl0,#18h
setb ea
setb et0
setb tr0
rettimer0interrupt:
push dph
push dpl
push acc
mov th0,#1ch
mov tl0,#18h
djnz r2,wd
mov r2,#50
;********************====cpl led ;add your code here!
;********************====wd:pop acc
pop dpl
pop dph
retiend
51微控制器,用定時器中斷,在p1口實現1s移動一次的流水燈,用組合語言編寫的程式
2樓:
//晶振12m
dseg at 30h
timetemp: ds 1
led: ds 1
cseg at 00h
org 0000h
ljmp start
org 000bh
ljmp timer0interrupt
start:
mov sp,#60h
mov timetemp,#20
mov p1,#0ffh;led低電平點亮lcall inittimer0
mov led,#0feh
loop:
mov p1,led ;add your code here!
ljmp loop
inittimer0:
mov tmod,#01h
mov th0,#high(65536-50000)mov tl0,#low(65536-50000);延時50mssetb ea
setb et0
setb tr0
rettimer0interrupt:
push acc
push psw
clr tr1
mov a,tl1
add a,#low(65536-50000)+7mov tl1,a
clr a
addc a,#high(65536-50000)setb tr1
djnz timetemp,nextt1
mov timetemp,#20
;********************====mov a,led
rl a
mov led,a;add your code here!
;********************====pop psw
pop acc
reti
3樓:匿名使用者
cnt equ 30h
org 0000h
sjmp sta
org 000bh
ljmp t0isr
org 0050h
sta:
mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h ;50ms
mov p1,#0feh
mov cnt,#20
setb et0
setb tr0
setb ea
sjmp $
t0isr:
clr tr0
mov th0,#3ch
mov tl0,#0b0h ;50ms
setb tr0
dec cnt
mov a,cnt
jnz t0isre
mov cnt,#20
mov a,p1
rl a
mov p1,a
t0isre:
retiend
「利用80c51微控制器的p1口作為輸出口連線到8只發光二極體,採用定時器t0中斷方式,控 10
4樓:
#include
unsigned char cont; /*宣告cont*/main()
}void int0() interrupt 1{th0=-50000/256;
tl0=-50000%256;
cont++;
微控制器(microcontrollers)是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的**處理器cpu、隨機儲存器ram、只讀儲存器rom、多種i/o口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、a/d轉換器等電路)整合到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位微控制器,發展到現在的300m的高速微控制器。
5樓:匿名使用者
晶振 6mhz ,每機周 2 us t0 定時100ms ,計數5次,即可實現 500ms 定時。
計數值為 50000次。
#include
unsigned char cont; /*宣告cont*/main()
}void int0() interrupt 1以除錯通過。 努力啊!
51微控制器,c語言語句 p1^7=0,在組合語言中,能否如此位操作,改怎麼寫這條彙編語句?
6樓:做而論道
c語言語句 p1^7=0,
在組合語言中是,clr p1.7。
c語言語句 p1^7=1,
在組合語言中是,setb p1.7。
clr、setb,就是:清零、置位。
7樓:
要表示p1^7 =1,彙編更簡單
setb p1.7
8樓:匿名使用者
彙編中是位清除。clr p1^7
51微控制器定時器的問題。計算初值。程式的編寫問題。設fosc=12mhz。初值50ms。
9樓:匿名使用者
微控制器一個暫存器有256個單元共有256個地址,用兩位16進位制數表示,即儲存器的地址(00h~ffh)。儲存器中每個儲存單元可存放一個八位二進位制資訊。
就是說你想把一個大於2的8次方(即256)的初值裝進去得用到兩個暫存器,於是就有所謂的高八位暫存器th1和低八位暫存器tl1。tl1裝滿之後,向th1進1。
一個是c語言的方法,一個是彙編的方法。
多看看書吧。
10樓:天天奕想
微控制器定時器的方式一是一個十六位的定時器。但51微控制器是8位的,裝不下十六位資料,所以,想要用微控制器來裝一個十六位的數怎麼弄?微控制器提供了兩個暫存器(8位的)來裝這個十六位的數。
c語言中怎麼實現把一個十六位的數裝進兩個八位的暫存器裡?就是:
th1=(65536-50000)/256; //把(65536-50000)這個初值的高八位取出來,放在th1,用十六進位制表示是03ch
tl1=(65536-50000)%256; //把(65536-50000)這個初值的低八位取出來,放在tl1,用十六進位制表示是0b0h
在c語言中,直接寫
th1 = 0x3c;
tl1 = 0xb0;
效果跟th1=(65536-50000)/256; //給計數暫存器賦值,50毫秒時間
tl1=(65536-50000)%256;
一樣的。
區別在於一個人工算,直接賦值;一個交給微控制器去算。
80c51微控制器用兩個定時器實現佔空比不同的方波,採用組合語言,求教程式!謝謝
11樓:匿名使用者
hpulse equ 100 ;脈衝高電平計數值,修改這兩個值可以改變佔空比
lpulse equ 200 ;脈衝低電平計數值org 0000h
ljmp main
org 000bh
ljmp t0isr
org 001bh
ljmp t1isr
org 0030h
main:
mov tmod,#11h
mov th0,#high (65536-hpulse)mov tl0,#low (65536-hpulse)mov th1,#high (65536-lpulse)mov tl1,#low (65536-lpulse)setb tr0
setb tr1
setb ea
setb et0
setb et1
sjmp $
t0isr:
clr tr0
mov th0,#high (65536-hpulse)mov tl0,#low (65536-hpulse)setb tr0
setb p1.0
reti
t1isr:
clr tr1
mov th1,#high (65536-lpulse)mov tl1,#low (65536-lpulse)setb tr1
clr p1.0
retiend
12樓:匿名使用者
; 用一個 定時器0 實現佔空比可調 pwm 方波hpwm equ 100 ; 高電平計數值 改變 佔空比lpwm equ 200 ; 低電平計數值
pwmbz bit 20h ; 標誌位org 0000hljmp main
org 000bh
ljmp t0zd
org 0030h
main:
mov tmod,#02h
mov th0,#hpwm setb tr0setb ea
setb et0
sjmp $
t0zd:
jb pwmbz,t0zd2 mov th0,#hpwm setb pwmbz setb p1.0
reti
t0zd2: mov th0,#lpwm clr pwmbz clr p1.0
reti
當定時器T0用於方式1微控制器如何對定時器T0進行管理
其實你開啟了微控制器16位定時器,來判斷按鍵的中斷的話,就不需要在呼叫什麼延時程式 函式 了。方法很簡單,只要判斷中斷的次數就行了。因為只要開啟了定時器中斷,它每隔固定的時間就會響應中斷,在每次中斷中先判斷按鍵是否按下 然後判斷 是否是按鍵按下的首次中斷 如果是第一次中斷的話,就跳出中斷,繼續等待第...
微控制器定時器中斷功能和定時器定時功能有什麼區別,什麼情況需要中斷,什麼時候不需要呢,講好必採納
小灰狼 定時器的定時,就像你設定的鬧鐘,中斷,就像你設定的鬧鐘到點自動發出聲音。如果只是定時,不產生中斷,就需要你編寫的主程式經常去檢視定時的時間到了沒,而且就算檢視到定時時間到了,你也不知道是什麼時候到的,如果有中斷,則會自動跳到中斷函式執行你安排好的 鬧鐘發出聲音就是安排好的,也可以是震動 硬體...
ne555定時器用作定時器的電路圖
電阻r1 r2和電容c1構成定時電路。定時電容c1上的電壓uc作為高觸發端th 6腳 和低觸發端tl 2腳 的外觸發電壓。放電端d 7腳 接在r1和r2之間。電壓控制端k 5腳 不外接控制電壓而接入高頻干擾旁路電容c2 0.01uf 直接復位端r 4腳 接高電平,使ne555處於非復位狀態。擴充套件...