尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

基于单片机倒数计数器(LCD,独立按键)系统Proteus仿真(含全部资料)
📅 发布时间:2026/6/20 17:48:58

全套资料包含: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; }

六、全套资料包含

​​

七:项目资源获取

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

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

相关新闻

  • 35岁程序员如何成功转型至大模型领域?
  • Wan2.2-T2V-A14B在动物行为模拟视频中的生物力学合理性
  • PowerShell 到底是什么?三分钟看懂这个 Windows 隐藏神器

最新新闻

  • Pearcleaner终极指南:如何彻底清理macOS应用释放磁盘空间
  • 【防水避坑】套餐式防水服务暗藏猫腻,青岛业主仔细分辨 - 青岛防水品牌推荐
  • 终极免费方案:3分钟为Word安装APA第7版参考文献格式
  • 国内锂电工具品牌视觉设计核心服务商Top5盘点 - 起跑123
  • 考研英语黄皮书pdf|考研英语黄皮书原文外教朗读|考研英语真题手译本电子版
  • Superpowers与ECC:AI工程化两条核心范式深度对比

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号