基于单片机的数字时钟之C51单片机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东大学威海分校
基于单片机的数字时钟
C51单片机
王若愚
学号200800800307
2010/7/18
概述
AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4K的可编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
功能特性概述
AT89S51提供以下标准功能:4K字节闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中到内容,但振荡器停止工作并禁止其它所有工作部件直到下一个硬件复位。
AT89S51硬件电路原理
复位及振荡电路
复位电路由按键复位和上电复位两部分组成,如图2所示。AT89S系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC 充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为8.2K和10uF。
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
MCS51 LITE使用22.1184MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,
所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
复位及振荡电路
RS232串口电路
RS232串口电路使用MAX232CPE 作为电平转换芯片,并通过套件提供的串口电缆连接到计算机背后的COM 口(9针D 型口),用于MCS51 LITE 与上位机通信以及和其他串口设备的数据交互。 需要注意的是这里在电路板上对TxD 和RxD 进行了交叉,对应使用的DB9接头类型为Female ,使用的线缆为延长线,也叫做直连线,线缆一头为Female 一头为Male 。如果电路板上不将RxD 和TxD 交叉,就应该采用Male 类型的接头和交叉线缆(两头均为Female)连接。
串口电平转换电路
八段数码管显示电路
MCS51 LITE 包含两个共阳8段数码管显示器,使用动态扫描方式驱动。共阳极作为位选有PNP 三极管驱动连接在P1.0和P1.1口,八位段选在通过330限流后连接在单片机的口上。由于数码管是共阳的,所以当驱动信号为时对应的数码管才点亮。
数码管显示电路
按键及LED 电路
开发板上提供了8个独立LED ,由P2口控制,同样采用共阳级接法,所以只有当P2口输
出低电平时LED才会点亮。这样做的主要原因是因为单片机的低电平驱动能力高电平强。
4个独立按键使用10K电阻上拉后连接到单片机的P3.2-P3.5口,中间串接的330电阻起到限流作用。按键没有按下时口线上因为上拉而呈现高电平,当某个按键按下时对应口线会被连接到而变成低电平。
另外由于LED的反向截止特性以及按键上拉较弱,P2口及P3.2-P3.5口亦可以兼做通用IO 口使用,用来连接外部器件。MCS51 Lite板上也提供了插针方便连接。
按键及LED显示电路
数字时钟设计
实验任务
(1.开机时,显示12:00:00的时间开始计时;
(2.P0.0/AD0控制“秒”的调整,每按一次加1秒;
(3.P0.1/AD1控制“分”的调整,每按一次加1分;
(4.P0.2/AD2控制“时”的调整,每按一次加1个小时;
系统板上硬件连线
(1.把“单片机系统”区域中的P0.0-P0.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;
(2.把“单片机系统”区域中的P1.0、p1.1、p2.3、p2.6端口分别连接到数码管的段选位A1-A4上。
(3.把“单片机系统”区域中的P3.2-P3.5端口分别用导线连接到“独立式键盘”区域中的K1—K4端口上;
C51的其他功能的实现
本实验板采用的是一个4位八段数码管,如果在自主设计区域加几块点阵就可以按意愿显示一定的图案,如果加上液晶,可以扩充显示信息的容量。
开发板有转换速度可达到17us 的8位AD转换器TLC549和10位的DA转换器TLC5615。可以做成数字电压或者是数字温度计。
单片机来产生不同的频率非常方便,不同频率对应着不同的音阶,对于不同的节拍(即不同音阶之间的间隔)我们也可以用单片机的定时/计数器来完成。这样就可以用单片机做一个电子琴。
心得总结
对于开发板的焊接工作较为容易,但是仍要注意芯片的焊接方向是否正确,以及电容的正负极是否反向等。编程可以使用C语言,也可使用汇编语言,但是较为难,需要对板子的整体结构和功能有所了解,并且需要一定的基础。
通过这次实践学习,基本掌握了一些单片机的原理及使用方法,为以后的学习奠定了基础。
附录
START: MOV SECOND,#00H
MOV MINITE,#00H
MOV HOUR,#12
MOV DISPBIT,#00H
MOV T2SCNTA,#00H
MOV T2SCNTB,#00H
MOV TEMP,#0FEH
LCALL DISP
MOV TMOD,#01H
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT: JB SECONDK,NK1
LCALL DELY10MS
JB SECONDK,NK1
INC SECOND
MOV A,SECOND
CJNE A,#60,NS60
MOV SECOND,#00H
NS60: LCALL DISP
JNB SECONDK,$
NK1: JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
INC MINITE
MOV A,MINITE
CJNE A,#60,NM60
MOV MINITE,#00H
NM60: LCALL DISP
JNB MINITEK,$
NK2: JB HOURK,NK3
LCALL DELY10MS
JB HOURK,NK3
INC HOUR
MOV A,HOUR
CJNE A,#24,NH24
MOV HOUR,#00H
NH24: LCALL DISP
JNB HOURK,$
NK3: LJMP WT
DELY10MS:
MOV R6,#10
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DISP:
MOV A,#DISPBUF
ADD A,#8
DEC A
MOV R1,A
MOV A,HOUR
MOV B,#10
DIV AB
MOV @R1,A
DEC R1