基于51单片机的校园电子打铃器 proteus仿真原理图程序设计
硬件设计
(末尾附文件)
功能:
1、8位数码管显示当前时间。
2、使用DS1302获得时钟信号,能够进行时钟设置
3、能够设置10组打铃时间,并具有临时打铃功能,打铃的时长为5S钟
4、使用1602液晶屏幕显示。
仿真图:
程序设计
#include <all.h>u8 LCD1602_Cursor_address=0; //光标标记
// uchar code degree[]={0x16,0x09,0x08,0x08,0x08,0x09,0x06,0x00}; //摄氏度 符号bit lcd_busy_test(void) //忙状态监测
{bit result;RS=0; RW=1;EN=1;_nop_();_nop_();_nop_();_nop_();result = (bit)(DB&0x80);EN=0;return result;
}void lcd_write_cmd (u8 cmd) //写命令
{while (lcd_busy_test());RS=0;RW=0;EN=0;_nop_();_nop_();DB=cmd ;_nop_();_nop_();_nop_();_nop_();EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;
}void lcd_position (u8 pos)//显示起始位置
{if(pos<16)lcd_write_cmd (pos|0x80);elselcd_write_cmd (((pos)-16)|0xC0);
}void lcd_write_data (u8 dat)//写数据
{while (lcd_busy_test());RS=1;RW=0;EN=0;_nop_();_nop_();DB=dat ;_nop_();_nop_();_nop_();_nop_();EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;
}//初始化
void lcd_start (void)
{lcd_write_cmd (0x01);delay_ms(1);lcd_write_cmd (0x02);delay_ms(1);lcd_write_cmd (0x06);delay_ms(1);lcd_write_cmd (0x0c);delay_ms(1);lcd_write_cmd (0x14);delay_ms(1);lcd_write_cmd (0x38);delay_ms(1);}void lcd_CLS()
{data u8 i;lcd_position(0x80);for(i=0;i<16;i++)lcd_write_data(' ');lcd_position(0xc0);for(i=0;i<16;i++)lcd_write_data(' ');
}void LCD_1602_Cursor_address() //光标状态
{switch(LCD1602_Cursor_address){case 0:lcd_write_cmd(0x0c);break;//不显示//(先开启 0x0f,后地址,上0x8,下0xc) case 1:lcd_write_cmd(0x0f);lcd_write_cmd(0xcb);break;//时间秒 case 2:lcd_write_cmd(0x0f);lcd_write_cmd(0xc8);break;//时间分case 3:lcd_write_cmd(0x0f);lcd_write_cmd(0xc5);break;//时间时case 4:lcd_write_cmd(0x0f);lcd_write_cmd(0x8c);break;//星期case 5:lcd_write_cmd(0x0f);lcd_write_cmd(0x8a);break;//时间日case 6:lcd_write_cmd(0x0f);lcd_write_cmd(0x87);break;//时间月case 7:lcd_write_cmd(0x0f);lcd_write_cmd(0x84);break;//时间年}
}void lcd_printf_Ds1302() //正常模式显示
{lcd_position(3);lcd_write_data(Time[6]/16%16+'0');//时间年显示lcd_write_data(Time[6]%16+'0');lcd_write_data('/');lcd_write_data(Time[5]/16%16+'0');//时间月显示lcd_write_data(Time[5]%16+'0');lcd_write_data('/');lcd_write_data(Time[4]/16%16+'0');//时间日显示lcd_write_data(Time[4]%16+'0');lcd_write_data('/');lcd_write_data(Time[3]%16+'0');//星期显示lcd_position(20);lcd_write_data(Time[2]/16%16+'0');//时间时显示lcd_write_data(Time[2]%16+'0');lcd_write_data('/');lcd_write_data(Time[1]/16%16+'0');//时间分显示lcd_write_data(Time[1]%16+'0');lcd_write_data('/');lcd_write_data(Time[0]/16%16+'0');//时间秒显示lcd_write_data(Time[0]%16+'0');
}void lcd_printf_Ring() //铃声调整数据显示
{lcd_position(20);lcd_write_data(Ring_Data[Ring][2]/16%16+'0');//时间时显示lcd_write_data(Ring_Data[Ring][2]%16+'0');lcd_write_data('/');lcd_write_data(Ring_Data[Ring][1]/16%16+'0');//时间分显示lcd_write_data(Ring_Data[Ring][1]%16+'0');lcd_write_data('/');lcd_write_data(Ring_Data[Ring][0]/16%16+'0');//时间秒显示lcd_write_data(Ring_Data[Ring][0]%16+'0');
}void Alarm_Clock() //铃声调整数据处理
{if(Key4x4A=='+'){Key4x4_tt=0;Key4x4A=0;Ring_Data[Ring][LCD1602_Cursor_address-1]++;if((Ring_Data[Ring][LCD1602_Cursor_address-1]&0x0f)>9) //十进制转BCD码(Ring_Data[Ring][LCD1602_Cursor_address-1])+=6;if(Ring_Data[Ring][0]>0x59) //数据限制Ring_Data[Ring][0]=0x00;if(Ring_Data[Ring][1]>0x59) //数据限制Ring_Data[Ring][1]=0x00;if(Ring_Data[Ring][2]>0x23) //数据限制Ring_Data[Ring][2]=0x00;lcd_printf_Ring(); //铃声调整数据刷新}if(Key4x4A=='-'){Key4x4_tt=0;Key4x4A=0;if(Ring_Data[Ring][LCD1602_Cursor_address-1]>0) //数据限制Ring_Data[Ring][LCD1602_Cursor_address-1]--;if((Ring_Data[Ring][LCD1602_Cursor_address-1]&0x0f)>9) //十进制转BCD码(Ring_Data[Ring][LCD1602_Cursor_address-1])-=6;lcd_printf_Ring(); //铃声调整数据刷新}
}void Time_Settings() //时间调整数据处理
{if(Key4x4A=='+'){Key4x4_tt=0;Key4x4A=0;Time[LCD1602_Cursor_address-1]++;if((Time[LCD1602_Cursor_address-1]&0x0f)>9) //十进制转BCD码(Time[LCD1602_Cursor_address-1])+=6;if(Time[0]>0x59) //数据限制Time[0]=0x00;if(Time[1]>0x59) //数据限制Time[1]=0x00;if(Time[2]>0x23) //数据限制Time[2]=0x00;if(Time[3]>0x07) //数据限制Time[3]=0x07;if(Time[4]>0x31) //数据限制Time[4]=0x00;if(Time[5]>0x12) //数据限制Time[5]=0x00;if(Time[6]>0x99) //数据限制Time[6]=0x00;lcd_printf_Ds1302(); //时间调整数据刷新}
.
文件仅供参考:
链接:https://pan.baidu.com/s/1yUigOtG7_7a2sxrYD_KB-Q
提取码:tviy
.
基于51单片机的校园电子打铃器 proteus仿真原理图程序设计相关推荐
- 基于51单片机的时钟电子秤称重系统proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.采用LCD1602液晶显示当前时间和检测重量 2.按键可更改时间和设置超重报警阈值 3.采用HEX711和称重支架传感器获取物体重量信息,传入 ...
- 基于51单片机HX711的电子秤称重计价proteus仿真程序设计
设计要求 1.利用压力传感器检测重量信号,经放大和A/D转换,送单片机进行处理,并在液晶屏上显示出被称重量值: 2.最小显示单位为1克: 3.量程超过报警值蜂鸣器报警 资料下载地址:基于51单片机HX ...
- 基于51单片机的16键电子琴音乐盒设计proteus仿真原理图程序
功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.LCD1602液晶实时显示时间和当前工作模式 2.支持电子琴模式和歌曲模式(内置8首歌曲) 3.短触'设置/切换'键可切换工作模式 ...
- 基于51单片机声音噪声分贝检测采集显示proteus仿真原理图PCB程序设计
硬件设计 (末尾附文件) 功能说明: 1.基于STC89C51/52(与AT89S51/52.AT89C51/52通用)单片机作为主控制器 2.采用LCD1602液晶显示屏实时显示分贝值: 3.使用小 ...
- 基于51单片机的智能蓝牙路灯街灯控制系统proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.液晶实时显示时间/环境光强/工作模式 2.每隔5s向蓝牙串口发送一次信息 3.支持路灯故障检测 4.工作时间18~24时,两个路灯同时点亮,24时 ...
- 基于51单片机的水温温度PID算法控制系统proteus仿真原理图PCB
1.本系统采用STC89C52作为单片机 2.采用液晶LCD1602液晶实时显示相关数据 3.采用矩阵键盘可设置PID相关参数 4.采用L298驱动功率电阻模拟加热过程 5.当温度超过设定值的一定范围 ...
- 基于51单片机的智能护眼台灯设计proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/环境光强/工作模式 2.当检测到人体距离灯光太近时,蜂鸣器报警提醒 3.当使用时间超过设定阈值时,蜂鸣器报 ...
- 基于51单片机的智能饮水机烧水控制系统proteus仿真原理图PCB
功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前温度和设定温度 2.当温度到达100℃时,蜂鸣器报警提醒水烧开了 3.按键可更改预设温度值,当温度低于设定温度5 ...
- 基于51单片机太阳能风能太阳能风光互补路灯proteus仿真原理图PCB
功能: 0.本系统采用STC89C52作为单片机 1.手动模式下,由手动开关控制小灯的亮灭 2.自动模式下,由光强决定小灯的亮灭 3.本系统具备太阳能和风能两种方式给系统的锂电池充电,锂电池再经过升压 ...
最新文章
- 20 Java程序员面试宝典视频课程之HTML5新标签、功能
- open一个页面并关闭父页(小技巧)
- mysql “group by ”与order by的研究--分类中最新的内容
- Java集合框架:总结
- EFCore查询语句生成流程、让EFCore支持批量Update/Delete/MergeInto
- string 大小写转换
- 计算机组成原理——Cache与主存的地址映射
- python绘制动态图-数据可视化
- nginx服务器模块、web请求处理机制及事件驱动模型、进程功能和进程间通信
- [Math Processing Error] 问题的解决(F5刷新页面与 Ctrl/Shift + F5 刷新页面的区别)
- 软件one pin错误是啥意思_理想ONE,从交车就开始道歉,是有礼貌的新势力
- 兰州石化学院计算机证书领取,关于领取2019年9月全国计算机等级考试证书的通知...
- 【R爬虫-1】BBC Learning English
- 一个layer可以跟着画完的线移动ios程序 好玩啊。
- 【2021 年 MathorCup 高校数学建模挑战赛—赛道A二手车估价问题】1 数据分析及可视化
- [Kerberos基础]-- kerberos认证原理---讲的非常细致,易懂
- 一文读懂麦克风典型应用电路
- 虚拟化查看服务器sn,linux 查看服务器sn号
- 0基础学编程需要哪些基础?
- java并发编程(并发编程的三个问题)
热门文章
- VUE+bpmn.js+iview 页面绘制流程图
- Thinkpad E440安装Ubuntu 14.04遇到的问题
- 红米 android8 刷机,又一部红米“吃奥利奥”:全网通版Note 3安卓8.0刷机包放出...
- 安装VMware时警告此产品安装程序不支持降级
- LORA和NB-IoT,谁才是真正的低功耗?本文使用低功耗分析仪来分析真相:LORA和NB都是LPWAN里最主要的技术, 专为低带宽、低功耗、远距离、大量连接的物联网应用而设计。
- 使用Flink CDC 2.2.1进行ETL-Oracle-MySQL
- CRSNet: Dilated Convolutional Neural Networks for Underatanding the Highly Congested Scenes
- linux --gitblit安装
- 14 款 Chrome 官方出品主题 ~ 颜值绝绝子~
- 青少年编程-Python画图“爱笑的眼睛机器人”第二幕