c51时钟数码管显示流程图_基于单片机的电子时钟程序流程图等资料
3.2流程图
51hei.png (3.52 KB, 下载次数: 0)
2020-11-19 17:36 上传
51hei.png (13.35 KB, 下载次数: 0)
2020-11-19 17:36 上传3.3设计思路
利用单片机16位定时/计数器方式,TMOD为0X01。每1ms计数一次,共计1000次即1s,此时秒单位进一;当秒数值达到60时,秒数值清零,分单位进一;分数值达到60时,时单位进一,分数值清零,以此达到时钟功能。k1控制中断总开关,用来控制计数器工作。按下k1键启动中断,按下k2键关闭,k3键则用来控制秒、分、时的数值清零。
4.总结
本次设计主题为基于单片机设计的时钟电路,体现了AT89C51的简易性、可控性等诸多优良特性。用单片机来设计时钟电路,其优点十分明显,即稳定性高、方便维护和操作简单。但它的缺点也较明显,即难以满足较为复杂的功能。
拿到课题后,我们小组每个成员先上网查阅资料以及翻阅单片机课本,复习本次设计内容,比如七段译码显示器、计数器、振荡器等等。然后根据设计要求画出整体设计框架。做完准备工作后就正式开始设计与绘图。
在软件设计过程中我们遇到了许多困难,其中最主要的困难是设计好按键程序后,进行实际开发板测试时按键无法工作,我们经过多次检查和测试后发现是由于P2口控制数码管位选时连续发送的数据对按键造成了干扰,最后我们更换了接口,解决了这个问题。
我们小组从这次的设计中收获颇多,不仅温习了一遍大二学过的单片机编程知识,而且还加深了对单片机的理解,感受到了设计的乐趣。
附录1.总电路
图 8总电路图2.程序代码
#include
#include
#define uint unsigned int
#define uchar unsigned char
void Delayms(uint x);
sbit L=P2^0;
sbit LA=P2^1;
sbit LB=P2^2;
void Display();
sbit key1=P1^5;
sbit key2=P1^6;
sbit key3=P1^7;
/*位码*/uchar tablew[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
/*位选*/uchar shu[8]={0};
/*共阴极*/
uchar table6[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint aa,bb,cc,dd;
void main()
{
TMOD=0x01;//设置工作方式
TH0=(65536-1000)/256;//设置定时器高八位
TL0=(65536-1000)%256;//设置定时器低八位
ET0=1;//打开定时器T0的中断开关
TR0=1;//启动定时器T0工作
EA=0;//打开总中断开关
while(1)
{
uchar mshi,mge,fshi,fge,sshi,sge;
if(key1==0)
{
EA=1;
}
else if(key2==0)
{
EA=0;
}
else if(key3==0)
{
bb=0;cc=0;dd=0;
}
else;
mshi=bb/10;
mge=bb%10;
if(bb>59)
{
bb=0;
cc++;
}
fshi=cc/10;
fge=cc%10;
if(cc>59)
{
cc=0;
dd++;
}
sshi=dd/10;
sge=dd%10;
if(dd>23)
{
dd=0;
}
shu[7]=table6[mge];
shu[6]=table6[mshi];
shu[5]=0x40;
shu[4]=table6[fge];
shu[3]=table6[fshi];
shu[2]=0x40;
shu[1]=table6[sge];
shu[0]=table6[sshi];
Display();
}
}
void int0_0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
aa++;//1ms加一次
if(aa>1000)
{
aa=0;
bb++;//1S加一次
}
}
void Display()
{
uint i;
for(i=0;i<8;i++)
{
P2=tablew[i];
P0=shu[i];
Delayms(1);
}
}
void Delayms(uint x)
{
uchar j;
while(x--)
{
for(j=0;j<125;j++);
}
}复制代码
c51时钟数码管显示流程图_基于单片机的电子时钟程序流程图等资料相关推荐
- c51时钟数码管显示流程图_基于单片机89C51的数码管显示时钟设计.doc
基于单片机89C51的数码管显示时钟设计 基于单片机的数字时钟 摘 要单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉.但是却很少知道它的内部结构以及工作原理.由单片 ...
- c51时钟数码管显示流程图_基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述...
描述 利用8位数码管显示时间,原理与4位数码管显示的基本一样 仿真图: 程序源代码: 本程序已经通过在线软件仿真和硬件制作. org 0000h ;程序开始入口地址 sjmp main ;跳转至主程序 ...
- c51时钟数码管显示流程图_数码管显示的电子时钟C51程序
/*************************************************************功能: 实现电子时钟显示(C)定义: P2口位选,P0口段选 时间: 201 ...
- c51时钟数码管显示流程图_电子元器件/数码管
数码管 辉光数码管的发展历史 01辉光数码管的出身 在20世纪20年代末和30年代初,发明家们意识到可以将盖斯勒管的放电发光延伸到阴极,进而也就可以塑造阴极的形状来限定发光.例如,使用弯曲的导线作为阴 ...
- 数字电子计算机处理信号shi,余洪伟 基于单片机数字电子时钟设计(led显示).doc...
余洪伟 基于单片机数字电子时钟设计(led显示) 沈阳航空航天大学 课 程 设 计 (论文) 题目 基于单片机的数字电子时钟设计 (LED显示) 班 级 学 号 2013040701060 学 生 姓 ...
- 基于单片机的电子时钟设计(keil+protues仿真,含代码及原理图)
本学期单片机课程要求做课程设计,我选取的课题如下: 基于单片机的电子时钟设计,要求: (1)实时显示当前时间: (2)能够对时间进行设置: (3)包括年月日,小时,分钟,秒. (4)整点提醒功能. 经 ...
- 基于单片机的电子时钟
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87453487 源码获取 摘要 本次设 ...
- 微型计算机系统电子时钟程序设计,基于单片机的电子时钟设计 普通单片机电子时钟的设计的分析...
摘要:随着电子科技的飞速发展,尤其是超大规模集成电路的出现,给我国的经济带来了实质性的改变.其中,对于单片机的使用已经在很多领域都有出现,比如说在工业自动化控制房间.在智能仪器仪表方面以及各种家用电器 ...
- 基于单片机病房呼叫系统数码管显示房号设计-基于单片机工业生产现场的光照强度控制设计-基于单片机多功能智能台灯设计-基于单片机二维码LCD显示设计-基于单片机多功能时钟闹钟万年历控制系统设计【毕设分享】
1641基于单片机病房呼叫系统数码管显示房号设计 设计思路:此设计实现的功能通过按键模拟房号,当按键按下时会将房号编号发送到数目管上进行显示,并通过声光进行提示.包含的电路有:数码管显示电路.按键电路 ...
最新文章
- 【数据结构学习】顺序栈 C语言
- python程序员招聘信息-为什么企业很难招聘到好的python程序员?
- Android studio | From Zero To One ——XML文件中的单行注释与多行注释
- NSUserDefaults的用法(轻量级本地数据存储)
- 将关闭窗口的按钮放在窗口右边
- 基于mycat高可用方案——数据库负载
- 制作网页版电子时钟特效
- yum安装Apache Web Server后各个文件存放位置
- ERP项目实施记录09
- python-excel-openpyxl读取数据---更新完善--1
- ArcGIS导出地图后部分图例不显示
- RDA EQ频响曲线
- X1000 Kernel 3.10 Linux V8.2编译
- js 区分中英文输入法(如中英文括号)
- 开始创建第一个npm的微信小程序项目
- Rails 用 RJS 简单有效的实现页面局部刷新
- 时间复杂度O(1),O(n),O(logn),O(nlogn)的意思
- word里画的流程图怎么全选_Word中绘制流程图的正确姿势,这招大多数人不知道!...
- 蚂蚁金服崔恒斌:金融智能——对话机器人新形态
- 自适应螺旋飞行麻雀搜索算法