1樓:45度仰望
樓上說的很對,計數器應該用方式2,。
序列口可用方式一,那樣的話就是
波特率=(2^**od/32) * (f osc/12 )*(1/(2^k-初值))
2樓:匿名使用者
串列埠用的波特率最好是用定時器自動重灌載方式
微控制器序列口方式0、方式1的初始化,方式1波特率的計算 15
3樓:亂七胡說八糟亂想
51微控制器 波特率= 計數抄器或定時器的溢位速襲率 / n
在用串列埠方式1時 計數器或定時器的溢位速率=計數速率 / (256-thx)
這中的n與你微控制器在pcon中**od位的設定有關,**od設為 1 時 n=32
**od設為 0 時 n=16
因t1在做波特率發生器時th1中是重(再)裝載的值傳送完成 scon中的 ti 位為 1
新接收到資訊 scon中的 ri 位為 1特別要注意的是二箇中斷標誌位和其它的中斷標誌位全不一樣,中斷reti返回指令不能對它們清除
必須在程式中用軟體去清除,否則會對你無完無了的中斷,嘿嘿!
4樓:匿名使用者
波特率的計算要設定copy**od暫存器,串bai口有4種工作du方式,波特率不同zhi
。串列埠傳送一個dao位元組,即八位資料,八位前邊有一個起始位0,八位後邊有停止位1,由起始位0和停止位1就可以判斷是否開始傳送或者傳送是否完畢。這一方面,你仔細研究一下串列埠控制暫存器s***各位的含義。
5樓:匿名使用者
關鍵是考試不能用mcutool的。
6樓:匿名使用者
51微控制器小精靈
一個很好用地微控制器軟體。
tmod=0x02,th0=0x14,tl0=0x00,請問th0和tl0為什麼不一樣?怎麼得出的
7樓:heart阿飛
這個tmod =0x15;是高四位的抄m0=1 低四位的m0=1,c/t=1; gate
c/t m1 m0 gate c/t m1 m0 m1m0 工作方式 計數器模式 tmod(設定定時器模式) 0 0 方式0 13位計數器 tmod=0x00 0 1 方式1 16位計數器 tmod=0x01 1 0 方式2 自動重灌8位計數器 tmod=0x02 1 1 方式3 t0分為2個8位計數器,t1為波特率發生器 tmod=0x03 th0 th1 是定時器1 是定時器0計數 為什麼有的是65536-2000 ;有的65536-4000;有的-50000 這個可以自己設定的。mcs-51計數器是一種加1計數器。當計數溢位時,即產生中斷。
你是2000 4000 50000都可以 就看你在寫定時中斷程式時 計數多少次就會溢位。。。像50000 的話 一般計數20次 就是計滿一次
當定時計數器工作在方式0模式時,th0和tl0的初值如何確定?
8樓:吉吉麻麻麻麻
初值baix可以這樣計算:x=m-計數值。du
微控制器在不同
zhi的工作
dao方式下,計數器的位回數不同,因而最答大計數值也不同.現在設最大計數值為m,那麼在各方式下的m值如下:
1、方式0:m=2^13=8192。
2、方式1:m=2^16=65536。
3、方式2:m=2^8=256。
4、方式3:定時器0分為兩個8為定時器,所以兩個m均為256。
5、因為定時器是做加1計數,並在計滿溢位時產生中斷,因此初值x可以這樣計算:
6、x=m-計數值。
7、現在舉例說明定時處置的計算方法,若80c51主頻為6mhz,要求產生1ms的定時,計算初值.。
8、在6mhz的主頻下,計數器每加1所需的時間是2us.若果要產生1ms的計時就需要「加1」 500次.那麼500即為計數值,如果要求在方式1下工作,則計數初值x=m-計數值=65536-500=65036=fe0ch。
9樓:馬到功成一眾覺
微控制器在不同的工作方式下,計數器的位數不同,因而最大計數值也專不同。現在設最屬大計數值為m,那麼在各方式下的m值如下:
方式0:m=2^13=8192
方式1:m=2^16=65536
方式2:m=2^8=256
方式3:定時器0分為兩個8為定時器,所以兩個m均為256.
因為定時器是做加1計數,並在計滿溢位時產生中斷,因此初值x可以這樣計算:
x=m-計數值
現在舉例說明定時處置的計算方法,若80c51主頻為6mhz,要求產生1ms的定時,計算初值。
在6mhz的主頻下,計數器每加1所需的時間是2us。若果要產生1ms的計時就需要「加1」 500次。那麼500即為計數值,如果要求在方式1下工作,則計數初值x=m-計數值=65536-500=65036=fe0ch。
10樓:流光翽影
當工作在方式0時,先算出13位的2進位制數,高8位存入th,底5位存入tl.
關於c8051的學習
設微控制器晶振頻率為12mhz,定時器/計數器t0工作方式1,試計算其定時20ms的初值th0和tl0
11樓:匿名使用者
th0 = 0xb1;
tl0 = 0xe0;
兩個初始值在此
51微控制器定時計數器1sth0=0x3c;tl0=0xb0;怎麼用延時函式寫定時
12樓:麥君邪
定時器中斷裡面設定一個標誌位,中斷n次主函式執行延時程式
13樓:電子技術生涯
定時器就是定時器,延時函式和定時器有什麼關係
一個微控制器 定時器 計算 問題
14樓:匿名使用者
12m的晶振每秒可產生1m個機器週期,50ms就需要50000個機器週期,定時器在方
式1工作,是版16位計數器,最大值權為65536,所以需設定初值15536,即3cb0h,所以th0=0x3c,tl0=0xb0。
11.0592m的晶振每秒可產生0.9216m個機器週期,50ms就需要46080個機器週期,定時器在方式1工作,是16位計數器,最大值為65536,所以需設定初值19456,即4c00h,所以th0=0x4c,tl0=0x00。
15樓:匿名使用者
其實很簡單,來不管你自使用多大的晶振,使用51微控制器bai,一般都是du12分頻出來,也就zhi可以得出一個機器週期dao機器週期=12/n(n指晶振頻率),假設你要定時的時間為m那麼定時的初值為:
m/機器週期=初值;
th0=(65536-初值)%256;
tl0=(65536-初值)/256;
將(65536-初值)所得的值化成16進位制,其高位就是th0的值,低位為tl0的值
例如用12m晶振做1ms定時計算如下:
機器週期=12/12*10^6=1us(微秒)定時初值=(1*10^-3)/(1*10^-6)=1000;
所以:th0=(65536-1000)%256;
tl0=(65536-1000)/256;
將65536-1000=64536化為16進製為:0xfc18th0=0xfc;
tl0=0x18;
16樓:匿名使用者
如果你選的微控制器的晶振一定,比如12mhz來說
吧,機器週期是1us,就是說每1us產生一次計回
17樓:劇量薄訪夢
我來告訴你
來:定時器是當源
總數達到
baiffffh後產生中斷吧!那你要讓它du計數10000,是不是用zhiffff(16進位制)減去10000(十進位制)的數當計數初值啊?th0=-(10000/256);
tl0=-(10000%256)跟ffff(16進位制)減去10000(十進位制)的數是一樣的。從th0=-(10000/256);
tl0=-(10000%256)開始計數,dao計數到10000剛好滿。跟用ffff(16進位制)減去10000(十進位制)的數一樣!!!寫起來更簡單,不用算!!!
看看原碼、補碼就知道。正數的補碼是對應的二進位制數,符號位為零,負數的補碼是它的絕對值對應的二進位制數按位取反再加一,符號位為一。無符號數不考慮符號,那麼這個結果就跟用ffff減去它的絕對值一樣。
微控制器求大神幫幫忙!th0 = 0x14;tl0 = 0x00;ie = 0x82;是什麼意思呢?還有為什麼st = 0;st = 1;st = 0;
18樓:匿名使用者
th0 = 0x14;tl0 = 0x00;定時器t0初裝值,
baiduie是中斷
zhi允許暫存器0x82=10000010開了dao總中斷,和t0中斷,順便說一句版,你的中斷函式在**權?p1 = 0x7b; //將0x7b值賦給p1輸出到p1口,由高到低位01111011,conversion(temp); //這個地方直接用temp可以麼?conversion函式原型沒看著,我猜是把temp轉換成asc2,你的測量結果需要放大2倍嗎?
19樓:匿名使用者
th0 = 0x14;tl0 = 0x00;是給定時器0賦初值,在此基礎上加60416個數溢位中斷。
ie = 0x82;是允許定時器0中斷,開專放總中斷。
st = 0;st = 1;st = 0;是在p1.4輸出一個屬正脈衝。
conversion(temp); //這個地方直接用temp可以麼?還是需要temp*2????
這得根據conversion這個函式的要求確定。
關於微控制器外部計數器的n個問題
是這樣的,你的思路有些狹窄,當然,這並不怪你,這是學校和老師的失誤,現在的學校和老師,除了學生的前途以外,什麼都重要。我先給你講一下,80c51微控制器是一個系列,而不是特定的某個微控制器,你書本上學到的,什麼最大12mhz 12t的微控制器,是c51系列微控制器的鼻祖,只是一個核心和原理罷了,當然...
微控制器中的程式計數器PC用來做什麼
滿意回答bai的解釋錯誤,dupc並不是在本zhi條指令執行完的瞬間加一dao 而是在回取完指令後便加一答 org 0000h start mov a,30h ajmp main org 0030h main movc a,a pc 執行完本條指令後,a的值為61h 若是在執行完本條指令後再加一a的...
微控制器片內定時器與計數器的主要區別是什麼
1 模式控制暫存器tmod的d2或是d6位來控制。d2或d6位為0時,選擇定時工作方式 為1時選擇計數工作方式。2 在定時方式時,計數脈衝輸入訊號由內部時鐘提供 計數方式時計數脈衝來自於相應的外部輸入引腳。3 定時器是對微控制器的機器週期數進行計數 計數器對外部輸入脈衝訊號計數,當訊號產生由0到1的...