資源簡(jiǎn)介
基于89C51單片機(jī)的LCD音樂(lè)鬧鐘(詳細(xì)注釋),這是我親手做的一個(gè)小玩意兒,剛剛學(xué)完單片機(jī)的同學(xué),可以拿來(lái)練練手!

代碼片段和文件信息
#include
#define?uchar?unsigned?char?
#define?uint?unsigned?int
#define?KEY_IO?P3
#define?LCD_IO?P0
//以下是C調(diào)低音的音頻宏定義
#define?L1??262????//將“L1“宏定義為低音“1“的頻率262Hz 時(shí)間是1/262=3826/2?us ??取半周期
#define?L2??286????//將“L2“宏定義為低音“2“的頻率286Hz
#define?L3??311????//將“L3“宏定義為低音“3“的頻率311Hz
#define?L4??349????//將“L4“宏定義為低音“4“的頻率349Hz
#define?L5??392????//將“L5“宏定義為低音“5“的頻率392Hz
#define?L6??440????//將“l(fā)_a“宏定義為低音“6“的頻率440Hz
#define?L7??494????//將“L7“宏定義為低音“7“的頻率494Hz
//以下是C調(diào)中音的音頻宏定義
#define?Z1????523?????//將“Z1“宏定義為中音“1“的頻率523Hz
#define?Z2????587?????//將“Z2“宏定義為中音“2“的頻率587Hz
#define?Z3? ??659?????//將“Z3“宏定義為中音“3“的頻率659Hz
#define?Z4????698?????//將“Z4“宏定義為中音“4“的頻率698Hz
#define?Z5????784?????//將“Z5“宏定義為中音“5“的頻率784Hz
#define?Z6????880?????//將“Z6“宏定義為中音“6“的頻率880Hz
#define?Z7????987?????//將“Z7“宏定義為中音“7“的頻率523H??????
//以下是C調(diào)高音的音頻宏定義
#define?H1??1046????//將“H1“宏定義為高音“1“的頻率1046Hz
#define?H2??1174????//將“H2“宏定義為高音“2“的頻率1174Hz
#define?H3??1318????//將“H3“宏定義為高音“3“的頻率1318Hz
#define?H4??1396????//將“H4“宏定義為高音“4“的頻率1396Hz
#define?H5??1567????//將“H5“宏定義為高音“5“的頻率1567Hz
#define?H6??1760????//將“H6“宏定義為高音“6“的頻率1760Hz
#define?H7??1975????//將“H7“宏定義為高音“7“的頻率1975Hz
sbit?k4=P3^3;
sbit?sound=P1^6;????//蜂鳴器
unsigned?int?C;?????//儲(chǔ)存定時(shí)器的定時(shí)常數(shù)
sbit?LCD_RS?=?P2^0;
sbit?LCD_RW?=?P2^1;
sbit?LCD_EN?=?P2^2;
sbit?LED?=?P2^4;
void?music(void);
unsigned?char?ut;
bit?new_s?modify?=?0;
char?t0?sec?=?40?min?=?29?hour?=?6;
char?code?LCD_line1[]?=?“HAPPY???EVEDAY“;
char?code?LCD_line2[]?=?“Timer:?00:00:00?“;
char?Timer_buf[]?=?“23:59:50“;
//---------------------------------------------------
void?delay(uint?z)
{
????uint??x?y;
????for(x?=?z;?x?>?0;?x--)??for(y?=?100;?y?>?0;?y--);
}
void?delay1()???????????????
???{
?????unsigned?char?ij;
??for(i=0;i<100;i++)
????for(j=0;j<250;j++)
???? ?;
???}
//---------------------------------------------------
void?W_LCD_Com(uchar?com)??????//寫(xiě)指令
{
????LCD_RS?=?0;??LCD_IO?=?com;?//?LCD_RS和R/W都為低電平時(shí),寫(xiě)入指令
????LCD_EN?=?1;??delay(5);?LCD_EN?=?0;?//用EN輸入一個(gè)高脈沖?
}
//---------------------------------------------------
void?W_LCD_Dat(uchar?dat)??????//寫(xiě)數(shù)據(jù)
{
????LCD_RS?=?1;??LCD_IO?=?dat;?//?LCD_RS為高、R/W為低時(shí),寫(xiě)入數(shù)據(jù)
????LCD_EN?=?1;??delay(5);?LCD_EN?=?0;?//用EN輸入一個(gè)高脈沖?
}
//---------------------------------------------------
void?W_LCD_STR(uchar?*s)???????//寫(xiě)字符串
{
????while(*s)??W_LCD_Dat(*s++);
}
//---------------------------------------------------
void?W_BUFF(void)??????????????//填寫(xiě)顯示緩沖區(qū)
{
????Timer_buf[7]?=?sec?%?10?+?48;/*秒除以10,并取余數(shù)*/?Timer_buf[6]?=?sec?/?10?+?48;?/*秒除以10,并取整數(shù)*/???????
????Timer_buf[4]?=?min?%?10?+?48;???????????????????????Timer_buf[3]?=?min?/?10?+?48;
????Timer_buf[1]?=?hour?%?10?+?48;??????????????????????Timer_buf[0]?=?hour?/?10?+?48;
????W_LCD_Com(0xc0?+?7);?W_LCD_STR(Timer_buf);
}
//---------------------------------------------------
uchar?read_key(void) ??//按鍵?判斷
{
????uchar??x1?x2;
????KEY_IO?=?255;
????x1?=?KEY_IO; ?// ?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-05?15:46??自己做的LCD\
?????文件???????87903??2017-05-20?17:14??自己做的LCD\Last?Loaded?sdas.DBK
?????文件???????11671??2017-05-20?09:15??自己做的LCD\LCD
?????文件????????4826??2017-05-20?09:15??自己做的LCD\LCD.hex
?????文件???????88054??2018-04-05?15:46??自己做的LCD\LCD.uvgui.Administrator
?????文件????????4958??2018-04-05?15:45??自己做的LCD\LCD.uvopt
?????文件???????13864??2018-04-05?15:45??自己做的LCD\LCD.uvproj
?????文件???????54846??2017-07-05?09:54??自己做的LCD\LCD_uvopt.bak
?????文件???????40298??2017-04-29?21:20??自己做的LCD\LCD時(shí)鐘接線圖.jpg
?????文件???????12162??2018-04-05?15:45??自己做的LCD\LCD時(shí)鐘簡(jiǎn)單
?????文件????????1150??2018-04-05?15:45??自己做的LCD\LCD時(shí)鐘簡(jiǎn)單.build_log.htm
?????文件????????4795??2018-04-05?15:45??自己做的LCD\LCD時(shí)鐘簡(jiǎn)單.hex
?????文件??????????32??2018-04-05?15:45??自己做的LCD\LCD時(shí)鐘簡(jiǎn)單.lnp
?????文件???????14211??2018-04-05?15:45??自己做的LCD\LCD時(shí)鐘簡(jiǎn)單.M51
?????文件?????????193??2017-07-12?09:12??自己做的LCD\LCD時(shí)鐘簡(jiǎn)單.plg
?????文件????????8450??2017-07-05?09:32??自己做的LCD\main.c
?????文件???????13669??2018-04-05?15:45??自己做的LCD\main.LST
?????文件???????13492??2018-04-05?15:45??自己做的LCD\main.OBJ
?????文件???????87903??2017-05-21?13:58??自己做的LCD\sdas.DSN
?????文件?????????742??2017-06-02?09:37??自己做的LCD\sdas.PWI
?????目錄???????????0??2018-04-05?15:46??自己做的LCD\圖\
?????文件????????8447??2017-05-21?13:58??自己做的LCD\新建文本文檔.txt
評(píng)論
共有 條評(píng)論