万年历论文文档格式.docx
- 文档编号:3416107
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:30
- 大小:164.71KB
万年历论文文档格式.docx
《万年历论文文档格式.docx》由会员分享,可在线阅读,更多相关《万年历论文文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
二系统原理与硬件设计
本次的设计题目是电子万年历设计,要求实现年、月、日、时、分、秒的正常显示,需要硬件和软件的结合来实现。
本次设计利用STC89C52单片机的功能利用实现的。
,STC89C52单片机计算时间信号后从P0将信号送出经过到LED数码管显示,同时将信号通过P1、P2口送往到数码管位选端。
这样,这样任何一个时刻,都只有一位LED在点亮,也即动态扫描显示方式。
根据设计的要求万年历要显示年、月、日、时、分、秒的显示就需要15个显示数码管。
根据设计要求,用按键来实现时间及闹铃的调整,另外闹铃响的时间长短根据自己需要可自行设定。
在明确本次设计思路之后,画出设计框图,总体框图如图2.1所示。
图2.1设计总体框图
(一)硬件选择
(1)单片机的选择
选用STC89C52系列单片机原理与接口技术单片机,并配备12MHz晶振,复位电路采用上电复位。
(2)显示电路选择,采用74hc573作驱动,共阴极数码管显示。
(3)电源选择
采用直流5V电源供电。
(4)驱动器的选择采用锁存器74hc573。
(二)原理图
(三)STC89C52单片机简介
STC89C52单片机是一种低功耗,高性能的片内含有4KB可编程/擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与STC89C52系列单片机原理与接口技术引脚和指令系统完全兼容。
芯片上的FPEROM允许在线编程或采用通用的非易失存储编程器对存储器重复编程。
1单片机的构成
STC89C52单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件。
2STC89C52单片机性能及特点
(1)与MCS-51微控制器产品系列兼容。
(2)片内有8KB可在线重复编程的快闪擦写存储器(FlashMemory)。
(3)存储器可循环写入/擦除100000次以上。
(4)存储数据保存时间为10年。
(5)工作电压范围:
Vcc可为2.7V~6V。
(6)全静态工作:
可从0HZ到16MHZ。
(7)程序存储器具有3级加密保护。
(8)128﹡8位内部RAM。
(9)32条可编程I/O线。
(10)三个16位定时器/计数器。
(11)中断结构具有5个中断源和2个优先级。
(12)可编程全双工串行通道。
(13)空闲状态维持低功耗和掉电状态保存存储内容。
STC89C52单片机采用40条引脚双列直插式器件,引脚除5V(
40脚)和电源地(
20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,逻辑框图及引脚图分别如图2.4(a)(b)所示
(a)(b)
图2.4STC89C52单片机逻辑图(a)与引脚图(b)
STC89C52单片机的内部硬件结构中除了程序存储器由FPEROM取代了87C51单片机的EPROM外,其余部分完全相同,其管脚说明如下:
(1)VCC:
供电电压
(2)GND:
接地
(3)时钟电路
XTAL1(19脚)——芯片内部振荡电路(单级反相放大器)输入端。
XTAL2(18脚)——芯片内部振荡电路(单级反相放大器)输出端。
(4)I/O接口
P0口(P0.0~P0.7,39~32脚)三态双向口;
P1口(P1.0~P1.7,1~8脚)准双向口;
P2口(P2.0~P2.7,21~28脚)通用I/O接口;
P3口(P3.0~P3.7,10~17脚)双功能口:
P3口也可作为STC89C52系列单片机原理与接口技术的一些特殊功能口使用如:
P3.0RXD(串行输入口);
P3.1TXD(串行输出口);
P3.2/INT0(外部中断0);
P3.3/INT1(外部中断1);
P3.4T0(记时器0外部输入);
P3.5T1(记时器1外部输入);
P3.6/WR(外部数据存储器写选通);
P3.7/RD(外部数据存储器读选通);
(四)LED数码管简介
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2.7(a)是共阴和共阳极数码管的内部电路图,它们的发光原理是一样的,只是它们的电源极性不同而已。
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。
LED数码管的结构图如图2.7(b)所示。
(a)内部结构图
图(b)LED分类结构图和结构图
1LED显示电路
(1)
静态显示电路
LDE显示器工作在静态显示时,其公共阳极(或阴极)接VCC(或GND),一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。
(2)动态显示电路
将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。
而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位的分时选通,即同一时刻只有被选通位是能显示相应的字符,而其他所有位都是熄灭的。
由于人眼有视觉暂留现象,只要每位显示间隔足够短,则会造成多位同时点亮的假象。
这就需要单片机不断地对显示进行控制,CPU需要不断地进行显示刷新。
(五)74HC573简介
74hc573的管脚图如图2.9(b)所示。
(b)
三软件设计
本次设计采用c语言编程,主程序主要实现显示的初始化和调用各子程序工作的功能,时间信息由程序完成。
在显示刷新子程序中采用动态显示方式,按要求将时间信号(年、月、日、时、分、秒)送出以供显示。
(一)主程序
程序功能:
设定数码管的初始状态、不停地调用子程序,使系统循环工作。
并判断按键的状态。
主程序如下所示:
#include<
reg52.h>
#defineuiunsignedint
#defineucunsignedchar
unsignedinti,t;
uca,b,cc,c,d,dd,e,ee,f,ff,g,h,j,jj,k,l,m,n,nn,
o,oo,p,pp,q,qq,r,rr,s,ss,u,uu,v,vv,aa,bb,ccc,
rrr;
uccodebmb[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
uccodebm[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
uccodexq[]={
0x7f,0x06,0x5b,0x4f,0x66,0x6d,0x7d
voidxy();
sbitwei=P2^0;
sbitweii=P2^2;
sbitduan=P2^1;
voidcs()
{
a=0;
b=0;
c=0;
d=0;
e=2;
f=1;
g=0;
h=12;
j=4;
k=0;
l=0;
m=1;
n=0;
o=9;
p=0;
qq=0;
q=0;
rr=0;
r=2;
s=1;
u=1;
v=0;
aa=0;
bb=0;
cc=0;
dd=0;
ee=0;
ff=0;
jj=0;
nn=0;
uu=0;
oo=0;
pp=0;
vv=0;
ss=0;
TMOD=0x11;
TH0=(65536-49954)/256;
TL0=(65536-49954)%256;
TH1=(65536-49954)/256;
TL1=(65536-49954)%256;
EA=1;
EX0=1;
EX1=1;
ET0=1;
ET1=1;
IT0=0;
IT1=0;
TR0=1;
TR1=1;
}
voidmain()
cs();
while
(1)
{
xs();
}
voidxy()//延时函数
uix,y;
for(x=10;
x>
0;
x--)
for(y=10;
y>
y--)
{
}
(二)软件行走时间的子程序
实现年月日时分秒的行走。
软件行走时间子程序如下所示
voidds0()interrupt1
{TH0=(65536-49954)/256;
TL0=(65536-49954)%256;
g++;
if(g==20)
{g=0;
a++;
if(a==10)
a=0;
b++;
if(b==6)
{
b=0;
c++;
if(c==10)
{
c=0;
d++;
if(d==6)
{
d=0;
e++;
h++;
if(h==24)
{
h=0;
a=0;
e=0;
f=0;
j++;
if(j==7)
j=0;
k++;
if(k==l)
{
k=0;
s=0;
m++;
if(m==13)
{
m=1;
u=0;
o++;
if(o==10)
{
o=0;
p++;
if(p==10)
{
p=0;
q++;
if(q==10)
{
q=0;
r++;
}
}
}
}
u++;
if(u==10)
u=0;
n++;
}
s++;
if(s==10)
s=0;
v++;
}
if(e==10)
e=0;
f++;
if(f==3)
f=0;
}
}
}
(三)显示刷新子程序
将数据以动态的方式显示出来。
程序下所示:
voidxs()
t=(r*1000+q*100+p*10+o*1);
m=(10*n+u);
h=(10*f+e);
k=(10*v+s-1);
if(m==1)
l=31;
if(m==2)
{
l=28;
if(t%4==0)
l=29;
if(m==3)
l=31;
if(m==4)
l=30;
if(m==5)
if(m==6)
l=30;
if(m==7)
if(m==8)
if(m==9)
if(m==10)
if(m==11)
if(m==12)
if(ff==0)
P1=0x79;
P0=bm[f];
xy();
if(ee==0)
{P1=0xb9;
P0=bm[e];
if(bb==0)
{P1=0xd9;
P0=0x80;
if(dd==0)
{P1=0xe9;
P0=bm[d];
if(cc==0)
{P1=0xf1;
P0=bm[c];
P1=0xfd;
P0=bmb[b];
P1=0xfb;
P0=bmb[a];
if(jj==0)
{P1=0xf8;
P0=xq[j];
}P1=0xf9;
if(rr==0)
{P2=0x7f;
P0=bm[r];
if(qq==0)
{P2=0xbf;
P0=bm[q];
if(pp==0)
{P2=0xdf;
P0=bm[p];
if(oo==0)
{P2=0xef;
P0=bm[o];
if(nn==0)
{P2=0xf7;
P0=bm[n];
if(uu==0)
{P2=0xfb;
P0=bm[u];
if(vv==0)
{P2=0xfd;
P0=bm[v];
if(ss==0)
{P2=0xfe;
P0=bm[s];
P2=0xff;
(四)调整时间子程序
调整年月日十分及闹铃。
voidxuan()interrupt2
i=20000;
while(i--);
aa++;
if(aa==1)
TR0=0;
if(aa==2)
rr=0;
if(aa==3)
qq=0;
if(aa==4)
pp=0;
if(aa==5)
oo=0;
if(aa==6)
nn=0;
if(aa==7)
uu=0;
if(aa==8)
vv=0;
if(aa==9)
ss=0;
if(aa==10)
jj=0;
if(aa==11)
ff=0;
if(aa==12)
ee=0;
if(aa==13)
dd=0;
if(aa==14)
{cc=0;
voidtiao()interrupt0
r++;
if(r==10)
r=0;
q++;
if(q==10)
q=0;
p++;
if(p==10)
p=0;
o++;
if(o==10)
o=0;
n++;
if(n==2)
n=0;
if(n==0)u=1;
if(n!
=0)u=0;
{
u++;
if(n==0)
{if(u==10)u=1;
if(n==1)
{if(u==3)u=0;
v++;
if(v==3)
{if(m==2)v=0;
if(v==4)
v=0;
if(v==0)s=1;
if(v!
=0)s=0;
s++;
if(v==0)
{if(s==10)s=1;
if(v==1)
{if(s==10)s=0;
if(v==2)
{if(m!
=2){if(s==10)s=0;
}if(m==2){if(t%4==0){if(s==10)s=0;
if(t%4!
=0){if(s==9)s=0;
}}}
{if(m==1){if(s==2)s=0;
}if(m==3){if(s==2)s=0;
}if(m==5){if(s==2)s=0;
if(m==7){if(s==2)s=0;
}if(m==8){if(s==2)s=0;
}if(m==10){if(s==2)s=0;
if(m==12){if(s==2)s=0;
}if(m==4)s=0;
if(m==6)s=0;
if(m==9)s=0;
if(m==11)s=0;
j++;
if(j==7)
j=0;
if(aa==10)
f++;
e=0;
if(f==3)
f=0;
e++;
if(f==0)
{if(e==10)e=0;
if(f==1)
if(f==2)
{if(e==4)e=0;
d++;
if(d==6)
d=0;
c++;
if(c==10)
c=0;
voidds1()interrupt3
TL1=(65536-49954)%256;
if(aa==0)
{
ccc++;
if(ccc==10)
bb=1;
if(ccc==20)
{ccc=0;
rrr++;
if(rrr==5)
rr=0;
if(rrr==10)
{rrr=0;
rr=1;
qq=0;
qq=1;
if(rrr==5)pp=0;
pp=1;
oo=0;
oo=1;
nn=0;
nn=1;
uu=0;
uu=1;
vv=0;
if(rrr=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 论文