📄 myboard.c
字号:
/*
* Copyright (c) 2005, Owen Studio
* All rights reserved.
*
* 文件名称:MyBoard.c
* 当前版本:Version 1.0
*
* 本程序为通过调试的源程序
*
* 功能描述:上电后系统等待用户输入登陆密码,用户可查询储存在24C02中的登陆密码(A键),也可修改登陆密码(B键),
* 当输入登陆密码后按D键,如果密码正确则进入系统。进入系统后6个数码管开始计时,同时循环播放4首音乐,发光二
* 极管也按预定流水灯程序循环闪动。此时按1-9键则播放第1-9首音乐。按0键则停止播放。按D键开始/停止音乐自动播
* 放。按*键开始/停止流水灯自动演示。按#键切换流水灯方案臘键则跳到下一首音乐,按A键、B键、C键则分别对时、分
* 、秒进行调节。
* 另外本程序集成了与PC通信的串口服务程序,所有按键的功能也可以通过PC机的控制软件实现。状态也可以反馈到此
* 控制软件上。
*
* 资源配置:Timer0用于为系统提供时基;Timer1用于音乐播放;Timer2用于串口波特率发生器。
* 3个中断源,其中两个为Timer0和Timer1中断,另一个为串口中断,主要完成与PC机的通信。
*/
/*************************************************************************/
//////////////////////////Beginning of Program/////////////////////////////
/*************************************************************************/
#include "at89x52.h"
#include <intrins.h>
#define nop _nop_()
#define uchar unsigned char
#define uint unsigned int
#define PAI_BASE 15
#define MUSIC_NUM 9
#define SCAN_CYCLE 500
/*************************************************************************/
/*Constant Tables*/
const char code c_music1[]={0x82,0x01,0x81,0x94,0x84, /*生日快乐歌*/
0xb4,0xa4,0x04,
0x82,0x01,0x81,0x94,0x84,
0xc4,0xb4,0x04,
0x82,0x01,0x81,0xf4,0xd4,
0xb4,0xa4,0x94,
0xe2,0x01,0xe1,0xd4,0xb4,
0xc4,0xb4,0x04,
0x00};
const char code c_music2[]={0x62, 0x52, /*两只蝴蝶*/
0x64, 0x64, 0x02, 0x52, 0x62, 0x52,
0x44, 0x44, 0x04, 0x22, 0x42,
0x54, 0x52, 0x62, 0x52, 0x42, 0x22, 0x42,
0x14, 0x14, 0x04, 0x62, 0x52,
0x64, 0x64, 0x02, 0x52, 0x62, 0x52,
0x44, 0x44, 0x04, 0x22, 0x42,
0x54, 0x52, 0x62, 0x52, 0x42, 0x22, 0x42,
0x54, 0x54, 0x04, 0x62, 0x82,
0x84, 0x84, 0x02, 0x82, 0x92, 0x82,
0x64, 0x64, 0x04, 0x52, 0x52,
0x54, 0x52, 0x62, 0x52, 0x42, 0x22, 0x91, 0x41,
0x42, 0x42, 0x44, 0x44, 0x44,
0x02, 0x82, 0x82, 0x92,
0xb2, 0xa2, 0xa2, 0x92, 0x64, 0x52, 0x62,
0x64, 0x64, 0x02, 0x62, 0x62, 0x82,
0x94, 0x94, 0x02, 0x22, 0x62, 0x52,
0x54, 0x54, 0x04, 0x62, 0x82,
0x82, 0x62, 0x84, 0x02, 0xb2, 0xb2, 0xa2,
0x92, 0xa2, 0x64, 0x02, 0x92, 0x92, 0xa2,
0x92, 0x82, 0x62, 0x52, 0x52, 0x62, 0x52, 0x62,
0x84, 0x84, 0x02, 0x82, 0x82, 0x92,
0x92, 0x82, 0x62, 0x52, 0x52, 0x12, 0x12, 0x22,
0x44, 0x44, 0x44, 0x44,
0x00};
const char code c_music3[]={0x04, 0x42, 0x41, 0x51,
0x62, 0x62, 0x52, 0x41, 0x51, 0x54, 0x02, 0x41, 0x51, /*老鼠爱大米*/
0x62, 0x62, 0x52, 0x42, 0x44, 0x02, 0x11, 0x21,
0x14, 0x11, 0x11, 0x21, 0x41, 0x44, 0x02, 0x42,
0x42, 0x42, 0x42, 0x41, 0x51, 0x54, 0x42, 0x51, 0x61,
0x62, 0x62, 0x82, 0x91, 0x51, 0x54, 0x62, 0x51, 0x41,
0x42, 0x42, 0x52, 0x61, 0x81, 0x84, 0x02, 0x81, 0x81,
0x92, 0x41, 0x41, 0x42, 0x61, 0x01, 0x52, 0x42, 0x42, 0x51, 0x41,
0x44, 0x44, 0x44, 0x62, 0x61, 0x81,
0x82, 0x81, 0x81, 0x82, 0x81, 0x91, 0x94, 0x62, 0x52,
0x42, 0x42, 0x42, 0x51, 0x61, 0x64, 0x02, 0x61, 0x81,
0x82, 0x82, 0x82, 0x91, 0xb1, 0xb2, 0x92, 0x82, 0x62,
0x52, 0x42, 0x42, 0x22, 0x54, 0x02, 0x61, 0x81,
0x82, 0x82, 0x81, 0x92, 0x81, 0x94, 0x62, 0x52,
0x42, 0x42, 0x42, 0x51, 0x61, 0x64, 0x02, 0x61, 0x81,
0x82, 0x82, 0x82, 0x91, 0xb1, 0xb2, 0x92, 0x82, 0x61, 0x51,
0x52, 0x52, 0x54, 0x54, 0x41, 0x62, 0x71,
0x62, 0x52, 0x54, 0x54, 0x62, 0x51, 0x41,
0x44, 0x62, 0x51, 0x41, 0x44, 0x62, 0x52,
0x62, 0x42, 0x62, 0x91, 0x81, 0x84, 0x02, 0x61, 0x81,
0x92, 0x91, 0x81, 0x82, 0x91, 0x81, 0x84, 0x61, 0x51, 0x42,
0x52, 0x51, 0x61, 0x52, 0x41, 0x51, 0x41, 0x53, 0x62, 0x51, 0x41,
0x44, 0x62, 0x51, 0x41, 0x44, 0x62, 0x52,
0x62, 0x42, 0x61, 0x92, 0x81, 0x84, 0x02, 0x61, 0x81,
0x92, 0x92, 0xb2, 0x81, 0x91, 0x82, 0x01, 0x81, 0x61, 0x51, 0x41,
0x54, 0x51, 0x41, 0x51, 0x61, 0x54, 0x62, 0x62,
0x54, 0x02, 0x42, 0x44, 0x44,
0x00};
const char code c_music4[]={0x04, 0x02, 0x41, 0x51, 0x62, 0x61, 0x61, 0x62, 0x52, /*梦醒时分*/
0x62, 0x81, 0x61, 0x62, 0x61, 0x81, 0x92, 0x92, 0x92, 0xa2,
0x82, 0x62, 0x62, 0x62, 0x61, 0x51, 0x42, 0x41, 0x41, 0x42, 0x22,
0x62, 0x81, 0x41, 0x44, 0x51, 0x52, 0x01, 0x52, 0x42,
0x81, 0x61, 0x52, 0x52, 0x41, 0x51, 0x62, 0x61, 0x61, 0x62, 0x52,
0x62, 0x81, 0x61, 0x62, 0x61, 0x81, 0x92, 0x91, 0x91, 0x92, 0xa2,
0x82, 0x62, 0x61, 0x81, 0x81, 0x81, 0x92, 0xb2, 0xb2, 0x92,
0x72, 0x52, 0x52, 0x81, 0x81, 0x92, 0xb2, 0xb2, 0x92,
0xb2, 0xc2, 0xc4, 0xc4, 0x01, 0x81, 0x81, 0x81,
0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xc1, 0xc1, 0xc2, 0xb1, 0xa1,
0xb2, 0xb2, 0xb2, 0xc2, 0x62, 0x82, 0x82, 0x81, 0x81,
0x92, 0xb1, 0xb1, 0xb2, 0xb2, 0xc2, 0x91, 0xb1, 0xb2, 0xb1, 0xb1,
0xc2, 0xc1, 0xc1, 0xc2, 0xb2, 0xd2, 0xc1, 0x81, 0x81, 0x81, 0x81, 0x81,
0xd2, 0xd2, 0xd2, 0xf2, 0xd2, 0xc1, 0xc1, 0xc2, 0xb1, 0xa1,
0xb2, 0xb2, 0xb2, 0xc2, 0x62, 0x82, 0x82, 0x81, 0x81,
0x92, 0xb1, 0xb1, 0xb2, 0xb1, 0xb1, 0xc2, 0x91, 0xb1, 0xb2, 0xb1, 0xb1,
0xc2, 0xc1, 0xc1, 0xc2, 0xb2, 0xd4, 0xc2, 0x01, 0xb1,
0xb4, 0xb4, 0xb4, 0xb4,
0x00};
const char code c_music5[]={0x54, 0x64, 0x64, /*大长今*/
0x64, 0x02, 0x52, 0x44,
0x24, 0x44, 0x44,
0x51, 0x43, 0x44, 0x44,
0x54, 0x64, 0x64,
0x64, 0x02, 0x82, 0x64,
0x64, 0x54, 0x64,
0x64, 0x64, 0x64,
0x84, 0x94, 0x94,
0x94, 0x84, 0x64,
0x64, 0x84, 0x94,
0x81, 0x91, 0x82, 0x84, 0x84,
0x54, 0x64, 0x64,
0x54, 0x02, 0x62, 0x64,
0x54, 0x64, 0x24,
0x41, 0x23, 0x94, 0x94,
0x24, 0x24, 0x24,
0x54, 0x64, 0x64,
0x64, 0x02, 0x52, 0x44,
0x24, 0x44, 0x44,
0x51, 0x43, 0x44, 0x44,
0x54, 0x64, 0x64,
0x64, 0x02, 0x82, 0x64,
0x64, 0x54, 0x64,
0x64, 0x64, 0x64,
0x84, 0x94, 0x94,
0x94, 0x02, 0x82, 0x64,
0x64, 0x84, 0x94,
0x84, 0x84, 0x84,
0x54, 0x64, 0x64,
0x54, 0x02, 0x62, 0x64,
0x54, 0x64, 0x24,
0x41, 0x23, 0x24, 0x24,
0x24, 0x24, 0x24,
0x54, 0x02, 0x42, 0x24,
0x54, 0x02, 0x42, 0x24,
0x54, 0x64, 0x44,
0x54, 0x02, 0x62, 0x84,
0x94, 0x02, 0x82, 0x64,
0x54, 0x02, 0x42, 0x24,
0x24, 0x14, 0x24,
0x41, 0x23, 0x24, 0x24,
0x24, 0x24, 0x24,
0x14, 0x14, 0x14,
0x14, 0x02, 0x22, 0x42, 0x52,
0x62, 0x52, 0x44, 0x02, 0x22,
0x44, 0x44, 0x54,
0x64, 0x64, 0x64,
0x64, 0x64, 0x84,
0x94, 0x02, 0xb2, 0x94,
0x84, 0x84, 0x84,
0x84, 0x61, 0x81, 0x92, 0x04,
0x92, 0x82, 0x64, 0x02, 0x52,
0x64, 0x02, 0x52, 0x62, 0x52,
0x44, 0x44, 0x44,
0x41, 0x23, 0x24, 0x44,
0x54, 0x54, 0x54,
0x54, 0x64, 0x64,
0x44, 0x41, 0x23, 0x24,
0x24, 0x24, 0x24,
0x00};
const char code c_music6[]={0x24, 0x42, 0x52, 0x64, 0x62, 0x92, /*漫步人生路*/
0x84, 0x62, 0x52, 0x64, 0x02, 0x62,
0x72, 0x62, 0x62, 0x52, 0x52, 0x42, 0x41, 0x31, 0x22,
0x44, 0x02, 0x52, 0x34, 0x34,
0x24, 0x42, 0x52, 0x64, 0x62, 0x92,
0xa4, 0x82, 0x62, 0x64, 0x02, 0x62,
0x72, 0x62, 0x52, 0x42, 0x32, 0x42, 0x52, 0x62,
0x42, 0x32, 0x22, 0x12, 0x24, 0x24,
0x42, 0x32, 0x42, 0x52, 0x64, 0x52, 0x62,
0x74, 0x74, 0x72, 0x81, 0x71, 0x62, 0x52,
0x64, 0x74, 0x84, 0x02, 0x62,
0x94, 0x92, 0x82, 0x94, 0x92, 0xb2,
0x92, 0x82, 0x82, 0x92, 0x64, 0x52, 0x42,
0x54, 0x52, 0x42, 0x54, 0x42, 0x42, 0x82,
0x62, 0x62, 0x52, 0x42, 0x34, 0x62, 0x62,
0x94, 0x92, 0x82, 0x94, 0x92, 0xb2,
0x92, 0x82, 0x82, 0x92, 0x64, 0x52, 0x42,
0x54, 0x42, 0x82, 0x64, 0x52, 0x42,
0x52, 0x61, 0x51, 0x42, 0x32, 0x24, 0x24,
0x00};
const char code c_music7[]={0x02, 0x12, 0x12, 0x22, /*最浪漫的事*/
0x44, 0x42, 0x42, 0x42, 0x22, 0x22, 0x62,
0x64, 0x64, 0x02, 0x12, 0x24,
0x42, 0x42, 0x42, 0x42, 0x44, 0x62, 0x82,
0x84, 0x84, 0x84, 0x02, 0x82,
0x92, 0x82, 0x92, 0x82, 0x94, 0x82, 0x51, 0x61,
0x62, 0x51, 0x41, 0x44, 0x02, 0x42, 0x42, 0x22,
0x44, 0x42, 0x22, 0x42, 0x64, 0x52,
0x54, 0x54, 0x54, 0x54,
0x32, 0x12, 0x22, 0x42,
0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x52,
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[]={0xb2, 0x41, 0x51, 0x62, 0x81, 0x91, 0x84, 0x84, /*1000年以后*/
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,
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,
0x00};
const char code c_music0[]={0x00};
static const char c_keyCode[16]={0x01,0x02,0x03,0x0a, /*键盘1,2,3,A*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -