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

2021-07-31 21:26:59 字數 1485 閱讀 6526

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) 用中斷的方式使用定時器,編寫相關程式序

下面這段微控制器C語言程式是一段濾波函式?是什麼意思麻煩給講解一下

其實你拿紙筆算一下就能看出來,這是一個四次均值濾波。緩衝區的值加上最新取樣值以後,乘以四分之三 最新取樣值的權值為四分之一 getadc 1 ad轉換開始函式 current buf adcr 將baiad值du疊加 currentval word current buf 2 8位ad,配置的是zh...

在c51微控制器中編寫開關控制小燈的程式用

org 0000h main mov a,p1 mov p0,a sjmp main include sfr key p1 sfr led p0 main 參考一下以前寫的 在c51微控制器中編寫8個開關控制8個小燈的程式,用c語言和組合語言兩種編寫 用c51是多麼簡單的事情啊。你的每個燈的順序不說...

c51微控制器的P3口功能切換方法 想讓P3口做I O口使用的時候如何避免與第二功能衝突?做輸出時怎樣避免

p3.4 p3.6對應的分別是 t0 t1 wr。要使用這三根線做普通io口需要滿足以下條件 1 針對wr 不能有對外 版部ram的寫操作,也就權是說不能對xdata及pdata型變數進行寫操作 再進一步,軟體在編譯時,變數儲存模式選項不能選擇中模式及大模式,否則預設狀態下,程式中的區域性變數都會採...