當前位置:編程學習大全網 - 編程軟體 - 用c語言編程實現C8051F300單片機1s定時,50Hz的方波輸出

用c語言編程實現C8051F300單片機1s定時,50Hz的方波輸出

#include?<REG51.H>

sbit?wave=P1^0;

void?SetupTimer0()

{

TMOD?&=?0XF0;?//僅保留T1信息

TMOD?|=?0X02;?//設置T0:?定時功能,方式2,自動重載8位定時器/計數器

TH0?=?256-250;//定時每0.25ms中斷壹次

TL0?=?256-250;

TR0?=?1;?//開啟定時器

ET0?=?1;?//定時器0中斷打開

}

?

data?unsigned?char?us250;

data?unsigned?int?ms;

bit?WAVE;//用以記住當前wave的狀態

void?Timer0_ISR()?interrupt?1?//定時中斷服務程序,為按鍵消抖服務

{

if?(++us250<4)?return;?

us250=0;?++ms;

if?(ms<10)?return;

//每10ms波形變化壹次,20ms完成壹個波形,所以波形是50Hz的

ms=0;

WAVE=~WAVE;?wave=WAVE;?//方波輸出

}

void?main()

{?

us250=ms=0;

wave=WAVE=0;

SetupTimer0();

EA?=?1;?//全局中斷打開

while(1);//在中斷函數中實現方波輸出

}

  • 上一篇:如何在盤中使用五分鐘k線選股?
  • 下一篇:lammps模擬時怎麽替換cfg中的原子
  • copyright 2024編程學習大全網