输出1HZ方波源代码+仿真
程序和仿真文件下载:
9.1 输出1kHz方波.rar
(38.6 KB, 下载次数: 30)
以下是输出 1HZ方波的51单片机源码:
- #include "Reg51.h"
- sbit SquOut = P2^0;
- char INIT_H_0, INIT_L_0, INIT_H_1, INIT_L_1;
- void MySqureOut_T0_ISR(void) interrupt 1 using 1
- {
- /*TH0 = 0xFE;
- TL0 = 0x16;
- SquOut ^= 0x01;*/
- if (SquOut)
- {
- TH0 = INIT_H_0;
- TL0 = INIT_L_0;
- SquOut = 0;
- }
- else
- {
- TH0 = INIT_H_1;
- TL0 = INIT_L_1;
- SquOut = 1;
- }/**/
- }
- void main(void)
- {
- unsigned int Period, CntH, CntL;
- float TempF;
- Period = 1;
- Period *= 1000; //将其确定为计数个数
- TempF = 20;
- TempF *= Period;
- TempF /= 100;
- CntH = (int)TempF;
- CntL = Period - CntH;
- if (CntH > 10)
- CntH -= 10;
- else
- CntH = 1;
- CntH = 0xFFFF - CntH;
- INIT_H_1 = (CntH >> 8) & 0xFF;
- INIT_L_1 = CntH & 0xFF;
- if (CntL > 10)
- CntL -= 10;
- else
- CntL = 1;
- CntL = 0xFFFF - CntL;
- INIT_H_0 = (CntL >> 8) & 0xFF;
- INIT_L_0 = CntL & 0xFF;
- //初始化
- TH0 = 0xFE;
- TL0 = 0x0C;
- TMOD = 0x01;
- ET0 = 1;
- EA = 1;
- TR0 = 1;
- while(1);
- }
复制代码
|