當前位置:編程學習大全網 - 編程軟體 - 設80c51單片機的晶振頻率為12MHz,試編程輸出頻率為100Hz,占空比2:10的矩形波

設80c51單片機的晶振頻率為12MHz,試編程輸出頻率為100Hz,占空比2:10的矩形波

給個例子,也許可以滿足妳的要求:

#include?"reg51.h"

#define?FOSC?12000000L

#define?T1XXH?(65536-FOSC/12*?2/1000)?+2//?2ms?timer?calculation?method?in?12T?mode

#define?T1XXL?(65536-FOSC/12*?8/1000)//?8ms?timer?calculation?method?in?12T?mode

/*?define?SFR?*/

sbit?TEST_100Hz?=?P1^0;//?100Hz?Out

/*?Timer1?interrupt?routine?*/

void?tm1_isr()?interrupt?3?using?1

{

TEST_100Hz?=?!?TEST_100Hz;

if(TEST_100Hz)?

{

TL1?+=?T1XXH;?//reload?timer1?low?byte

TH1?=?T1XXH?>>?8;//reload?timer1?high?byte

}

else?

{

TL1?+=?T1XXL;?//reload?timer1?low?byte

TH1?=?T1XXL?>>?8;//reload?timer1?high?byte

}

}

//-----------------------------------------------

/*?main?program?*/

void?main()

{

TMOD?=?0x10;//set?timer1?as?mode1?(16-bit)

TL1?=?T1XXH;?//initial?timer1?low?byte

TH1?=?T1XXH?>>?8;//initial?timer1?high?byte

TEST_100Hz=1;

TR1?=?1;//timer1?start?running

ET1?=?1;//enable?timer1?interrupt

EA?=?1;?//open?global?interrupt?switch

while?(1);?//loop

}

  • 上一篇:怎樣學會DCS編程語言
  • 下一篇:模擬人生4技能全滿秘籍是什麽 技能全滿秘籍介紹
  • copyright 2024編程學習大全網