標題:
單片機P1.0產生周期2ms方波程序
[打印本頁]
作者:
Trepverter51Hei
時間:
2022-10-4 20:14
標題:
單片機P1.0產生周期2ms方波程序
假設系統(tǒng)時鐘為12MHz,設計電路并編寫程序實現(xiàn)從P1.0引腳上輸出一個周期為2ms的方波。
要在P1.0上產生周期為2ms的方波,定時器應產生1ms的定時中斷,定時時間到則在中斷服務程序中對P1.0求反。使用定時器T0,方式1定時中斷,GATE不起作用。
其中在P1.0引腳接有虛擬示波器,用來觀察產生的周期2ms的方波。
下面來計算T0初值X :
設T0的初值為X,有
(216−X )×1×10−6=1×10−3
即 65 536−X=1 000
得X=64 536,化為16進制數(shù)就是0xfc18。將高8位0xfc裝入TH0,低8位0x18裝入TL0。
仿真.png
(54.48 KB, 下載次數(shù): 26)
下載附件
仿真
2022-10-4 20:13 上傳
代碼.png
(144.62 KB, 下載次數(shù): 18)
下載附件
代碼
2022-10-4 20:13 上傳
參考單片機程序如下:
#include <reg51.h> //頭文件reg51.h
sbit P1_0=P1^0; //定義特殊功能寄存器P1的位變量P1_0
void main(void) //主程序
{
TMOD=0x01; //設置T0為方式1
TR0=1; //接通T0
while(1) //無限循環(huán)
{
TH0=0xfc; //置T0高8位初值
TL0=0x18; //置T0低8位初值
do{}while(!TF0); //TF0為0原地循環(huán),為1則T0溢出,往下執(zhí)行
P1_0=!P1_0; // P1.0狀態(tài)求反
TF0=0; //TF0標志清零
}
}
復制代碼
Keil代碼與Proteus8.13仿真下載(注意只能用Proteus8.13打開):
P1.0產生周期2ms方波.zip
(49.17 KB, 下載次數(shù): 14)
2022-10-4 20:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1