news 2026/8/24 0:14:11

基于单片机倒数计数器(LCD,独立按键)系统Proteus仿真(含全部资料)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于单片机倒数计数器(LCD,独立按键)系统Proteus仿真(含全部资料)

全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等

资料下载:↓↓↓

通过网盘分享的文件:资料分享
链接:百度网盘 请输入提取码提取码: tgnu


目录

资料下载:

Proteus仿真功能

项目文件资料:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、Keil c语言程序源代码


项目功能:

利用AT89S52单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为O时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。
定时闹钟的基本功能如下。
字符型LCD (16x2)显示器。显示格式为"TIME分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。
K1一可调整倒计数的时间1—60分钟。
K2一设置倒计数的时间为5分钟,显示"05: 00”。
K3一设置倒计数的时间为10分钟,显示"10: 00”。
K4-设置倒计数的时间为20分钟,显示"20: 00”。
复位后LCD的画面应能显示倒计时的分钟和秒数,此时按下K1键可以在LCD上显示出设置画面。此时,若
A.按操作键K2-一增加倒计数的时间1分钟。
B.按操作键K3—一减少倒计数的时间1分钟。
C.按操作键K4一—设置完成。


项目文件:

一、Proteus仿真源文件

​​

二、AD原理图文件

二、报告说明书

三、系统流程图

​​

四、器件清单

元件型号数量
单片机AT89C511
电容10uf1
电容30pf2
晶振12MHZ1
电阻10k1
按钮8
显示器LCD16021
电阻1k1
三极管PNP1
蜂鸣器无源1
LED红色1
电阻100欧1
排阻10k1

五、Keil c语言程序源代码(部分)

//音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 #include <reg51.h> #include <intrins.h> #include "lcd1602.h" #define uchar unsigned char #define uint unsigned int sbit S1=P1^0;//按钮定义 sbit S2=P1^1; sbit S3=P1^2; sbit S4=P1^3; sbit K1=P3^4; sbit K2=P3^5; sbit K3=P3^6; sbit K4=P3^7; sbit beep=P2^7;//蜂鸣器 sbit led=P2^6; uchar ge_num=1;//歌曲编号 //音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 //半周期 uint code music[22]={0x0fff,1908,1706,1520,1436,1276,1136,1012,956,854,760,718,638,568,506,478, 426, 380, 358, 320, 284, 254}; //节拍编码,一个16拍半周期数 uint code pai16[22]={1,80, 88, 99, 105, 117, 132,148, 157,175,196,208,234,264,295,313, 351, 394, 418, 471, 528, 589}; //简谱,半周期us+节拍时间(16分拍倍数) uchar code gequ1[]={ 10,2,0,1,10,2,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,12,10,2,0,1,10,2,9,2,8,2,9,2,12,2,0,1,12,2,10,2,0,1,10,8, 0,8,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,7,2,0,1,7,2,6,2,0,1,6,8,0,8,10,2,0,1, 10,2,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,12,10,2,0,1,10,2,9,2,8,2,9,2,12,2,0,1,12,2,10,2,0,1,10,8,0,4, 0,4,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,8,2,0,1,8,10,0,4,0,12, 10,2,12,2,13,4,15,4,14,6,12,2,10,4,0,4,8,2,0,1,8,6,13,2,0,1,13,2,12,2,10,2,9,2, 10,8,0,12,10,2,12,2,13,4,15,4,14,6,10,2,15,4,0,2,10,2,9,6,13,2,0,1,13,2,12,2,10,2,9,2, 8,2,0,1,8,2,0,1,8,8,0,4,10,4,6,1,9,1,10,1,12,1,10,4,6,1,9,1,10,1,13,1,10,4,5,1,7,1,8,1,12,1,10,4,0,1,10,2,12,2,13,4,10,4,9,4,5,4, 8,8,0,1,8,8,0,4,10,2,0,1,10,2,9,6,7,2,8,8,0,12,10,2,0,1,10,2,9,2,8,2,12,2, 12,2,10,2,0,1,10,8,0,8,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,7,2, 7,2,6,2,0,1,6,8,0,8,10,2,0,1,10,2,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,12,10,2,0,1,10,2,9,2,8,2,9,2,12,2, 12,2,10,2,0,1,10,8,0,8,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,8,4, 8,8,0,12,0,8,10,2,12,2,13,4,15,4,14,6,12,2,10,4,0,4,8,2, 8,6,13,2,0,1,13,2,12,2,10,2,9,2,10,8,0,8,10,2,12,2,13,4,15,4,14,6,10,2,15,4,0,4,10,2, 9,6,13,2,0,1,13,2,12,2,10,2,9,2,8,12,0,8,10,2,12,2,13,4,15,4,14,6,12,2,10,4,0,4,8,2, 8,6,13,2,0,1,13,2,12,2,10,2,9,2,0,1,9,2,10,2,0,1,10,8,0,8,10,2,12,2,13,6,15,2,14,4,10,4,15,4,0,4,10,2, 9,6,13,2,0,1,13,2,12,2,10,2,9,2,8,2,0,1,8,2,0,1,8,8,0,8,10,2,12,2,13,4,15,4,14,6,10,2,16,2,15,2,0,2,10,2, 9,6,13,2,0,1,13,2,12,2,10,4,9,1,8,1,0,1,8,2,0,1,8,8,0,8,10,4,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,8, 10,4,9,6,12,2,0,1,12,2,10,2,0,1,10,8,0,8,13,4,12,4,10,2,9,2,10,6,9,2,8,8, 10,4,9,2,8,2,9,8,8,4,6,8,0xff }; uchar code gequ2[]={ //一剪梅 14,3, 12,3, 13,8,13,2, 15,1, 14,1, 13,1, 12,1, 10,1,12,1,10,12,6,1,8,1, 9,8,0,1,9,2,10,1,9,1,8,1,9,1,7,1, 6,12,0,1,6,2,0,1, 6,2, 10,4, 9,1, 8,1, 7,1, 8,2, 7,2, 6,1, 5,1, 6,12,0,1, 6,2, 8,4,0,1, 6,1, 8,1, 9,4, 10,1, 11,1, 10,1, 9,1, 10,12,0,1, 10,1, 12,1, 13,6, 12,1, 10,1, 9,6, 8,1,9,1, 10,6, 9,1, 10,1, 6,8, 7,2, 7,1, 6,1, 5,2, 7,4, 5,1, 3,1, 10,2, 8,1, 7,1, 6,12,0,1,6,2, 6,10,0,1, 6,2, 13,4, 12,2, 10,1, 12,1, 10,1, 12,1, 13,4, 12,2, 9,4, 10,1, 12,1, 10,8, 7,1,6,5,7,1,6,5,12,1,13,1, 10,1, 9,1, 10,6,0,1,10,8, 6,2, 13,4, 12,2, 10,1, 12,1, 10,1, 12,1, 13,4, 12,2, 9,4, 10,1, 12,1, 10,8, 8,1,6,7,10,1,9,1,10,4,12,1,13,1, 10,1, 9,1, 10,6,0,1,10,8, 6,2, 13,4, 12,2, 10,1, 12,1, 10,1, 12,1, 13,4, 12,2, 9,4, 10,1, 12,1, 10,8, 7,1,6,7,7,1,6,7, 0xff }; uchar code gequ3[]={ //花心 10,2, 12,2, 0,1, 12,12, 0,1, 12,2, 13,2, 12,2, 10,8, 9,2, 10,2, 0,1, 9,12, 6,4, 8,10, 0,1, 5,4, 0,1, 5,4, 6,4, 0,2, 8,2, 9,2, 10,4, 8,4, 9,2, 0,1, 9,1, 10,1, 9,2, 8,2, 7,4, 8,4, 0,1, 8,10, 0,2, 12,2, 0,1, 12,4, 13,4, 0,1, 15,2, 0,1, 15,2, 0,1, 15,4, 12,4, 13,2, 0,1, 13,1, 15,1, 13,2, 12,2, 10,4, 12,4, 0,1, 12,10,0,1, 5,2, 0,1, 5,2, 6,2, 8,2, 0,1, 8,2, 9,2, 10,4, 8,4, 9,2, 10,2, 15,4, 13,2, 12,2, 0,1, 12,8, 10,4,12,4,0,1,10,2,0,1,10,2,0,1,10,2,9,2,10,2, 9,2,8,2,0,1,9,2,0,1,9,2,0,1,9,2,10,2,9,4,8,2,7,2, 7,2,0,1,7,2,0,1,7,2,0,1,7,2,0,1,7,2,8,2,9,2,8,2,0,1,8,10,0,1,12,2,13,2,15,2,0,1, 15,2,16,2,15,4,13,2,12,2,0,1,12,6,13,2,12,2,10,4,12,4,0,1,10,2,0,1,10,2,0,1,10,2,0,1,10,4,9,2, 8,2,0,1,9,2,0,1,9,2,0,1,9,2,10,2,9,4,8,2,7,2,0,1,7,2,0,1,7,2, 0xff }; uchar gequ=0;//指定播放歌曲 uint times=0;//节拍数 uint num=0;//计数 uchar a=0xfc,b=0x18;//定时器初值 uint first=1;//公共变量 uint time=0; //计时 uchar shunxu=0;//显示控制 //============================= uchar miao=0,fen=1,sec=0;//倒计时 uchar mode=0;//模式 uchar start=0; uchar disp[]="00:00"; void delay(uint i)//延时 { uchar k; while(i--) for(k=0;k<110;k++); } //主函数 void main() { init_1602();//初始化 write_string(2,0,"shi jian zhuyu"); TMOD=0X11;//定时器0,工作方式1。 TH0=0XFC; //定时1ms TL0=0X18; TH1=0X3C; //定时50ms TL1=0XB0; ET0=1;//打开定时器0中断允许 ET1=1; TR1=1; EA=1;//打开总中断 while(1) { if(!TR0) { if(!S1)//乐曲1 { beep=1;delay(1000);gequ=0;num=0;ge_num=1; write_string(2,0,"shi jian zhuyu"); while(!K1); } if(!S2)//乐曲2 { beep=1;delay(1000);gequ=1;num=0;ge_num=2; write_string(2,0,"Yi Jian Mei "); while(!K2); } if(!S3)//乐曲3 { beep=1;delay(1000);gequ=2;num=0;ge_num=3; write_string(2,0,"Hua Xin "); while(!K3); } } if(!S4)//停止 { TR0=0;beep=1; num=0; } if(!K1)//设置 { mode=1; //TR1=1; } if(!K2)//加 { if(mode==0) { fen=5; miao=0; start=1; } else { if(fen<60) fen++; } while(!K2); } if(!K3)//减 { if(mode==0) { fen=10; miao=0; start=1; } else { if(fen>1) fen--; } while(!K3); } if(!K4)//设置完成 { if(mode==0) { fen=20; miao=0; } else { mode=0; start=1; } while(!K4); } //led闪烁 if(start) { if(sec<10) led=0; else led=1; } else led=1; } } //定时器0中断 void Timer0() interrupt 1 { TH0=a; //给定时器赋初值 TL0=b; switch(gequ) { case 0: if(gequ1[num]!=0) beep=!beep; if(times<first)//节拍数未到,计数+1 times++; //计时 else { times=0; //节拍清零 num+=2; //下一个音符 if(gequ1[num]==0xff) //结束 { num=0; TR0=0;//关闭定时器 beep=1; } a=(65536-music[gequ1[num]])/256; //设置初值 b=(65536-music[gequ1[num]])%256; first=gequ1[num+1]*pai16[gequ1[num]]; } break; case 1: if(gequ2[num]!=0) beep=!beep; if(times<first)//节拍数未到,计数+1 times++; //计时 else { times=0; //节拍清零 num+=2; //下一个音符 if(gequ2[num]==0xff) //结束 { num=0; TR0=0;//关闭定时器 beep=1; } a=(65536-music[gequ2[num]])/256; //设置初值 b=(65536-music[gequ2[num]])%256; first=gequ2[num+1]*pai16[gequ2[num]]; } break; case 2: if(gequ3[num]!=0) beep=!beep; if(times<first)//节拍数未到,计数+1 times++; //计时 else { times=0; //节拍清零 num+=2; //下一个音符 if(gequ3[num]==0xff) //结束 { num=0; TR0=0;//关闭定时器 beep=1; } a=(65536-music[gequ3[num]])/256; //设置初值 b=(65536-music[gequ3[num]])%256; first=gequ3[num+1]*pai16[gequ3[num]]; } } } //定时器1中断 void Timer1() interrupt 3 { if(sec<20)//1s sec++; else { sec=0; if(start) { if(miao>0)//倒计时 miao--; else { if(fen>0) { miao=59; fen--; } else { TR0=1;//启动音乐 start=0;//停止计时 } } } } //显示 disp[3]=miao/10+0x30; disp[4]=miao%10+0x30; if(mode) write_string(1,3,"SET "); else write_string(1,3,"TIME"); write_string(1,7,disp); TH1=0X3C; //定时50ms TL1=0XB0; }

六、全套资料包含

​​

七:项目资源获取

需要完整的资料可以点击下面的名片关注,回复“资料”!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 18:08:12

小猫影视 - 影视播放器

链接&#xff1a;https://pan.quark.cn/s/6eb332dc88cb支持平台&#xff1a;#Windows #macOS #Linux #Android一款影视播放器&#xff0c;支持视频点播&#xff08;VOD&#xff09;和JavaScript扩展源。可以通过简单的操作快速找到并播放自己喜欢的影视内容。支持多种视频格式&…

作者头像 李华
网站建设 2026/8/24 14:33:07

哔哩下载姬DownKyi:专业B站视频管理工具深度体验

哔哩下载姬DownKyi&#xff1a;专业B站视频管理工具深度体验 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09…

作者头像 李华
网站建设 2026/8/23 16:34:07

Shell脚本部署——8day

Shell脚本部署课程目标掌握shell脚本的思路完成shell脚本的编写课程实验shell脚本的思路shell脚本的编写课堂引入部署项目中&#xff0c;有很多都是固定的模式与内容&#xff0c;所有的东西都需要人工去操作的话&#xff0c;成本就比较高&#xff0c;也比较麻烦&#xff0c;能不…

作者头像 李华
网站建设 2026/8/23 18:30:57

AI 自动生成报表

1. AI 生成图表 向上汇报经常需要制作图表&#xff0c;如果没有顺手的工具&#xff0c;可能需要花费大量的时间消耗在报表的制作上。随着AI的迅猛发展&#xff0c;我们通过一个简单的对话来低成本实现报表的生成。 2. 使用到的工具 MCP 平台&#xff1a;https://www.modelscope…

作者头像 李华
网站建设 2026/8/24 3:46:24

Unity学习笔记(十二)碰撞中的刚体和碰撞器

碰撞产生的必要条件 两个物体都有碰撞器&#xff0c;至少有一个物体有刚体刚体1.它就是模拟力的作用2.Mass质量 默认为KG 质量越大 阻性越大3.Drag空气阻力 根据力移动对象时影响对象的空气阻力大小。影响移动&#xff0c;0表示没有空气阻力4.Use Gravity 是否受重力影响5.Angu…

作者头像 李华
网站建设 2026/8/24 12:38:51

微服务架构下的全方位测试策略

微服务架构的测试挑战与机遇随着企业数字化转型加速&#xff0c;微服务架构因其灵活性、可扩展性和技术异构性成为主流。据预测&#xff0c;到2025年&#xff0c;超70%的新建系统将采用此架构。然而&#xff0c;分布式系统带来的服务依赖复杂、部署频繁、故障隔离困难等挑战&am…

作者头像 李华