基于51单片机的简易可调时钟闹钟Proteus仿真

资料编号:122  下面是相关功能视频演示:

122-基于51单片机的简易可调时钟闹钟Proteus仿真(源码+仿真+全套资料)

功能说明:

1、使用单片机内部定时器实现时分秒计时

2、能够设置闹钟时间

3、闹钟时间到,蜂鸣器响

4、使用LCD1602显示时间

基于51单片机的简易可调时钟闹钟Proteus仿真_第1张图片

下面是部分程序展示:

* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
    e=0;
    rs=0;
    rw=0;
    P0=com;
    delay_uint(20);
    e=1;
    delay_uint(20);
    e=0;
}

/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
    e=0;
    rs=1;
    rw=0;
    P0=dat;
    delay_uint(20);
    e=1;
    delay_uint(20);
    e=0;    
}


/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
          write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
    if(hang==1)   
        write_com(0x80+add);
    else
        write_com(0x80+0x40+add);
        while(1)
        {
            if(*p == '\0')  break;
            write_data(*p);
            p++;
        }    
}

基于51单片机的简易可调时钟闹钟Proteus仿真_第2张图片

 下面是该资料分享下载链接:

https://pan.baidu.com/s/12x2E9mkFxF9G81WsKjny9Q?pwd=f90i

你可能感兴趣的:(51单片机,proteus,单片机)