• 大小: 117KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: LCD  

资源简介

基于89C51单片机的LCD音乐闹钟(详细注释),这是我亲手做的一个小玩意儿,刚刚学完单片机的同学,可以拿来练练手!

资源截图

代码片段和文件信息

#include
#define uchar unsigned char 
#define uint unsigned int
#define KEY_IO P3
#define LCD_IO P0
//以下是C调低音的音频宏定义
#define L1  262    //将“L1“宏定义为低音“1“的频率262Hz 时间是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_a“宏定义为低音“6“的频率440Hz
#define L7  494    //将“L7“宏定义为低音“7“的频率494Hz
//以下是C调中音的音频宏定义
#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调高音的音频宏定义
#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;     //储存定时器的定时常数



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)      //写指令
{
    LCD_RS = 0;  LCD_IO = com; // LCD_RS和R/W都为低电平时,写入指令
    LCD_EN = 1;  delay(5); LCD_EN = 0; //用EN输入一个高脉冲 
}
//---------------------------------------------------
void W_LCD_Dat(uchar dat)      //写数据
{
    LCD_RS = 1;  LCD_IO = dat; // LCD_RS为高、R/W为低时,写入数据
    LCD_EN = 1;  delay(5); LCD_EN = 0; //用EN输入一个高脉冲 
}
//---------------------------------------------------
void W_LCD_STR(uchar *s)       //写字符串
{
    while(*s)  W_LCD_Dat(*s++);
}
//---------------------------------------------------
void W_BUFF(void)              //填写显示缓冲区
{
    Timer_buf[7] = sec % 10 + 48;/*秒除以10,并取余数*/ Timer_buf[6] = sec / 10 + 48; /*秒除以10,并取整数*/       
    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;  //  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           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时钟接线图.jpg
     文件       12162  2018-04-05 15:45  自己做的LCD\LCD时钟简单
     文件        1150  2018-04-05 15:45  自己做的LCD\LCD时钟简单.build_log.htm
     文件        4795  2018-04-05 15:45  自己做的LCD\LCD时钟简单.hex
     文件          32  2018-04-05 15:45  自己做的LCD\LCD时钟简单.lnp
     文件       14211  2018-04-05 15:45  自己做的LCD\LCD时钟简单.M51
     文件         193  2017-07-12 09:12  自己做的LCD\LCD时钟简单.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

评论

共有 条评论