編寫一段程式,讓微控制器的P1 7輸出1ms的方波 用定時器T1完成 ,晶振頻率12MHz

時間 2021-08-11 16:14:12

1樓:可軒

機器週期 t = 12/fosc = 12/(12x10^6) = 2x10^-6s =1μs

1ms方波的半週期 =500μs ,計數值=500μs/1μs =500d

約定t1工作方式0,是13位計數器,2^13 =8192d -500d = 7692d =1e0ch

th1←1eh, tl1←0ch

彙編程式如下:

org 0000h

ajmp main

org 0100h

main: mov sp, #60h ;;堆疊指標初值

mov tmod, #00h ;;t1方式0作定時器

lp1 mov th0, #1eh ;;t1計數預裝值高8位

mov tl0, #0ch ;;t1計數預裝值低8位

setb tr1 ;;啟動t1計數

lp2: jbc tf1, lp3 ;;若t1計數溢位,轉lp3

sjmp lp2 ;;若未溢位,繼續查詢

lp3: cpl p1.7 ;;p1.7輸出電平高低置反

ajmp lp1 ;;迴圈,進入另一半週期end

2樓:做而論道

;org 0000h

mov tmod, #20h ;t1定時方式2mov th1, #6 ;定時250ussetb tr1 ;啟動t1lp1:jnb tf1, $

clr tf1

cpl f0

jnb f0, lp1

cpl p1.7 ;500us高電平500us低電平

sjmp lp1end

3樓:匿名使用者

給你做proteus**吧

51微控制器晶振頻率為12mhz,利用中斷在p1.1口輸出50hz的方波,c語言,哪位大俠幫幫忙,幫忙寫個程式

4樓:匿名使用者

#include

sbit port=p1^1;

void timer0init(void) //10毫秒@12.000mhz

void main()

void timer0() interrupt 0

5樓:紅樓再夢傳奇

若微控制器的晶振頻bai率為

du12mhz,用51微控制器內部zhi定時\\/計數器t0,工作方式dao為1,在專微控制器p1.0口產生週期為20ms的方波

屬,波形佔空比為50%。試解答下列問題: 1) 計算定時器的裝入初值; 2) 用中斷的方式使用定時器,編寫相關程式序

如何編寫一段程式,微控制器是51系列的,要求編寫LED燈有三種以上的閃爍方式,燈閃爍時間0 5S

多看看書吧 51微控制器用c語言寫就好了。編譯工具 keil 給你最簡單的,看得清楚易懂的,p1口接8位led,有多種閃爍方式。p2 掃描端在p2口,p3為位選端,注意看 口接上兩位數碼管的話還可以顯示00 99的數字 zhucx mov a,11111110bmov p1,a acall yans...

流水燈的多種實現方式 編寫微控制器C語言程式,在微控制器實驗板

define uchar unsigned char define uint unsigned intuchar dat 0xfe void delay uint x void onebyone dat 0xfe void main 我可以給你設計。但是不知道怎麼找你 51微控制器c語言編寫流水燈實...

51的微控制器中,P0口作為段選,而P2口作為位選,需要挺多數碼管顯示的。不夠用,如何擴充套件

樑絲祺 親,只能選用擴充套件方案。但138太麻煩了。建議你選用74154,是一個4 16線的譯碼器。http wenku.baidu.com view 5262f0c04028915f804dc25e.html 這是他的資料手冊。你的數碼管一共都加起來是12位,也就是只要能提供出去12個訊號就行了。...