已仿真输出频率为 22999Hz
如果 晶振不是12兆的,修改 #define FOSC 12000000L即可,
例如 110592兆改为 #define FOSC 11059200L
#include "reg51h"
#define FOSC 12000000L
#define T1XX (65536-FOSC/12 /2/23) // 23Hz timer calculation method in 12T mode
/ define SFR /
sbit TEST_23Hz = P1^0; // 23Hz Out
/ Timer1 interrupt routine /
void tm1_isr() interrupt 3 using 1
{
TEST_23Hz = ! TEST_23Hz;
TL1 += T1XX; //reload timer1 low byte
TH1 = T1XX >> 8; //reload timer1 high byte
}
//-----------------------------------------------
/ main program /
void main()
{
TMOD = 0x10; //set timer1 as mode1 (16-bit)
TL1 = T1XX; //initial timer1 low byte
TH1 = T1XX >> 8; //initial timer1 high byte
TEST_23Hz=1;
TR1 = 1; //timer1 start running
ET1 = 1; //enable timer1 interrupt
EA = 1; //open global interrupt switch
while (1); //loop
}
以上就是关于求at89s52单片机产生23hz的脉冲信号程序全部的内容,包括:求at89s52单片机产生23hz的脉冲信号程序、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)