日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

1ms等于多少s 1ms等于多少us


上節(jié)說到?jīng)Q定計數(shù) , 還是定時,由寄存器TMOD決定 具體請看這里計數(shù)器/定時器
如果要定時那么C/T=0,為定時器模式 。
回顧上節(jié)的主要內(nèi)容1.TMOD決定計數(shù)還是定時以及 M1,M0工作方式的選擇;
【1ms等于多少s 1ms等于多少us】2.根據(jù)設定時間計算出高八位TH1/0,低八位TL1/0;
3.開啟總控 EA=1;
4.開啟定時器中斷
5.啟動定時器
這節(jié)內(nèi)容主要用定時器控制I/O口輸出一個方波1.假設系統(tǒng)的時鐘是12mhz,設計從P1.0引腳實現(xiàn)輸出一個周期為2毫秒的方波,即占空比2:1

1ms等于多少s 1ms等于多少us


基本思路是:要在P1.0上產(chǎn)生周期為2MS的方波,定時器穎產(chǎn)生1ms的定時中斷 , 定時時間到則中斷服務程序中對P1.0去反 。使用定時器T0方式1定時中斷 。因為 1ms=1000us 在P1.0引腳接示波器 。通過Proteus軟件中的虛擬數(shù)字示波器查看輸出波形,判斷輸出是否正確 。如下圖
1ms等于多少s 1ms等于多少us


計算T0的初值,有65536-1000=X
X=64536 化為16進制數(shù)為0xfc18,那么高八位是 0xfc,低八位是0x18 。
參考程序如下
注意P一定要大寫 ,否則編譯出錯#include<reg51.h>// 頭文件#include<intrins.h> //沒有用到#define uchar unsigned char#defineachar signed charsbit P1_0=P1^0;//定義P1void main() //主程序{TMOD=0x01;EA=1;//開啟總控ET0=1;//定時中斷允許TR0=1; //啟動定時器while(1);{TH0=0xfc; //裝入高八位TL0=0x18; //裝入低八位do{}while(!TF0);P1_0=!P1_0;//去反TF0=0;}}
1ms等于多少s 1ms等于多少us


仿真結果
注意:在仿真時,如果發(fā)現(xiàn)沒有波形,馬上右鍵單擊示波器 。點擊“Digital oscilloscope”就可以了?。。〔⑶業(yè)鶻謚芷謔奔湫?/h1>
1ms等于多少s 1ms等于多少us


2.做如下設計①要求
已知單片機系統(tǒng)時鐘頻率為12MHz , 請利用T0和P1.0在Proteus中輸出矩形脈沖,波形如下:
1ms等于多少s 1ms等于多少us


②仿真圖
1ms等于多少s 1ms等于多少us


③參考源代碼
#include<reg51.h>#include<intrins.h>#define uchar unsigned char#defineachar signed charsbit P1_0=P1^0;uchar i=0,j=3;void main(){TMOD=0x02;P1_0=0;TH0=0xce;TL0=0x206;ET0=1;EA=1;TR0=1;while(1);}void T0_int() interrupt 1{ if(i==0) { j–; if(j==0) { P1_0=!P1_0; i=!i; j=3;}}else{P1_0=!P1_0;i=!i;}}④仿真結果
1ms等于多少s 1ms等于多少us

推薦閱讀