/*----------------------------------------------------------------
零耗时低频宽脉冲软 PWM 信号控制 Keil C51 演示程序
C51 文件 PwmDemo.c
HotPower@126.com作于 2004.11.17 与大雁塔村队部
在 uV3 中对 PWM 信号进行"实时仿真"效果逼真。
-----------------------------------------------------------------*/
#include
//#include
#include
/*------------------------------------------------
AT89S5X SFR 定义(REGX52.h 中未定义)
--------------------------------------------------*/
sfrAUXR= 0x8e;
sfrWDTRST= 0xa6;
sfr16 TIMEER2 = 0xcc;
sfr16 RCAP2= 0xca;
/*-----------------------------------------------
PWM 管脚定义
------------------------------------------------*/
sbitPWM= P1^0;//可以为任意 IO 管脚
typedef struct Systemstruct{//系统数据结构
unsigned int PwmCount;//700~2300uS
unsigned int RamTest;//内部 ram 自检变量
/*--------------------------------------------------------------------
注意将 STARTUP.A51 中的 IDATALEN 改写为 0,RamTest 才能完成 MCU 掉电自检。
IDATALENEQU00H; the length of IDATA memory in bytes.
---------------------------------------------------------------------*/
}SystemData;//系统数据结构(此时只是定义了一个新的数据类型 SystemData)
//全局变量定义(全局结构)
SystemData SystemBuffers;//申请系统数据结构缓冲区
#define T2_20mS -20000 //MCU 主频 12MHz,12 分频,T2_20mS=20MS
/*----------------------------------------------------------------------
系统函数
-----------------------------------------------------------------------*/
void MainInit(void);//系统初始化
void ClrWdt(void);//喂狗
void SystemInit(void);//系统初始化
void SystemSetup(void);//系统设置
评论0