博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用51单片机制作的电子时钟
阅读量:6710 次
发布时间:2019-06-25

本文共 2096 字,大约阅读时间需要 6 分钟。

最近研究起来了单片机,用的是国产STC98C52芯片。

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

买了很长时间了可是一直在那里放着,今天重新拿出来写了一段电子时钟的C++程序,利用充电宝供电,当作电子时钟挺不错的。

功能:

    4个七段数码管作为时钟显示的主体两个显示小时,两个显示分钟,8个LED灯作为秒数的闪烁,4个独立按键分别为hour+1,hour+10,minute+1,minute+10。

     查询LED电路,接入端为P1^0到P1^7。

                                      数码管采用了驱动芯片,接入端为P2^0到P2^3。

                                                                             按键的接入端如图所示。

有了各种电路的接入端,我们利用keil进行编程。

/* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:temp.c* 完成时间:2015年05月29日 */  #include 
#define uchar unsigned char sbit P2_0 = P2^0;sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit key1=P3^5;//按键sbit key2=P3^4;sbit key3=P3^3;sbit key4=P3^2;static unsigned char second,minute,hour;unsigned int tcount;unsigned char m;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90};void delay(uchar i){ uchar j,k; for(j=i;j>0;j--) for(k=125;k>0;k--);}void display(){ P0=table[hour/10]; P2_0 = 0; delay(5); P2_0 = 1; P0=(table[hour%10]& 0x7f); P2_1 = 0; delay(5); P2_1 = 1; P0=table[minute/10]; P2_2 = 0; delay(5); P2_2 = 1; P0=table[minute%10]; P2_3 = 0; delay(5); P2_3 = 1; }void main(void){ unsigned int a; TMOD=0x02; TH0=0x06; TL0=0x06; TR0=1; ET0=1; EA=1; while(1) { if(key1==0) { if(key1==0) //确认按键被按下 { while(!key1);//松手检测 hour++; } } if(key2==0) { if(key2==0) { while(!key2); hour=hour+10; } } if(key3==0) { if(key3==0) { while(!key3); minute++; } } if(key4==0) { if(key4==0) { while(!key4); minute=minute+10; } } for(a=100;a>0;a--) { display(); } }} void t0(void) interrupt 1 using 0 { tcount++; if(tcount==4000) {tcount=0; second++; if(second==60) {second=0; minute++; if(minute==60) {minute=0; hour++; if(hour==24) {hour=0; } } } P1=~P1; } }

打包成hex文件,进行烧录。

运行单片机!

本来计划使用小米的盒子当外壳的,后来发现盒子有点小,就先裸机了,反正5V电不着~

@ Mayuko

转载于:https://www.cnblogs.com/mayuko/p/4567484.html

你可能感兴趣的文章
.NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
查看>>
关于Eclipse生成和导入Patch文件.
查看>>
如何使用Photoshop(PS)将图片的底色变为透明
查看>>
IDEA实现序列号接口
查看>>
人件札记:保持高效的办公室环境
查看>>
Mysql中使用流式查询避免数据量过大导致OOM
查看>>
为什么中台是传统企业数字化转型的关键?
查看>>
中国技术开放日专场在美国旧金山隆重开幕
查看>>
从责任界定和问题预警角度 解读全栈溯源对DevOps的价值
查看>>
百度发布开源智能边缘计算平台OpenEdge
查看>>
JavaScript引擎V8 5.1遵循了更多的ECMAScript规范并支持WASM
查看>>
广度、深度、易用性,详解6大机器学习云
查看>>
雇佣和留住开发人员,打造优秀的团队
查看>>
关于5G被激烈讨论的那些争端和冲突
查看>>
vuejs 检视组件结构
查看>>
LeetCode 14_Longest Common Prefix
查看>>
年终总结,程序员票选最喜欢的编程语言花落谁家?
查看>>
linux基础命令介绍六:网络
查看>>
npm 企业版 npm Enterprise 正式发布,主打安全性
查看>>
Jenkins部署码云SpringBoot项目
查看>>