- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机时钟设计资料.doc
单片机时钟设计报告
院系:
姓名:
学号:
班级:
日期:2012/11/20
摘要
该课程设计是利用STC89C52单片机内部的定时器/计数器、中断系统、以及键盘和LED显示器等部件,设计一个单片机电子时钟。设计的电子时钟通过LED显示器显示,并能通过按键实现时间的设置和启动控制。
目录
设计原理
1.1 软件原理……………………1
1.2 硬件原理……………………1
二、元件的使用说明
2.1 STC89C52芯片………………1
2.2 按键键盘……………………2
1602液晶屏………………3
三、程序的设计
3.1 时钟程序……………………4
3.2 程序说明……………………12
3.3 实物图………………………13
四、总结心得体会……………………14
设计原理
1.1软件原理
软时钟是利用单片机内部的定时器/计数器来实现的,他的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方式,对机器周期计数形成基准时间(如10ms),然后用另一个定时器/计数器或者软件计数的方法对基准时间计数形成秒(对10ms计数100次),秒记60次形成分,分记60次形成小时,小时记24次则记满一天,最后通过LCD液晶屏把他们的内容在相应位置显示出来。
1.2硬件原理
硬件主要包括单片机芯片我用的是STC89C52、1602LCD液晶屏、按键开关电路。系统的时钟采用的12MHz的晶振,机器周期也就为1us。
二、元件的使用说明
2.1 STC89C52芯片
stc89c52具有以下标准功能: 8k字节flash,256字节ram, 32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,stc89c52可降至0hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8k字节在系统可编程 flash。(stc89c52和at89c52都通用,这里电路图就用at89c52了,就不做过多的介绍了)
2.2按键键盘
这个是用跳线来切换独立按键或者矩阵键盘的,因为实验只用了三个按键,所以将跳线接到1,2位置变成独立键盘使用。即对应的口为P3^0,P3^1,P3^2,P3^3这几个口来控制的。
2.3 1602液晶屏
1602采用标准的16脚接口,其中:
第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令第7~14脚:D0~D7为8位双向数据线第15~16脚:空脚
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^4; /*数据、命令选择端*/
sbit rw=P2^5; /*读写选择端*/
sbit en=P2^6; /*使能信号*/
sbit key1=P3^0; /*键盘*/
sbit key2=P3^1;
sbit key3=P3^2;
uchar count,miao,fen,shi,key1num;
void delay(uchar ms) /*延时程序 取决于ms大小*/
{
uchar x,y;
for(x=ms;x0;x--)
for(y=110;y0;y--);
}
void writecom(uchar com) /*写液晶命令函数*/
{
rs=0;
rw=0;
en=0;
delay(5);
P0=com; /*送入命令*/
delay(5);
en=1;
delay(5);
en=0;
}
void writedata(uchar date) /*写液晶数据函数*/
{
rs=1;
rw=0;
en=0;
delay(5);
P0=date; /*送入数据*
文档评论(0)