单片机
返回首页

基于PIC16F877单片机的多功能电子时钟

2020-09-07 来源:51hei

一、功能实现
  本设计主要实现实时时钟显示,时间可调;实时温度显示,并具有超限报警功能,输出显示采用LCD1602。
二、仿真图

基于proteus的仿真
三、主程序
#include 'lian_pic.h'
#include 'DHT11.h'
#include 'ds1302.h'
#include 'key.h'
#include 'lcd12864.h'
#include 'control.h'
__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);        
//HS振荡,禁止看门狗,低压编程关闭,启动延时定时器


void Basic_Io_Init(void)
{
  ADCON1=0x06;       //PORTA,PORTE设定为数字端口
  TRISD=0;           //PORTD设置为输出
  TRISA0=1;                        //按键输入
  TRISA1=1;                        //按键输入
  TRISA2=1;                        //按键输入
  TRISA3=1;                        //按键输入
  TRISB0=0;                        //串口,并口选择
  TRISB1=0;                        //并行读写使能
  TRISB2=0;                        //并行读/写选择
  TRISB3=0;                  //并行数据/控制字选择
  TRISE2=0;                 //报警器
  TRISC=0x00;                //DS1302的端口定义
  PORTC=0xff;                //DS1302的端口定义
  lcd12864_io_init();
}
//高温报警
void temp_warning()
{
        if((temp_valueH/10)>0x02&&reduce_voice==0)   //30度开始 手动消除
        {
                RE2=1;
                //报警IO
        }
        else if((temp_valueH/10)<=0x02&&reduce_voice==1)
        {        
                reduce_voice=0;
        }
        else
        {
                        RE2=0;
        }
        
}
void main(void)
{        
        Basic_Io_Init();         //初始化IO口
        Lcd_Init();                        //初始化LCD
        __delay_ms(2000);         //等待2秒保证DHT11上电正常初始化

  while(1)
  {        
        temp_warning();     //循环执行高温报警监控
         DHT11_Read_data();  //读取DHT11模块的数据
        Key_Scan();                        //扫描模式识别键盘
        ds1302_read_time(); //读出当前时钟信息
        lcd_display_control();//显示


        __delay_ms(150);
  }
}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 光控音效发生器电路

  • 基于IC555的可变PWM振荡器电路

  • 如何使用LED驱动器LM3915制作振动计

  • 一个简单的立体声平衡指示器电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章