单片机电子时钟课程设计报告Word格式文档下载.docx
《单片机电子时钟课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟课程设计报告Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
2、元器件清单
名称
数量
STC89C52单片机
1
12M晶振
PNP9015三极管
2
10k排阻
10k微调电阻
10k电阻
4.7k电阻
Led发光二极管
四角按键
4
蜂鸣器
10uF电容
30pF电容
1602液晶显示器
40脚插座
铜板15cm*15cm
排针和排插
若干
3、各部分功能实现
(1)单片机发送的信号通过程序控制最终在数码管上显示出来。
(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正液晶显示器上显示的时间。
(5)单片机通过控制闹铃电路来完成定时闹钟的功能。
4、STC89C52单片机介绍
STC89C52单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS8位单片机,片内含8kbytes的可反复写的FlashROM和128bytes的RAM,2个16位定时计数器[5]。
STC89C52单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。
这些部件通过内部总线联接起来,构成一个完整的微型计算机。
其管脚图如图所示。
STC89C52单片机管脚结构图
VCC:
电源。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
5、上电按钮复位电路
本设计采用上电按钮复位电路:
首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被电路放电;
按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,单片机芯片正常工作。
其中电阻R2决定了电容充电的时间,R2越大则充电时间长,复位信号从VCC回落到0V的时间也长。
6、晶振电路
本设计晶振电路采用12M的晶振。
晶振的作用是给单片机正常工作提供稳定的时钟信号。
单片机的晶振并不是只能用12M,只要不超过20M就行,在准许的范围内,晶振越大,单片机运行越快,还有用12M的就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M的话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接的是30pF的电容。
机器周期=10*晶振周期=12*系统时钟周期
7.下载端口
设计用到的STC89C52单片机芯片的ISP下载线是通过单片机的TXD,RXD引脚把程序烧进去的。
管脚TXD和RXD用于异步串行通信。
其实STC89C52单片机的ISP下载线就是一个max232芯片连接STC和计算机的串行通信口。
计算机把程序从九针串口送到max232芯片,电平转换后送进单片机的串行口,也就是TXD和RXD。
然后单片机的串行模块把数据送到程序区。
8、1602A液晶显示器
8.1引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表8-1所示:
编号
符号
引脚说明
VSS
电源地
9
D2
数据
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
表8-1:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
10.8.2.31602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:
序号
指令
清显示
光标返回
*
置输入模式
I/D
S
显示开/关控制
D
C
B
光标或字符移位
S/C
R/L
置功能
DL
N
F
置字符发生存贮器地址
字符发生存贮器地址
置数据存贮器地址
显示数据存贮器地址
读忙标志或地址
BF
计数器地址
写数到CGRAM或DDRAM)
要写的数据内容
从CGRAM或DDRAM读数
读出的数据内容
表10-14:
控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
与HD44780相兼容的芯片时序表如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0—D7=数据
写数据
RS=H,R/W=L,D0—D7=数据,E=高脉冲
9、时钟显示校正电路
本设计利用按键开关来校正时钟显示的数字。
当按钮按下时,将在相应的端口输入一个低电平,通过相应的程序来改变时钟显示。
其中S1按键开关用来选择要修改的数字;
S2按键用来增加所选数字的数值;
S3按键用来减少所选数字的数值。
10、蜂鸣器电路
电路接法:
三极管选定PNP型,基极B连接5V电压,发射极E连接一个1K左右的电阻后接I/O口,集电极C连接蜂鸣器后接地。
单片机在复位后的个I/O口是高电平,此时三极管是截止的,编写程序使选定的I/O为低电平,此时三极管导通,导通后蜂鸣器与电源正极连通,构成一个工作回路,从而发出滴滴的响声。
其中电阻R1在电路里起分压限流的作用,PNP三极管起到模拟开关的作用。
11、外接电源电路
外接电源电路用于连接外部5V电源与电子时钟电路,通过自锁开关控制电路的导通与断开,当开关闭合时,电路导通,外部电源给电路正常供电,电子时钟正常工作。
当开关断开时,电路停止工作。
12、总电路原理图
13、程序流程图
软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示
三、设计总结
辛辛苦苦努力了一个月,终于有了成果,把理论变成了现实,出了欣喜外,还充满了成就感。
1实验中遇到的问题及解决方法
实验中遇到了很多意想不到的问题,从一开始的设计原理图,程序的编写到最后的电路板制作,一直都是在发现问题和解决问题中度过。
还好自己一路坚持了下来,把问题一一解决。
设计的时候,程序的编写是比较难的,还要都熬过来了
制作电路板的时候,打孔时要很小心,刚开始打的孔都有点歪,多打的几个孔,才慢慢找到感觉。
在PCB板布线的时候,绕了好多弯,刚开始的时候,元件的位置没摆好,布线的时候,总是会有很多的跳线,布了好几天,元件的位置换了又换,最后才终于找到最佳的布线位置。
如果刚开始的时候,就把元件的位置摆放好,跟原理图的相对位置一致,就不会有这么多的麻烦了。
其实这些都不是问题,只要我们有耐心,够细心,都可以把它们解决。
2设计体会
以前看别人的一个电子表卖十几块钱,心里面有点愤愤不平,现在,自己做过一个电子钟,才发现,其中的不容易,还有艰辛。
其实做其他的事情也是一样,都会经过很多的困难,才能成功。
突然想起一句话“不经历风雨,怎么见彩虹”。
其实想想,这一个月,也留下了很多美好的回忆。
还记得那个晚上通宵达旦仿真,不成功,誓不睡觉,很困了,都还在弄着。
却当仿真成功时,没有一丝睡意,有的只是心中的喜悦
还记得那天废寝忘食打孔和焊板,还记得当数码管终于亮起来那一刻……
通过这次设计让我真正体会到了,有付出,才会有收获。
四、参考文献
[1]谢自美.电子线路设计·
实验·
测试[M].武汉:
华中理工大学出版社,1992.
[2]何立民.单片机应用系统设计[M].北京:
北京航空航天大学出版社,1993.
[3]楼然笛.单片机开发[M].北京:
人民邮电出版社,1994.
[4]付家才.单片机控制工程实践技术[M].北京:
化学工业出版社2004.3.
[5]李光才.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社2004.
[6]朱定华.单片机原理及接口技术实验[M].北京:
北方交通大学出版社2002.11.
[7]刘湘涛.江世明.单片机原理与应用[M].北京:
电子工业出版社,2006.