当前位置:首页 > 单片机 > 单片机
[导读]一:电路原理和器件选择制作电路:单片机(AT89S52)实现多功能数字钟性能指标:该数字钟实现时钟运行,调整,倒计时,秒表功能,且精确度经调试一天的误差在2S内。实现原理:利用单片机定时器及计数器产生定时效果通过

一:电路原理和器件选择

制作电路:单片机(AT89S52)实现多功能数字钟

性能指标:该数字钟实现时钟运行,调整,倒计时,秒表功能,且精确度经调试一天的误差在2S内。

实现原理:利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

电路主要模块及原理图:

1.数码显示硬件驱动

数码管驱动电路

2.单片机最小系统:

单片机最小系统

3.LED及单片机电源原理图

LED及单片机电源

4.外部控制状态输入模块原理图

外部控制状态输入模块原理图

主要元器件选择:

单片机:AT89S52采用市场上比较常用的AT89S52,这里采用AT89S52而不是AT89S51是为了最大限度减小误差,因为要实现多功能(例如秒表,时钟,倒计时)为了相互之间不干扰而要用到3个定时/计数器,而51系列只有2个,而52系列有3个,故采用52系列

三极管:用来进行数码管显示的位选,这里采用PNP管

数码管:采用共阳级四位数码管

晶振:采用的是11.0592MHZ的晶振

电源部分:采用5V电压供电,采用的是L7805稳压芯片供电(加滤波)

电阻:大部分时限流电阻,阻值为4.7K或10K,1K

端口分配及连接:

P0:LED数码管显示内容通过P1口从单片机传送到数码管

P2.4-P2.7:数码管位选控制端口

P2.0-P2.3:分别连接开关K0,K1,K2,K3通过不同的组合实现外部控制程序状态

P1.0:蜂鸣器,倒计时完毕产生鸣响

P1.2-P1.5:四个发光二极管,显示当前时钟状态

完整的源程序如下:

附程序源代码及注释

#include

#include

#define uint unsigned int

#define uchar unsigned char

/*定义P2口各管脚*/

sbit K0=P2^2;

sbit K1=P2^1;

sbit K2=P2^0;

sbit K3=P2^3;

sbit D0=P2^4;

sbit D1=P2^5;

sbit D2=P2^6;

sbit D3=P2^7;

/*定义P1口各管脚*/

sbit beep=P1^0;

sbit L0=P1^5;

sbit L1=P1^4;

sbit L2=P1^3;

sbit L3=P1^2;

uchar data BUFFER[4]={0,0,0,0}; //显示缓冲区(依次从低位到高位,共四位数码管)

uchar data CLOCK[4]={0,0,0,0}; //存放时钟时间(依次是百分秒,秒,分,时)

uchar data SECOND[3]={0,0,0}; //存放秒表时间(依次时百分秒,秒,分)

uchar data SEVER[4]={0,0,0,0}; //存放倒计时时间(依次是百分秒,秒,分,时)

/*定义程序运行状态*/

uchar data STATE=0;

/*STATE=0;时钟运行*/

/*STATE=1;时钟分调整*/

/*STATE=2;未定义状态,可添加*/

/*STATE=3;时钟时调整*/

/*STATE=4;倒计时分调整*/

/*STATE=5;倒计时时调整*/

/*STATE=6;秒表*/

/*STATE=7;倒计时运行*/

/*定义辅助计时全局变量*/

uchar m=60;

/*共阳数码管显示"0"-"9","-" */

uchar code TABLE[]={0xC0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98,0xbf};

/*自定义子函数*/

void display(); //显示函数

void delay(); //显示延时函数

void intsvr(); //调整时间时加1子函数

void delay10ms(); //延时函数

/*主函数体*/

void main(void)

{

EA=1;ET0=1; //开总中断源,开T0中断

TMOD=0x61; //T1方式2计数,T0方式1计时

TH0=-9460/256;TL0=-9460%256; //初始化计数器初值

TH1=0xff;TL1=0xff;

T2CON=0;TH2=-9452/256;TL2=-9452%256;

K0=1;K1=1;K2=1; //初始化控制状态位

STATE=P2&0x07;

for(;;)

{

switch(STATE)

{

case 1: //时钟分调整程序

{

TR0=0;ET0=0;EX0=0;TR2=0; //关闭定时器,时钟停止运行,同时关闭外中断IT0

L3=0;L1=0;L2=0;L0=1;

intsvr(); //调用加1函数

BUFFER[0]=CLOCK[2]%10; //数码管显示分钟个位

BUFFER[1]=CLOCK[2]/10; //数码管显示分钟十位

BUFFER[2]=10; //显示"-"

BUFFER[3]=10; //显示"-"

}break;

case 3: //时钟时调整程序

{

TR0=0;ET0=0;EX0=0;TR2=0; //关闭定时器,时钟停止运行

L3=0;L1=0;L2=0;L0=1;

intsvr(); //调用加1函数

BUFFER[0]=CLOCK[2]%10; //数码管显示分钟个位

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭