当前位置:首页 > 51开发板使用手册 - 图文
AT89S5X Demo Board User’s Manual Owen Studio 0x52, 0x62, 0x64, 0x62, 0x12, 0x22, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0x62, 0x82, 0x84, 0x84, 0x84, 0x82, 0x82,
0x92, 0x82, 0x92, 0x82, 0x94, 0x92, 0x82, 0x52, 0x62, 0x52, 0x44, 0x22, 0x22, 0x42, 0x14, 0x62, 0x52, 0x44, 0x22, 0x22, 0x41, 0x51, 0x42, 0x44, 0x44, 0x44, 0x82, 0x92, 0xb2,
0x94, 0x92, 0x82, 0x92, 0x82, 0x62, 0x82, 0x84, 0x84, 0x02, 0x82, 0x92, 0xb2,
0x94, 0x92, 0x82, 0x92, 0x82, 0x92, 0x42, 0x44, 0x44, 0x02, 0x42, 0x52, 0x62,
0x52, 0x52, 0x52, 0x42, 0x52, 0x42, 0x22, 0x62, 0x62, 0x52, 0x54, 0x02, 0x82, 0x92, 0x62, 0x84, 0x82, 0x62, 0x82, 0x62, 0x64,
0x92, 0x82, 0x92, 0x82, 0x62, 0x82, 0x81, 0x92, 0xb1, 0x94, 0x92, 0x82, 0x92, 0x82, 0x62, 0x82, 0x84, 0x84, 0x02, 0x82, 0x92, 0xb2,
0x94, 0x92, 0x82, 0x92, 0x82, 0x92, 0x42, 0x44, 0x44, 0x02, 0x42, 0x52, 0x62,
0x74, 0x72, 0x82, 0x92, 0x92, 0x82, 0x92,
0x92, 0xb2, 0x92, 0x92, 0x92, 0xb2, 0x92, 0x82, 0x84, 0x84, 0x82, 0x42, 0x92, 0x82,
0x84, 0x84, 0x82, 0x92, 0xb2, 0x01, 0x61, 0x52, 0x61, 0x51, 0x44, 0x44, 0x44, 0x00};
const char code c_music8[]={ /*1000年以后*/
0xb2, 0x41, 0x51, 0x62, 0x81, 0x91, 0x84, 0x84,
0x72, 0x61, 0x41, 0x42, 0x61, 0x51, 0x54, 0x54,
0xb2, 0x41, 0x51, 0x62, 0x92, 0xa1, 0x91, 0x82, 0x82, 0x61, 0x91, 0x94, 0x94, 0xa1, 0xa1, 0xa1, 0xb1, 0xc1, 0xb1, 0xa2,
0xb2, 0xa1, 0xb1, 0xb1, 0xd2, 0x01, 0xa2, 0x91, 0xa1, 0xa1, 0x81,
0x82,
0x91, 0x91, 0xa1, 0xb1, 0xc1, 0xb1, 0xc1, 0xe1, 0xd1, 0xc1, 0xc1, 0xc1, 0xc2, 0xc1, 0xb1,
0xb2, 0xa1, 0xb1, 0xb1, 0xd2, 0x01, 0xa2, 0x91, 0xa1, 0xa1, 0x81,
0x82,
0x92, 0xb4, 0x02, 0xb1, 0xb1, 0xb1, 0xc1, 0xd2, 0xc1, 0xb1, 0xb2, 0xc2, 0xc4, 0x02, 0xa1, 0xb1, 0xb1, 0xc2, 0x01,
0xd2, 0xc1, 0xb1, 0xb1, 0x82, 0x01, 0xc4, 0x02, 0xd1, 0xc1, 0xb2, 0xa1, 0x91, 0x92, 0x62, 0xa4, 0x02, 0xb1, 0xa1,
0x92, 0xa1, 0xb1, 0xb1, 0xc2, 0x01, 0x82, 0xc1, 0xd1, 0xd2, 0x01,
0xd1,
0xe2, 0xd2, 0xb1, 0xc2, 0xc1, 0xc2, 0x01, 0xa1, 0xb1, 0xc2, 0x01, 0xd2, 0xc1, 0xb1, 0xb1, 0x82, 0x01, 0xc4, 0xc1, 0xc1, 0xd1, 0xc1, 0xb2, 0xa2, 0x91, 0xc2, 0x01, 0xa4, 0x02, 0xb1, 0xa1,
- 20 -
AT89S5X Demo Board User’s Manual Owen Studio 0x92, 0x81, 0x91, 0x91, 0xb1, 0x82, 0x82, 0xc1, 0xb1, 0xb2, 0xd1,
0xd1,
0xe1, 0xd1, 0xc4, 0xb1, 0xc1, 0xd2, 0xc1, 0xb1, 0xd2, 0xc1, 0x81, 0x82, 0xb2, 0xb4, 0xb4, 0xb4, 0x00};
const char code c_music9[]={ /*一辈子的孤单*/
0x02, 0x11, 0x11, 0x62, 0x52, 0x52, 0x41, 0x61,
0x62, 0x41, 0x51, 0x54, 0x54, 0x04,
0x02, 0x11, 0x11, 0x61, 0x52, 0x51, 0x52, 0x42, 0x52, 0x62, 0x64, 0x64, 0x04,
0x02, 0x11, 0x11, 0x62, 0x52, 0x52, 0x41, 0x61, 0x62, 0x41, 0x51, 0x54, 0x54, 0x04,
0x02, 0x51, 0x41, 0x62, 0x52, 0x42, 0x52, 0x42, 0x42, 0x44, 0x44, 0x44, 0x04, 0x62, 0x52, 0x52, 0x42, 0x42, 0x52, 0x54, 0x54, 0x54, 0x04, 0x51, 0x63, 0x54, 0x44,
0x41, 0x11, 0x21, 0x11, 0x14, 0x14, 0x14, 0x04, 0x62, 0x52, 0x52, 0x42, 0x42, 0x52, 0x54, 0x54, 0x54, 0x02, 0x12, 0x62, 0x54, 0x42, 0x44, 0x02, 0x62, 0x64, 0x64, 0x02, 0x12, 0x62, 0x84, 0x92, 0x62, 0x52, 0x54, 0x54, 0x54, 0x02, 0x12, 0x62, 0x54, 0x42, 0x54, 0x02, 0x62, 0x64, 0x64,
0x02, 0x12, 0x62, 0x52, 0x52, 0x42, 0x51, 0x62, 0x51, 0x54, 0x54, 0x04,
0x02, 0x51, 0x41, 0x62, 0x52, 0x42, 0x52, 0x42, 0x42, 0x44, 0x44, 0x44,
0x02, 0x12, 0x62, 0x52, 0x52, 0x01, 0x41, 0x51, 0x62, 0x51, 0x54, 0x54, 0x54,
0x02, 0x12, 0x62, 0x52, 0x52, 0x01, 0x41, 0x52, 0x62, 0x64, 0x64, 0x64,
0x02, 0x12, 0x61, 0x52, 0x01, 0x52, 0x42, 0x51, 0x62, 0x51, 0x54, 0x54, 0x54,
0x02, 0x12, 0x61, 0x52, 0x01, 0x52, 0x42, 0x52, 0x62, 0x64, 0x64, 0x64,
0x02, 0x12, 0x62, 0x82, 0x82, 0x92, 0x62, 0x52, 0x54, 0x54, 0x54,
0x02, 0x12, 0x62, 0x52, 0x52, 0x42, 0x52, 0x62, 0x64, 0x64, 0x64,
0x02, 0x12, 0x62, 0x52, 0x52, 0x42, 0x62, 0x52, 0x54, 0x54, 0x54,
0x02, 0x51, 0x41, 0x62, 0x52, 0x42, 0x52, 0x42, 0x42, 0x44, 0x44, 0x44,
- 21 -
AT89S5X Demo Board User’s Manual Owen Studio 0x00};
const char code c_music0[]={0x00}; /*Constant Tables Over*/
/********************************************************************/ /*System Variables*/ uchar i;
uint keyFlag; uchar hour=10;min=0;sec=0; uchar DisplayArray[6]; uchar password[6];
static uchar LEDFlag=0x00;
bit LEDCycle100msFlag=0,LEDCycle500usFlag=0,LEDCycle10msFlag=0; bit LEDAutoFlag=1,LEDKeyFlag=0;
static uchar s_musicCounter=0x00,s_tableCounter; bit musicAutoFlag=1,musicKeyFlag=0; uchar Int0Flag,TH0Global,TL0Global;
uchar UARTKeyFlag=0xaa,modifyTimeFlag=0;; /*System Variables Over*/
/********************************************************************/ /*System Functions*/
void IdleForLogin(); /*登陆系统前的密码检测模块*/ void Login(void); /*系统登录模块*/ void MainSystem(void); /*系统主程序*/ void ScanKeys(void); /*扫描键盘模块*/ uchar KeyJudge(void); /*按键预处理*/ void KeyHandle(uchar keyIndex); /*按键处理模块*/ void LEDHandle(void); /*流水灯方案选择*/
void AutoShow(void); /*开始流水灯自动循环演示*/ void StopAutoShow(void); /*停止流水灯自动循环演示*/ void DropDown(void); /*水滴方案*/ void CircleFlash(void); /*环扫方案*/
void GradualFlash(void); /*渐明渐暗方案*/ void SlowFlash(void); /*慢闪方案*/ void FastFlash(void); /*快闪方案*/
void ScrShift(uchar keyIndex); /*六位数码管顺序左移*/ void ClearScr(void); /*清屏*/
void ReadPassword(); /*从24C02中读取密码*/ void WritePassword(); /*将屏幕的六位数字作为密码存入24C02中*/ void StatusSend(void); /*下位机状态反馈(串口)*/ void Delay (uint value); /*10us延时*/ void ModifyTime(void); /*调整时间*/
void ScanSeg7(); /*数码管扫描显示*/ /*System Functions Over*/
- 22 -
AT89S5X Demo Board User’s Manual Owen Studio /********************************************************************/ /*IIC Varialbes & Functions*/ sbit SCL=P3^4; /*定义IIC总线的时钟线*/ sbit SDA=P3^5; /*定义IIC总线的数据线*/ void StartIIC(); /*发送IIC总线启动时序*/ void StopIIC(); /*发送IIC总线停止时序*/ void IICClockDelay(); /*IIC总线时钟电平延时*/
void IICAck(bit ackValue); /*MCU对24C02的应答函数*/ uchar IICRcvByte(); /*MCU从24C02接收一个字节*/ bit IICSendByte(uchar byteData); /*MCU向24C02发送一个字节*/ /*MCU向24C02的指定地址写入若干个字节数据函数*/
bit IICWrite(uchar slaveAddress,uchar subAddress,uchar *dataPointer,uchar num); /*MCU从24C02的指定地址度去若干个字节数据函数*/
bit IICRead(uchar slaveAddress,uchar subAddress,uchar *dataPointer,uchar num); /*IIC Varialbes & Functions Over*/
/********************************************************************/ /********************************************************************/ void main(void) /*主程序入口*/ {
TMOD=0x11; /*Timer0工作在MODE1,16位定时器*/
/*Timer1工作在MODE2,自动重新装载模式*/
/*| 定时器1 | 定时器1 |*/ /*| GATE|C/T| M1 | M0 | GATE|C/T| M1 | M0 |*/ TH0=(65536-SCAN_CYCLE)/256; /*设定Timer0每隔500us中断一次*/ TL0=(65536-SCAN_CYCLE)%6; TR0=1; /*启动Timer0*/ TH1=(65536-10000)/256; /*设定Timer1每10ms中断一次*/ TL1=(65536-10000)%6;
T2CON=0x38; /*令定时器2作为串口波特率发生器*/ /*|TF2|EXF2|RCLK|TCLK|EXEN2|TR2|C/T2|CP/RL2|*/ TL2=0xd9; /*设定串口波特率为9600,晶振为12MHz*/ TH2=0xff;
RCAP2L=0xd9; /*根据串口波特率9600设定自动重载寄存器*/ RCAP2H=0xff; TR2=1; /*启动定时器2*/ SCON=0x50; /*设定UART工作在MODE3模式,可收发数据*/ /*| SM0| SM1| SM2| REN| TB8| RB8| TI | RI |*/ IE=0x9f; /*使能总中断、Timer0,1中断、外部中断1,2*/ /*| EA | - | ET2| ES | ET1| EX1| ET0| EX0|*/ IP=0x02; /*优先Timer0中断*/ /*| - | - | PT2| PS | PT1| PX1| PT0| PX0|*/
ReadPassword(); /*先把24C02中的密码读到密码缓冲区中*/ ClearScr(); /*预清屏*/
- 23 -
共分享92篇相关文档