void PutChar(BYTE cData); /* 向MC14489传送一个字节的数据的子程序 */
void Display(DWORD dwData);
/* 数码管显示子程序,此程序需要调用PutChar()子程序,这段程序涉及到MC14489的特性及其灭零处理,需要对照手册才能读懂。 */
void ReadKey(void); /* 读键值并存于全局变量cKeyCode中 */
#define WRSR_INST 0X01 /* Write Status Register Instruction */
#define WRITE_INST 0X02 /* Write Memory Instruction */
#define READ_INST 0X03 /* Read Memory Instruction */
#define RDSR_INST 0X05 /* Read Status Register Instruction */
#define WREN_INST 0X06 /* Write Enable Latch Instruction */
#define STATUS_REG 0X30 /* Status Register */
#define MAX_POLL 0x99 /* Maximum Number of Polls */
void wren_cmd(void); /* Set the Write Enable Latch */
void wrsr_cmd(void); /* Write the Status Register */
BYTE rdsr_cmd(void); /* Read the Status Register */
void byte_write(BYTE cData,BYTE cAddress); /* Write a Byte to the EEPROM Memory Array */
BYTE byte_read(BYTE cAddress); /* Read a Byte to the EEPROM Memory Array */
void rst_wdog(void); /* Reset the WatchDog Timer without Sending a Command */
void outbyte(BYTE cData); /* Shifes Out a Byte,Starting with the MSB,to the EEPROM */
BYTE inbyte(void); /* Recieves a Byte,MSB first, from the EEPROM */
void wip_poll(void); /* Poll for completion of a nonvolatile write cycle by examining the WIP bit of the status register */
/* 以上是25045的命令字及驱动程序,同显示程序一样,设计到太多的芯片参数和时序,慢慢看吧,看不懂也没事,知道怎么用就行了。这些子程序是厂方提供的,我做了一些小修改,以提高效率。 */
void ReadPara(BYTE cPara); /* 通过调用上述子程序从25404中读出各参数值 */
void WritePara(BYTE cPara); /* 通过调用上述子程序将参数值写入25045 */
#define MaxStatus 10 /* 5组信号每组有高低两个电平共10个状态 */
const WORD code wMaxValue[MaxStatus]= {9999,9999,9999,9999,9999,9999,9999,9999,9999,9999};
const WORD code wParaConst[MaxStatus]={ 1, 2, 5, 5, 10, 10,1000,1000,2000,5000};
const WORD code wMinValue[MaxStatus]= { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
/* 以上定义每个状态持续时间的值域范围和默认数值,每个单位100uS */
WORD wParaValue[MaxStatus]; /* 存储状态持续时间的全局变量数组 */
BYTE cCurrStatus=0X00; /* 存储当前状态的全局变量 */
#define KeyWave 600000 /* 通过Start键启动波形输出,持续60秒 */
#define PortWave 200000 /* 通过Port端口启动波形输出,20秒 */
WORD wClick; /* 存储系统时钟数的全局变量 */
DWORD dwWaveTime; /* 存储输出时间的全局变量 */ |