?? 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 + -