51微控制器組合語言如何輸出兩路相位差180度的訊號且微控制器還要做其他的事

2022-12-18 09:30:54 字數 3912 閱讀 5846

1樓:匿名使用者

利用定時中斷。輸出的訊號y=!x。

2樓:匿名使用者

很簡單,比如用p0.0和p0.1

org 0000h

ljmp main

org 000bh

ljmp t0isr

org 0030h

main:

mov tmod,#01h

mov th0,#high (65536-10000)mov tl0,#low (65536-10000)setb tr0

setb et0

setb ea

mov p0,#01h

sjmp $

t0isr:

clr tr0

mov th0,#high (65536-10000)mov tl0,#low (65536-10000)setb tr0

mov a,p0

cpl a

mov p0,a

retiend

3樓:匿名使用者

是脈衝訊號嗎?

最簡單的就是用1個i/o口輸出,在加個非門...

4樓:傑銳新能

你是想做驅動訊號吧,建議選取一款帶pwm輸出的微控制器吧,這類微控制器的pwm輸出是內部硬體產生的,你只需初始化一下就行了.當然控制脈寬還是要靠程式.

51微控制器組合語言從某埠輸出10khz方波訊號

5樓:做而論道

程式如下:

org   0000h       ;復位入口mov   tmod, #20h  ;t1定時方式2mov   th1, #206   ;定時50us, 12mhzsetb  tr1         ;t1啟動lp: jbc   tf1, ot

sjmp  lp

ot: cpl   p1.1

sjmp  lp

end題目要求,十分簡單,不用小題大做。

6樓:匿名使用者

;啟動入口********************====org 0000h ;復位啟動

ajmp start ;

org 000bh ;t0中斷

ajmp t0int ;

;主程式*************************=start: mov tmod,#02h ;定時器0工作於方式2,常數自動重灌

mov th0,#0ceh ;定時器0定時時間=50us,假設12mhz晶體

setb pt0 ;定時器0中斷優先順序高setb et0 ;定時器0中斷允許

setb ea ;中斷開放

setb tr0 ;定時器0啟動

loop: ajmp loop ;死迴圈;;定時器0中斷服務程式

t0int: cpl p1.1 ;從p1.1輸出10khz方波end ;結束

7樓:

org 0000h

ljmp main

org 0100h

main:mov tmod,#01h

loop:mov th0,#0ffh

mov tl0,#0ceh

setb tr0

jnb tf0,$

clr tf0

cpl p1.0

sjmp loopend

51微控制器用組合語言編寫pwm方波

8樓:匿名使用者

timeh equ 30h

timel equ 31h

time equ 32h

pulse equ p1.0

keyup equ p1.1

keydn equ p1.2

org 0000h

ljmp main

org 000bh

ljmp t0isr

org 0030h

main:

mov tmod,#01h

mov timeh,#250

mov timel,#250

mov time,#0

mov th0,#high(65536-timeh)mov tl0,#low(65536-timeh)setb tr0

setb et0

setb ea

clr 00h

loop:

jb keyup,loop1

jnb keyup,$

inc time

mov a,time

cjne a,#250,loop0

loop0:

jc loop

mov time,#249

sjmp loop

loop1:

jb keydn,loop

jnb keydn,$

dec time

mov a,time

jnz loop

mov time,#1

sjmp loop

t0isr:

clr tr0

jb 00h,t0isr1

mov th0,#high(65536-timel+time)mov tl0,#low(65536-timel+time)sjmp t001

t0isr1:

mov th0,#high(65536-timeh-time)mov tl0,#low(65536-timeh-time)t001:

setb tr0

cpl 00h

cpl pulse

retiend

求教51微控制器生成spwm波形的程式

9樓:匿名使用者

這個型號的微控制器我沒用過,我主要應用dsp,在dsp裡面是利用pwm模組產生的pwm,有好幾種模式,相差多少度都可以設定,你有空的時候看看微控制器的這一部分就行,沒有pwm功能的話就利用普通定時器也是可以產生的,利用裡面的比較中斷控制普通io就可以

10樓:金瑤

pwm可以用定時器產生,相位的話,你用兩個引腳,p1.0 p1.1 在一個週期內輪換輸出pwm,p1.

0輸出pwm則p1.1輸出低電平,p1.1輸出pwm則p1.

0輸出低電平,這裡有一篇文章挺好http://wenku.baidu.

思路有了,程式就好辦了

求一個51微控制器組合語言 串列埠輸出一行中文的程式

51微控制器用匯編寫方波程式 50

11樓:做而論道

輸出方波,並不需要轉換器。

12樓:匿名使用者

db _out_f 0x80;//頻率

db _out_v 0x81;//幅度

ljmp main

main:

mov _out_f,0xff //設定頻率mov _out_v,0xff //設定幅度loop:

mov r0,_out_f

mov p1, _out_v //輸出高

loop1:

djnz r0,loop1

mov r0,_out_f

mov p1,0x0 //輸出低

loop2:

djnz r0,loop2

jmp loop

51微控制器如何同時輸出多個佔空比可調的pwm訊號?

13樓:匿名使用者

每個通道的佔空比都是可調的.

14樓:匿名使用者

正好兩個定時器呢麼 將其重灌值 不斷變化就好了啊

不是就兩個風扇麼

如何在51微控制器使用c語言跟組合語言

如何用keil在 baic中嵌入彙編 要在duc檔案zhi中要嵌入彙編dao的地方用 pragma a 和 pragma enda 分隔開來內 具體請查容看 keil c 手冊裡有介紹 在c檔案中要嵌入彙編的地方用 pragma a 和 pragma enda 分隔開來 要問什麼啊,是程式呢,還是哪...

微控制器組合語言裡 db,微控制器組合語言裡 DB

微控制器匯bai 編語言中的db是以位元組du為單位定zhi義一個資料段,一dao般用於查表程式中,舉例回 說明 display mov dptr,tab mov a,r2 movc a,a dptr mov p0,a rettab 共陰極答數碼管顯示 表db 3fh,06h,5bh,4fh,66h...

51微控制器用組合語言怎麼程式設計幾個有符號數的比較大小

51微控制器中,沒有專門的有符號數比較指令,只能通過一些變通的方法來實現,比如 比較30h和40h中有符號數的大小,結果放在r2中,大於則為1,等於為0,小於為128 cmpdat mov a,30h jb acc.7,cmpf1 mov b,a mov a,40h jb acc.7,cmpz2 3...