CD4511及数码管结合显示电路Word文档下载推荐.docx

上传人:b****1 文档编号:1198226 上传时间:2023-04-30 格式:DOCX 页数:22 大小:200.74KB
下载 相关 举报
CD4511及数码管结合显示电路Word文档下载推荐.docx_第1页
第1页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第2页
第2页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第3页
第3页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第4页
第4页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第5页
第5页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第6页
第6页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第7页
第7页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第8页
第8页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第9页
第9页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第10页
第10页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第11页
第11页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第12页
第12页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第13页
第13页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第14页
第14页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第15页
第15页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第16页
第16页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第17页
第17页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第18页
第18页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第19页
第19页 / 共22页
CD4511及数码管结合显示电路Word文档下载推荐.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

CD4511及数码管结合显示电路Word文档下载推荐.docx

《CD4511及数码管结合显示电路Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《CD4511及数码管结合显示电路Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。

CD4511及数码管结合显示电路Word文档下载推荐.docx

LED与LCD的功耗比大约为1:

10,而且更高的刷新速度使得LED在视频方面有更好的性能表现,可提供宽达160°

的视角,故采纳方案一。

数码管驱动

选用CD4511译码驱动芯片。

CD4511能够提供较大的上拉电流,可直接驱动数码管。

利用单片机本身的上拉电阻,尽管外围电路简单,但灌电流和数码管驱动电流不可兼得,即流过数码管电流知足要求,那么灌电流会超出单片机的经受极限;

灌电流在单片机许诺范围内,那么流过数码管电流过小。

故该方案驱动能力较弱。

为使数码管足够亮,选方案一。

三、器件工作原理

AT89S52要紧的性能参数

●8K字节可擦写1000次的在线可编程ISP闪存

●到的工作电源范围

●全静态工作:

0Hz~24MHz

●3级程序存储器加密

●256字节内部RAM

●32条可编程I/O线

●3个16位按时器/计数器

●8个中断源

●UART串行通道

●低功耗空闲方式和掉电方式

●通过中断终止掉电方式

●看门狗按时器

●双数据指针

●灵活的在线编程(字节和页模式)

AT89S52引脚说明

51系列单片机89s52采纳40Pin封装的双列直接DIP结构。

上图是它的引脚配置:

40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

引脚的功能:

电源引脚:

Vcc 40脚 正电源脚,工作电压为5V。

GND 20脚 接地端。

外接晶体引脚:

XTAL218脚,XTAL119脚。

复位:

RST 9脚。

输入输出(I/O)引脚:

39脚-32脚为输入输出脚,称为P0口,是一个8位漏极开路型双向I/O口。

内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。

通常在利历时外接上拉电阻,用来驱动多个数码管。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。

1脚-8脚为输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。

P1口能驱动4个LSTTL负载。

通常在利历时外不需要外接上拉电阻,就能够够直接驱动发光二极管。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

21脚-28脚为输入输出脚,称为P2口,是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。

对内部Flash程序存储器编程时,接收高8位地址和操纵信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的内容在此期间可不能改变。

10脚-17脚为输入输出脚,称为P3口,是一个带内部上拉电阻的8位双向I/O口,P3口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。

对内部Flash程序存储器编程时,接操纵信息。

P1-3端口在做输入利历时,因内部有上接电阻,被外部拉低的引脚会输出必然的电流。

除此之外P3端口还用于一些专门功能,具体请看下表。

P3引脚

兼用功能

串行通讯输入(RXD)

串行通讯输出(TXD)

外部中断0(INT0)

外部中断1(INT1)

定时器0输入(T0)

定时器1输入(T1)

外部数据存储器写选通WR

外部数据存储器写选通RD

其它的操纵或复用引脚:

ALE/PROG:

30脚访问外部存储器时,ALE(地址锁存许诺)的输出用于锁存地址的低位字节。

即便不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6)。

在访问外部数据存储器时,显现一个ALE脉冲。

对Flash存储器编程时,那个引脚用于输入编程脉冲PROG

PSEN:

29脚该引是外部程序存储器的选通信号输出端。

当AT89C51由外部程序存储器取指令或常数时,每一个机械周期输出2个脉冲即两次有效。

但访问外部数据存储器时,将可不能有脉冲输出。

EA/Vpp:

31脚外部访问许诺端。

当该引脚访问外部程序存储器时,应输入低电平。

要使AT89S51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必需维持低电平。

对Flash存储器编程时,用于施加Vpp编程电压。

四、硬件设计

时钟操纵电路由四部份:

复位电路、显示电路、晶振电路和操纵电路组成如以下图所示。

总电路图:

正5V电源直接接到AT89S52的40脚(VCC),20脚(GND)接地。

电路图如下所示。

复位电路

该电路采纳上电自动复位与手动复位结合接到89S52的9脚(RST)。

由一个30uF的电容、一个按键、一个10K的电阻和一个220欧电阻组成。

手动按K5,不管电路处于何种状态,电路都会恢复到初始状态的显示。

显示电路

显示电路部份通过CD4511驱动七段数码管。

CD4511译码驱动芯片能够提供较高的上拉电流,能够直接驱动七段数码管。

三极管能够较为方便的操纵七段数码管。

电路图如以下图所示。

CD4511(引脚图如下所示)

BI:

4脚是消隐输入操纵端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。

LT:

3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。

它要紧用来检测数码管是不是损坏。

LE:

锁定控制端,当LE=0时,允许译码输出。

LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。

D、C、B、A为8421BCD码输入端。

a、b、c、d、e、f、g:

为译码输出端,输出为高电平1有效。

8421BCD码对应的显示见以下图:

数码管

1).数码管引脚图

2).数码管利用方式

LED数码管分共阳型和共阴型两种,那个地址咱们选择七段共阴型数码管。

数码管的a、b、c、d、e、f引脚别离接到CD4511译码驱动芯片对应的引脚。

公共端com别离与连接在P2口的NPN的集电极相连接。

NPN的发射极并联接地。

CD4511对应的引脚ABCD别离连在AT89S52的、、、引脚。

当数码管选通时,通过操纵P0口来实现七段数码管动态显示数据。

三极管

1).三极管引脚图

2).三极管利用方式

单片机灌电流不易过大。

关于数码管每一个位选的灌电流约为10mA左右,六个位选为60mA,达到了单片机端口极限。

可采纳三极管,作为开关管,基极接单片机P2口,集电极接数码管,发射极并联接地,三极管高电平常导通。

导通后集电极电压为。

知足数码管共阴极接地的要求。

晶振电路

18脚(XTAL1)和19脚(XTAL2)外接12MHZ的晶振和两个30PF的电容,震荡频率确实是晶体的固有频率。

操纵电路

本电子钟设计有四个轻触式按键,别离命名为:

K1(设置按钮),K2(分钟加1),K3(小时加1),K4(确信按钮)。

按键电路

五、软件设计

1.软件设计总框图

1)总框图(如图)

2)程序代码详见附录1。

主程序流程图

2.数码管操纵:

1)流程图(如图)。

数码管操纵流程图

3.按时器中断的利用:

按时器中断流程图

六、实习心得(设计实物照片)

通过几周的尽力,感触颇深。

从开始的搜索整理资料到程序在电路板上边良好的运行,期间并非是一帆风顺的。

但咱们克服了重重障碍。

终于完成了时钟操纵器的制作,看着数码管上的时刻一分一秒的跳动,那一刻兴奋地心情无法用语言来表达,只是感觉身上的每一个细胞都充满了活力。

关于电子信息工程专业即将毕业的咱们,本次实训是咱们走入职场之前比较成心义的一次实训。

实训开始时候漫无目的,不明白从何着手,可是随着资料的整理,之间不断地学习,渐渐地完成了电路板的焊接。

本来以为将写好的程序烧到芯片里边,时钟就能够够正常的运行了,可是当我在写程序的时候,才发觉这部份关于电路的调试却是整个设计环节的重中之重。

那个地址边不但涉及到硬件的调试,还有软件的调试。

下面有我的调试记录:

由于按键一端接地,另一端接AT89S52。

按键电路接上拉电阻,接+5V。

可是用万用表检查后发觉按键的引脚接错了。

当更改了按键的引脚连接后,问题解决。

因为六只数码管中只有一只时钟选通,因此疑心是位选环节的错误,通过查验,是三极管的问题。

改换了一个三极管,问题取得解决。

3.放在按时器T1中的按键程序没有运行。

放在按时器T1中的中断程序没有运行,通过检查,发觉没有对按时器T1从头赋初值。

对按时器T1赋初值2ms以后,按键程序得以运行。

随着这次实训的终止,咱们真正明白得了理论联系实践的重要性。

若是空有理论而没有实践,就像一件物品,明白了它的功能,可是不明白如何运用,如此便失去了它有效的价值。

若是空有实践没有理论的支持,就像一辆汽车一直在行驶,却没有前进的方向,继续如此前进,那么前方将会是万丈深渊。

21世纪,是一个飞速进展的年代,需要的是复合型人材。

这就要求咱们既要把握丰硕的理论基础,还要知道如何将它们灵活的运用。

实训尽管终止了,可是要想在本专业有更高更远的进展,那么关于咱们的考验才方才开始。

咱们会不断扩展自己的知识面,尽力的进取,踏踏实实的走好尔后的每一步。

参考文献:

[1]刘建清.51单片机C语言超级入门与视频演练.北京:

电子工业出版社,2020(5).

[2]李朝青.单片机原理及接口技术.北京:

北京航空航天大学出版社,2020(5).

[3]张瑾,张伟,张立宝.Protel99SE入门与提高.北京:

人民邮电出版社,2020

(2).

[4]孙江宏,李良玉.Protel99电路设计与应用.北京:

机械工业出版社,2001

(2).

附件:

附件1:

程序代码

/*****************************************************************************

/Filename:

基于单片机控制的时钟电路

/maindepartment:

数码管显示模块,按键模块,按时器中断模块

/Descriptions:

定时器T0每10ms刷新一次用于产生系统的时基信号

外部中断0,外部中断1和定时器1用于控制按键K1,K2,K3,K4。

K1键按下,时钟走停。

那时钟走停时,按K2键一次分加1,按K3键一次秒加1,按K4键时钟恢复走时

复位按键对时钟进行初始化

/CreatedBy:

/Createddate:

2011-10-30

*****************************************************************************/

#include"

"

#defineucharunsignedchar//uchar为无符号字符型数据

ucharhour=0,minute=0,second=0;

//时钟初始化

ucharsecond_h=0,second_l=0;

//秒的十位、个位

ucharminute_h=0,minute_l=0;

//分的十位、个位

ucharhour_h=0,hour_l=0;

//时的十位、个位

ucharcodeled7[]={0x00,0x08,0x01,0x09,0x02,0x0a,0x03,0x0b,0x04,0x0c};

//1~9的字形码

ucharth=0;

//对定时器0计数

ucharkey=0;

sbitK1=P3^2;

//定义K1按键

sbitK2=P3^3;

//定义K2按键

sbitK3=P3^4;

//定义K3按键

sbitK4=P3^5;

//定义K4按键

bitflag=0;

//当时间为1秒时flag置1

bitK_flag=1;

//按键标志位

voiddelay();

//声明延时函数

/*****************************

>

外部中断0

若是K1键按下时钟走停

*****************************/

voidint_w0()interrupt0

{EX0=0;

if(K_flag==1){TR0=0;

K_flag=0;

}

else{TR0=1;

K_flag=1;

EX0=1;

/********************************

外部中断1

那时钟走停时有K2键按下分钟加1

********************************/

voidint_w1()interrupt2//外部中断1

{

EX1=0;

if(K_flag==0&

&

K2==0)

{delay();

delay();

{while(!

K2);

minute++;

if(minute==60)

{

minute=0;

}

}

EX1=1;

/***************************************

按时器1按时2ms

那时钟走停时有K3键按下小时加1

那时钟走停时有K4键按下时钟恢复走时

****************************************/

voidint1()interrupt3

{TR1=0;

//关闭定时器1

TH1=0xf8;

//对定时器1重新赋值定时2ms

TL1=0x30;

K3==0)//当时钟走停时若K3按下

//去除按键抖动

if(K_flag==0&

K3==0)//确定K3已经按下

K3);

//等待K3键释放

if(hour<

23)

hour++;

elsehour=0;

}

elseif(K_flag==0&

K4==0)//当时钟走停时若K4键按下

{delay();

//去除按键抖动

K4==0)//确定K4已经按下

{

TR0=1;

//时钟恢复走时

TR1=1;

//时钟恢复走时

/********主函数********/

voidmain()

TMOD=0x11;

//定时器初始化

TH0=0xd8;

//定时器0赋初值10ms

TL0=0xf0;

TH1=0xf8;

//定时器1赋初值2ms

TL1=0x30;

EA=1;

//打开总中断

ET0=1;

//定时器0开中断

TR0=1;

//启动定时器0

EX0=1;

//允许外部中断0开中断

IT0=1;

//脉冲触发方式

EX1=1;

//允许外部中断1开中断

IT1=1;

ET1=1;

//定时器1开中断

TR1=1;

//启动定时器1

/****************************

以下是显示部份

****************************/

while

(1)

while(flag==1)//当时间为1秒时

{

if(second<

59)//判断时间是否为1秒

second=second+1;

//如果到了1秒则秒加1

elseif(minute<

59)//判断时间是否为1分

{

second=0;

//如果到了1分则秒归0

minute=minute+1;

//分钟加1

}

elseif(hour<

23)//判断时间是否为1小时

//如果到了则秒归0

minute=0;

//分归0

hour=hour+1;

//小时加1

else

//小时到24后重新计时

hour=0;

flag=0;

P2=0x00;

hour_h=hour/10;

hour_l=hour%10;

P0=led7[hour_h];

//把数据送P0口显示

P2=0x01;

//送P2控制被选取的数码管点亮

P0=led7[hour_l];

P2=0x02;

minute_h=minute/10;

minute_l=minute%10;

P0=led7[minute_h];

P2=0x04;

P0=led7[minute_l];

P2=0x08;

second_h=second/10;

second_l=second%10;

P0=led7[second_h];

P2=0x10;

P0=led7[second_l];

P2=0x20;

/******************************************

按时器0用于产生整个时钟系统的时基信号

按时10ms计数100次即为1s

******************************************/

voidint0()interrupt1

TR0=0;

//关闭定时器0

TH0=0xd8;

//定时10ms

TL0=0xf0;

if(th<

99)//计数100次

th=th+1;

else

th=0;

flag=1;

//当时间为1s时flag置1

TR0=1;

//定时器0重启

/*************************************

以下是延时函数

**************************************/

voiddelay()

inti;

for(i=10;

i>

0;

i--)

_nop_();

附2:

产品利用说明

1.接通电源后,时钟操纵器开始工作。

2.本电子钟设有四个轻触式按键,别离为K1,K2,K3,K4。

K1为设置键,按下后能够停止时钟计时,从而进行时刻设置。

时钟只有按下K1键后才能够调剂时刻,不然按其他键不起作用。

K2键按下一次,分钟加1,K3键按下一次,小时加1。

调剂时刻完成后,按K4键,时钟恢复。

3.若是时钟显现故障,按下复位键,本产品恢复到出厂设置。

附3:

元器件清单

元件名称

型号

数量/个

单片机

AT89S52

1

晶振

12MHZ

电容

30pF

2

电解电容

10μF/10V

电阻

10kΩ

220Ω

5KΩ

8

Ω

6

CD4511

9015

按键

5

7段数码管

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2