- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于STC89C52RC控制数码管设计
基于STC89C52RC控制数码管设计
摘要:本文基于STC89C52RC单片机P2口应用为核心,实现单片机对数码管的控制。数码管采用共阳型结构,利用锁存器U2控制数码管的位选端,利用锁存器U3对多个数码管的段选端控制,达到节省单片机I/O口的目的。用KeiluVision4软件进行程序编译和调试。
关键字:STC89C52RC;共阳型七段数码管;锁存器
引言
随着科技的飞跃发展,单片机的应用逐渐增多,以单片机为核心的电器产品已经进入寻常家庭,例如:电冰箱,空调,洗衣机,电磁炉,微波炉等,大多数家用电器带有数字显示功能,例如:电冰箱和空调的温度设置,电磁炉的温度显示等。数字显示主要依靠数码管,数码管需要硬件电路和驱动程序下才能完成我们预设的要求。
1 单片机及其工作电路
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),单片机芯片常用英文字母的缩写MCU 表示单片机,单片机又称单片微控制器[1]。单片机由程序存储器,数据存储器,定时计数器,中断系统,并行I/O口,串行通信口等组成。单片机利用I/O口对外设进行控制,本文利用P2和P3口对数码管和锁存器进行控制。STC89C52RC单片机是深圳宏晶科技生产的8051内核,具有8K Flash程序存储器和512字节的RAM数据存储器,指令代码完全兼容传统8051单片机。图2是一款双列直插式DIP封装单片机。
2 数码管的工作原理
数字显示最常用的是七段数码管,七段数码管通常由七个条形的发光二极管和一个小数点组成。按顺时针方向,七个发光二极管成为a、b、c、d、e、f、g。按照七个发光二极管的公共端不同,数码管有共阳极和共阴极两种。由于本文采用共阳型七段数码管,所以只介绍共阳型七段数码管的结构和用法,如图1所示,发光二极管有极性之分,当正极电压大于负极电压时,有电流通过,发光二极管的电流一般为3mA―10 mA。让七个二极管中的若干个发光,可以显示从0到9和a、b、c、d、e字母。本文采用5161共阳型数码管。
图1
3 74HC573锁存器工作原理
74HC573是一款高速CMOS器件,由八路D 型透明锁存器构成,含有8个输入端,8个输出端,锁存使能端(LE)和输出使能端(OE)。8个锁存器保持各自的D 型输入。8个锁存器同时连接到锁存使能(LE)端和一个输出使能(OE)端。当LE为高电平(1)和OE为低电平(0)时,数据直接从输入端(Dn)输入到锁存器的输出端(Qn),也就是说,锁存器的输出端的状态将会随着输入端的输入状态的变化而改变。当OE为高时,无论LE是高电平还是低电平,输出进入高阻态。
4电路图的构成和程序设计
在Proteus软件中设计电路图,两个30pF无极性电容和一个12MHz晶振构成时钟电路。一个10uF极性电容和10K电阻构成复位电路。2个74HC573锁存器控制数码管,开关一端直接与地连接另一端与INTO端连接和一个10K电阻构成中断系统。电路图如图2所示。在KeiluVision4软件进行程序编译,在外部中断没有发生时,即图中的按钮开关没有被按下,设计的程序使数码管从右向左依次显示1、2、3,并且延时1秒。当开关按钮被按下,P3.2低电平,发生外部中断,3个数码管同时显示0,并且延时2秒,然后返回中断点,继续显示1、2、3。程序如下所示。
图2 数码管控制设计
#include //单片机的头文件
#define uint unsigned int
#define uchar unsigned char
sbit wei=P3^1; sbit duan=P3^0;
uchar code tablewe[]={0X01,0x02,0x04};
uchar code tableduan[]={0xf9,0xa4,0xb0};
void delay(uint z); void delay 1(uint s);
uint nwe,nduan;
void main() //主函数
{ EA=1; EX0=1; nwe=0; nduan=0;
while(1)
{wei=1;P2=tablewe[nwe];wei=0; nwe++;
if(nwe==3) nwe=0;
duan=1; P2=tableduan[nduan];
duan=0; nduan++;
if(nduan==3)
nduan=0;
delay(1000); //延时1秒
}
}
void delay(uint z) //延时函数
{ uint
您可能关注的文档
- 基于Solidworks中小型钣金企业产品设计库建立.doc
- 基于SolidWorks二次开发自动建模技术研究.doc
- 基于Solidworks二次开发组合铣鼓轮两斜面夹具设计研究.doc
- 基于SolidWorks二次开发渐开线齿轮参数建模系统.doc
- 基于SolidWorks偏心轴配重.doc
- 基于SolidWorks列车座椅舒适度设计与改进.doc
- 基于SolidWorks和ANSYS大型全回转架梁起重机结构强度分析.doc
- 基于SOLIDWORKS和系列零件设计表三维标准件库构建方法.doc
- 基于SolidWorks圆柱齿轮减速器三维设计及动态仿真.doc
- 基于SolidWorks多功能烟草移栽机结构设计.doc
文档评论(0)