单片机数字时钟课程设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
单片机数字时钟设计
目录
1.引言??????????????????????????????????????????????????????????2
2.关键词????????????????????????????????????????????????????????2
3.内容摘要??????????????????????????????????????????????????????2
4.设计内容??????????????????????????????????????????????????????2
4.1任务
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
??????????????????????????????????????????????????????2
4.2设计思路电路原理框图????????????????????????????????????????3
4.3软件设计方面????????????????????????????????????????????????4
4.4硬件设计方面????????????????????????????????????????????????4
5主要元器件的概述??????????????????????????????????????????????4
6.仿真实现?????????????????????????????????????????????????????7
6.1引脚连接(电路连接图)???????????????????????????????????7
6.2仿真结果(电路原理图)???????????????????????????????????8
6.3 PCB图??????????????????????????????????????????????????9
6.4实验操作????????????????????????????????????????????????9 7.元件清单?????????????????????????????????????????????????????10
8.程序附录?????????????????????????????????????????????????????13
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
??????????????????????????????????????????????????????????20
参考文献??????????????????????????????????????????????????????20
1
【引言】 高精度的计时工具大多数都使用了石英晶体振荡器~由于电子钟、石英表、石英钟都采用了石英技术~因此走时精度高、稳定性好、使用方便、不需要经常调校。数字电子时钟~自从它发明的那天起~就成为人类的朋友~是人们日常生活中必不可少的必需品~广泛用于个人家庭以及车站、航站、剧院、办公室等公共场所~给人们的生活、学习、工作、娱乐带来极大的方便。但随着时间的推移~科学技术的不断发展~生活节奏越来越快~竞争日益激烈~人们对时间计量的精度要求越来越高~应用越来越广。
【内容摘要】 本实验采用LCD液晶屏作为显示系统~以STC89C51单片机为核心~由液晶显示屏~键盘~电容电阻~晶振等元器件组成。所组成的模块能够实验时~分~秒的数据显示~通过程序设计运用四个按键SB0~SB1~ SB2~ SB3能够实现对数字时钟时间的设置和调整。本实验将写好的软件烧录到单片机中~通过单片机来实现~是实验的电路图更加简单明了~系统稳定性大大提高。
【关键词】 单片机,数字时钟,中断,定时,汇编
任务书
设计题目:单片机数字时钟设计
主要内容与目标:
1:通过单片机内定时器控制走时,准确持续走时,调时不影响走时;
2:在LCD上显示时,分,秒;
3:通过五个按键能够对时间进行设定和调整。
具有的设计基本条件:
1:PC机一台;
2:STC89C51单片机一块;
3:Keil C调试环境、Proteus仿真软件,Protel画图
软件。
计划设计进程:
1:明确课题对程序功能,运算精度等方面的要求及硬件条件
2:把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。
3:编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程
2
序
4:对程序进行汇编,调试和修改,直到程序运行结果正确为止。
5:购买器材,连接、制作硬件;
6:将软件功能在硬件上得到实现,做出数字钟实物。
设计思路电路原理框图:
初始化
LCD显示赋值
时钟芯片赋初值
是
定闹钟程序 键按下
否
取时钟
送显示
.
3
软件设计方面:
1:采用模块化程序结构设计软件,首先将整个软件分成若干功能模块; 2:根据设计原理图编写程序;
3:通过keil软件编写调试程序;
4:与硬件一起联调,最后完成全部调试工作。
硬件设计方面:
1:将整个硬件系统划分为若干单元电路,绘出整个逻辑电路,注明单元电路元件接口信号;
2:完成各单元电路设计,包括选择各类元器件和电路板设计。
主要元件概述:
单片机STC89C52概述
实验用到的引脚功能
1:电源
(1) VCC-芯片电源,接+5V
(2) VSS-接地端
2:时钟XTAL1,XTAL2-晶体振荡电路反向输入端和输出端。
3:P0口:接LCD进行数据显示
P2口:接LCD控制
P3口:接按键
REST功能:复位信号输入端
4
单片机引脚图:
1602液晶模块概述:
主要技术参数
显示容量:16*2个字符
芯片工作电压:4.5~5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压(5.0V)
1602各引脚功能:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接
5
地电源时对比度最高,本实验中通过使用一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚,可以用来接背光。(15脚接正极,16脚接负极) 1602信号真值表
RS RW E 功能 0 0 下降沿 写指令代码 0 1 高电平 读忙标志和
AC值 1 0 下降沿 写数据 1 1 高电平 读数据
6
仿真实现:
电路原理图:
7
仿真效果图:
8
PCB图:
实验操作:
本时钟设置有五个按键,其中S1为复位键,S2为调时移位键,S3为移
位+,S4为移位-,S5为退出,当需要调时时,摁下S2,可以调分,再
摁下S2就可以调小时,分别用S3和S4键来调整时间的加减,调完后
摁S5退出
9
元件清单:
元件名称: 数量:
STC89C51 1块
LCD1602 1块
按键 5个
瓷片电容22pF 2个
电解电容10uF 1个
9排阻 1个 14脚单排插座 1个 1个
DIP40插座 1个
12MHz晶振 1个
可调电阻 1个
10K电阻 1个
10
程序附录:
COM EQU 50H ;LCD指令寄存器
DAT EQU 51H ;LCD数据寄存器
RS EQU P2.4 ;LCD寄存器选择信号
RW EQU P2.5 ;LCD读/写选择信号
E EQU P2.6 ;LCD使能信号
NUM EQU 20H;中断次数
SEC EQU 21H;秒
MIN EQU 22H;分
HOU EQU 23H;时
YIW EQU 27H;移位数单元
HOU1 EQU 28H;小时的十位
HOU0 EQU 29H;小时的个位
MIN1 EQU 2BH;分钟的十位
MIN0 EQU 2CH;分钟的个位
SEC1 EQU 2EH;秒的十位
SEC0 EQU 2FH;秒的个位
;-----------------------------------------------
;-------------主程序开始------------------------
ORG 0000H
LJMP MAIN
ORG 000BH ;定时器T0中断入口地址
AJMP TIME ;跳转到中断服务程序
ORG 0030H
MAIN:
MOV SP,#60H
LCALL INT ;调用LCD间接控制方式下的初始化子程序
MOV COM,#01H;LCD清0命令
LCALL PR1 ;调用写命令字程序
MOV COM,#06H;输入方式命令,光标右移
LCALL PR1
MOV R2,#10H ;共显示 16个字符 00010000b
MOV R3,#00H
11
MOV 20H,#20H ;中断次数
MOV 21H,#55H ;秒
MOV 22H,#59H ;分
MOV 23H,#23H ;时
MOV 27H,#00H ;移位数单元
MOV IP,#02H ;设定PT0(定时器0中断优先级设定位)为高优先级,即PT0=1
MOV IE,#82H ;总禁止位开EA=1.定时器0溢出中断允许位ET0,1.
MOV TMOD,#01H ;设定定时器T0工作方式1(GATE=0,C/T=0,M1=0,M0=1)
MOV TL0,#0B0H ;定时器的专用寄存器(SFR)TL0,指定时器T0的低字节
MOV TH0,#3CH ;定时器的专用寄存器(SFR)TH0,指定时器T0的高字节
SETB TR0;TR0(TCON.4),定时器0运行控制位,由软件置位/复位来开启和关闭定时器/计数器0
DISP:
LCALL FORMAT
MOV COM,#80H;设置DDRAM地址,首地址为 第一行 第一个字符的地址 80H
LCALL PR1
MOV 2AH,#':'
MOV 2DH,#':'
MOV R0,#HOU1
MOV R1,#08H
TDIS:;显示时间
MOV A,@R0
CJNE A,#':',GOADDT
JMP OUTT
GOADDT: ADD A,#30H
OUTT: MOV DAT,A
LCALL PR2
INC R0
DJNZ R1,TDIS
12
MOV COM,#0C0H;设置DDRAM地址,首地址为 第一行 第一个字符的
地址 xxH
LCALL PR1
MOV 32H,#'-'
MOV 35H,#'-'
MOV R1,#08H
LJMP DISP
FORMAT:;将时间数据格式化
MOV A,SEC ;处理秒SEC-->SEC1,SEC0
ANL A,#0FH;
MOV SEC0,A
MOV A,21H
ANL A,#0F0H;
SWAP A;高4位和低4位互换
MOV SEC1,A;秒的十位
MOV A,MIN ;处理分钟MIN-->MIN1,MIN0
ANL A,#0FH
MOV MIN0,A ;分的个位
MOV A,22H
ANL A,#0F0H
SWAP A
MOV MIN1,A ;分的十位
MOV A,HOU ;处理小时HOU-->HOU1,HOU0
ANL A,#0FH
MOV HOU0,A
MOV A,23H
ANL A,#0F0H
SWAP A
MOV HOU1,A
RET
13
TIME:
PUSH ACC ;保护现场
PUSH PSW
MOV TL0,#0B0H ;赋定时初值
MOV TH0,#3CH
LCALL FUNTION
INC NUM ;中断次数,满20次加,
MOV A,NUM
CJNE A,#20,RETI1
MOV 20H,#00H ;一秒钟时间到,中断次数清零
MOV A,SEC
ADD A,#01H ;秒钟加一
DA A
MOV SEC,A
CJNE A,#60H,RETI1
MOV SEC,#00H ;一分钟时间到 ,秒清零
MOV A,MIN
ADD A,#01H ;分钟加一
DA A
MOV MIN,A
CJNE A,#60H,RETI1
MOV MIN,#00H ;一小时时间到 ,分清零
MOV A,HOU ;小时加一
ADD A,#01H
DA A
MOV HOU,A
CJNE A,#24H,RETI1
MOV HOU,#00H ;到时间达到24小时,小时清零.
RETI1:
POP PSW ;恢复现场
POP ACC
RETI ;中断返回
14
NOP
NOP
;-----------按键判断子程序------------------------
;子程序名:FUNTION
;--------------------------------------------------
FUNTION:
JNB P3.0,FUN1;判断移位键是否按下,如按下跳到FUN1,没按判断27H
是否为0
MOV A,27H
CJNE A,#00H,FUN2;不为零判断27H是否为1
RET
FUN1: LCALL DELAY0
MOV A,27H
ADD A,#01H
DA A
MOV 27H,A
CLR C
MOV A,27H
MOV B,#06H
SUBB A,B
JC FUN2
MOV 27H,#00H
RET
FUN2: MOV A,27H
CJNE A,#01H,JUD2;判断27H是否等于2
JB P3.1,DEC1 ;判断加法按键是否按下,按下22H加1,不按下判断
减是否按下
LCALL DELAY0
MOV A,22H
ADD A,#01H
DA A
MOV 22H,A
;判断分钟是否大于60,如果大于60就清零
CLR C
MOV A,22H
MOV B,#60H
SUBB A,B
15
JC EXIT2
MOV 22H,#00H
JMP EXIT2
DEC1:;判断减法按键是否按下
JB P3.2,EXIT2
DEC 22H
LCALL DELAY0
;判断分是否小于零,如果小于零就变59
MOV A,22H
CJNE A,#0FFH,SU1
MOV 22H,#59H
JMP EXIT2 SU1: ANL A,#0FH
CJNE A,#0FH,EXIT2
ANL 22H,#0F0H
XRL 22H,#09H
JMP EXIT2
JUD2:
CJNE A,#02H,EXIT;判断27H是否等于3
JB P3.1,DEC2 ;判断加是否按下,按下23H加1,不按下判断减是否
按下
LCALL DELAY0
MOV A,23H
ADD A,#01H
DA A
MOV 23H,A
;判断小时是否大于24,如果大于24就清零
CLR C
MOV A,23H
MOV B,#25H
SUBB A,B
JC EXIT2
MOV 23H,#00H
JMP EXIT2
EXIT2: JMP EXIT
DEC2:;判断减是否按下
JB P3.2,EXIT
DEC 23H
16
DA A
LCALL DELAY0
;判断小时是否小于零,如果小于零就变23
MOV A,23H
CJNE A,#0FFH,SU2
MOV 23H,#23H
JMP EXIT
SU2: ANL A,#0FH
CJNE A,#0FH,EXIT
ANL 23H,#0F0H
XRL 23H,#09H
JMP EXIT
EXIT: JNB P3.3,FUN4;如果EXIT按下,跳到FUN4 ,27H清零
RET
FUN4: MOV 27H,#00H
RET
;------------------------------------------------------------------
;------------LCD间接控制方式下的初始化子程序-----------------------
;------------------------------------------------------------------
INT:
LCALL DELAY
MOV P1,#38H;工作方式设置指令代码
CLR RS
CLR RW
MOV R2,#03;循环量=3
INTT1: SETB E
CLR E
DJNZ R2,INTT1
MOV P1,#38H;工作方式设置
SETB E
CLR E
MOV COM,#38H ;工作方式设置
LCALL PR1
MOV COM,#01H ;清屏
LCALL PR1
17
MOV COM,#06H ;输入方式命令,光标右移
LCALL PR1
MOV COM,#0CH ;设置显示方式
LCALL PR1
RET
;-------------延时子程序---------------- DELAY:
MOV R6,#09H
DELAY2: MOV R7,#3FH DELAY1: NOP
DJNZ R7,DELAY1
DJNZ R6,DELAY2
RET
DELAY0:
MOV R5,#03H ;消除按键抖动延时程序
MOV R6,#0EFH
MOV R7,#0EFH
WAIT: DJNZ R7,WAIT
DJNZ R6,WAIT
DJNZ R5,WAIT
RET
;--------------------------------------------------
;------------LCD写指令子程序-----------------------
;--------------------------------------------------
PR1:
PUSH ACC
CLR RS
SETB RW
PR11: MOV P0,#0FFH
SETB E
LCALL DELAY
NOP
MOV A,P0
CLR E
JB ACC.7,PR11
18
CLR RW
MOV P0,COM
SETB E
CLR E
POP ACC
RET
;--------------------------------------------------
;------------LCD写显示数据子程序-----------------------
;--------------------------------------------------
PR2:
PUSH ACC
CLR RS
SETB RW
PR21: MOV P0,#0FFH
SETB E
LCALL DELAY
MOV A,P0 ;读BF和AC6-0值
CLR E
JB ACC.7,PR21
SETB RS
CLR RW
MOV P0,DAT ;写入数据高4位
SETB E
CLR E
POP ACC
RET
END
19
总结:
通过一周多的课程设计实验,更加扎实了我对单片机的课程学习和实践动手能力。在编写程序和做板的过程中出现过很多例如程序的编写时候的纠错与检错;PCB画图时走线过细焊盘过小,导致压板腐蚀后出现的断线,焊盘脱落;压板成功后实验板因为种种原因未能实现功能等问题,这些都暴露了我们在这方面的欠缺与不足。经过反复的思考与检查,亲手制作了三块实验板,终于取得成功,使我们的知识不再是纸上谈兵。
从理论到实验,从遇到问题到与同学共同解决问题,课程设计使我对单片机这门课的认识与掌柜更进了一步。通过理论和实践的结合亲手解决问题,使自己学到了更多课本上没有的知识这些面对未来社会的挑战都是非常重要的。
参考文献:
1:《单片机原理与应用》 李精华主编
2:百度文库
3:豆丁网文库
4:道客巴巴文档
单片机技术课程设计与制作成绩评定表
设计题目:基于单片机的电子时钟
学号:200904520237 姓名:周冲
20
项目 评语内容 评定等级
A
基本要求评价:掌握基础理论,设计过程中B 设计 的学习态度,文献查阅能力,设计思路可行
表现 C 性能力评价设计任务量、设计过程中参与情
(20%) D 况
E
A
B 设计 调试过程中运用理论分析与解决问题的能
说明书 力;报告格式规范性、全面性、逻辑性、表C (30%) 达能力综合评价 D
E
A
B 实物
电路实现情况,电路板外观、焊点、设计合
评价 C 理性等
(30%) D
E
A
B 答辩
答辩时,回答老师提出的软硬件问题情况 C (20%)
D
E
综合成绩
年 月 日
21