资源描述
湖南工程学院
课 程 设 计
课程名称 单片机原理与应用
课题名称 电子时钟
专 业 电气工程及其自动化
班 级 电气0884班
学 号 200813010416
姓 名 吕春叶
指导教师 周炼
2011 年 5月 20 日
湖南工程学院
课 程 设 计 任 务 书
课程名称 单片机原理与应用
课 题 电子时钟
专业班级 电气0884班
学生姓名 吕春叶
学 号 200813010416
指导老师 周炼
审 批
任务书下达日期 2011 年 5 月 9 日
任务完成日期 2011 年 5 月 20 日
设计内容与设计要求
设计内容
本课题以单片机为核心,利用其定时器和6位数码管,设计一个电子时钟。要求有以下功能:
1、开机时,显示00:00:00的时间开始计时;
2、要求有秒,分,时的调节。
3、具有复位功能。
设计要求
1、确定系统设计方案;
2、进行系统的硬件设计;
3、完成必要的参数计算与元器件选择;
4、完成应用程序设计;
5、进行单元电路及应用程序的调试;
6、写出使用说明书。
主 要 设 计 条 件
1、MCS-51单片机实验操作台1台;
2、PC机及单片机调试软件;
3、单片机应用系统板1套;
4、制作工具1套;
5、系统设计所需的元器件。
说 明 书 格 式
1、封面
2、课程设计任务书
3、目录
4、系统总体方案选择与说明
5、系统结构框图与工作原理
6、各单元硬件设计说明及计算方法
7、软件设计与说明(包括流程图)
8、调试结果与必要的调试说明
9、使用说明
10、程序清单
11、总结
12、参考文献
附录
附录A 系统原理图
附录B 程序清单
评分表
进 度 安 排
设计时间为两周
第一周
星期一、上午:布置课题任务,讲课及课题介绍
下午:借阅有关资料,总体方案讨论
星期二、确定总体设计方案
星期三、硬件模块方案设计
星期四、软件模块方案设计
星期五、各硬件模块设计
第二周
星期一、各硬件模块设计
星期二、各软件模块设计
星期三、各软件模块设计
星期四、写说明书
星期五、上午:写说明书,整理资料
下午:交设计资料,答辩
目 录
第1章 总体设计方案选择与说明 1
1.1 设计方案 1
第2章 系统结构框图与工作原理 2
2.1系统结构框图: 2
2.2系统工作原理 2
第3章 硬件电路设计及说明 3
3.1键盘接口电路 3
3.2显示电路 3
3.3 A/D转换电路 5
3.4 ADC0808引脚功能 6
第4章 软件设计与说明 8
4.1 初始化子程序 8
4.2 系统程序流程图 9
第5章 调试结果与调试说明 10
总 结 11
参考文献 12
附 录 13
附录A:设计电路图 13
附录B:源程序清单 14
电气信息学院课程设计评分表 20
第1章 总体设计方案选择与说明
1.1 设计方案
实现电压的测量有多种方案,其中两种比较简单的且精度比较高的方法,分别采用并行ADC0808芯片和和TLC1543/TLC2543芯片。
方案一:用ADC0808芯片做模数转换采样芯片,占用的单片机I/O口线多,占用的板子面积较大,但是可以循环采样8路模拟通道,编程相对简单。
方案二:用TLC1543/TLC2543芯片做模数转换采样芯片,占用的单片机I/O口线少,且占用电路面积小,但是编程比较复杂。
我采用方案一,因为方案一所用到的芯片我们都比较熟悉,采用常用的51单片机作为控制芯片,ADC0808芯片的CLOCK脚(时钟脉冲输入端)接单片机的P2.4脚,DATA OUT接单片机的P0.0-P0.7脚;ADD A-ADD C脚(3位地址输入线)接单片机的P1.0-P1.2;ALE脚(地址锁存允许信号)接单片机的P2.5;OE脚(数据输出允许信号)接单片机的P2.7;IN0-INT7接输入电压(及测试电压),ADC0808通过采样进来的数据信号送给单片机,通过计算再送入显示电路将其电压值显示出来。电压的范围是0-5V。
第2章 系统结构框图与工作原理
2.1系统结构框图:LED显示器
80C52单片机
P0
P1
P3 P2
P1
ADC0808
上电复位
键盘
图2.1 系统结构框图
2.2系统工作原理
数字电压表工作原理:这里主要是利用ADC0808并行接口芯片,ADC0808芯片的基准电压脚外接电压为+5V,则最大可以测得的电压为5V,ADC0808芯片的模拟输入脚通过电位器接+5V电压,进行模拟采样,通过调整电位器的值改变模拟量。输入的模拟量经ADC0808芯片的内部8位开关电路逐次逼近A/D转换器,转换成8位二进制数,其最小的分辨率为0.0196(VREF=0.0196V),D为转化的数字量,再通过 可以求得模拟电压,最后输入四位LED显示器就可将所测得电压显示出来。
第3章 硬件电路设计及说明
3.1键盘接口电路
独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低,I/O口内部有上拉电阻时,外部可不接上拉电阻。
图3.1 键盘接口电路图
3.2显示电路
它的连接方式为7段共阴LED显示器的公共端分别接单片机的P2.0、P2.1、P2.2、P2.3。相应的P0口接LED显示器的a、b、c、d、e、f、g和dp引脚,利用程序进行动态的扫描实现显示功能,该显示电压值的计算由软件进行实现。
图3.2 硬件显示电路图
LED数码管的原理与接口:
八段LED显示器与单片机的接口比较简单,只要将一个8位并行口与显示器的引脚对应相接即可,由8位并行口输出不同的字节数据,显示出不同的数字或字符。
控制LED显示出不同的数字或字符的8位字节数据称为“段选码”,共阴极LED与共阳极LED的段选码互为补码。数码管的接口有静态和动态接口两种,静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阴或共阳分别接地。
动态接口采用各数码管循环轮流显示的方法,当循环显示的频率教高时,利用人眼的暂留性,看不出闪烁显示现象,这种显示与要一个接口完成字形码的输出,另一接口 完成各数码管的轮流点亮。
3.3 A/D转换电路
ADC0808的OUT1-OUT8脚分别接单片机P0口的P0.0—P0.7,地址锁存ALE脚(当输入为高电平时,对地址信号进行锁存)和转换启动信号START接单片机的P2.5,当输入一个2uS宽高电平脉冲时,就开始A/D转换。时钟信号CLOCK由单片机的P2.4脚通过程序控制实现。ADC0808的EOC脚悬空不接,而是利用软件延时的方法使模拟量转化完全为数字量,输出使能信号OE接单片机的P2.7脚,当OE脚为高电平时,A/D转换数据从该端口输出,以此来实现数据的传送。
图3.3 A/D转换电路
3.4 ADC0808引脚功能
(1) 引脚1~5,26~28(IN0~IN7):8路模拟量输入端;
(2) 引脚8,14,15,17~21:8位数字量输出端;
(3) 引脚22(ALE):地址锁存允许信号,输入,高电平有效;
(4) 引脚6(START):A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换);
(5) 引脚7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平);
(6) 引脚9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量;
(7) 引脚10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ;
(8) 引脚12[VREF(+)]、引脚16[VREF(-)]:参考电压输入端;
(9) 引脚11(Vcc):主电源输入端;13(GND):地;
(10)引脚23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路。
图3.4 ADC0808芯片图
多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码。
第4章 软件设计与说明
4.1 初始化子程序
对所用到的存储单元和寄存器单元进行初始化,同时对要使用到的定时器进行清零并赋初始值。
初始化子程序:
INIT:MOV WIN1,#00H;存储单元清零
MOV WIN2,#00H
MOV WIN3,#00H
MOV WIN4,#00H
CLR FLAG
MOV TMOD,#12H;定时器初始化
MOV TH0,#245
MOV TL0,#245
MOV TH1,#9EH
MOV TL1,#58H
MOV R1,#80
MOV R0,#0
MOV IE,#8AH
SETB TR0
4.2 系统程序流程图
按下P2.6键?
按P3.0键
按P3.1键
按P3.7键
8路循环显示
8路循环显示
初始化
接受A/D转换信号
十进制数据处理程序
显示相应通道的电压值
26
第5章 调试结果与调试说明
通过proteus 7.4仿真,通过滑动变阻器可以改变电阻值,进而电压表的示数也将改变。
当滑动变阻器的阻值为最大值时,LED显示器显示的示数为5V,理论值=5V。当滑动变阻器的阻值为0时,LED显示器显示的示数为0V,=0V。由此两个极值已经满足,表明测量精度相当之高。
在调试的过程中,开机即为循环显示阶段,可循环观察8路电压的测量值,我们还可以采用单通道模式显示,即按下模式切换键,切换到单通道模式下,通过改变滑动变阻器的电阻值来获得不同的测量结果。再次按下模式切换键,系统就自动转到了循环显示的模式下工作了。
总 结
通过本次的单片机课程设计,我在电路调试经验等方面增加了很多经验,这些都是在课本上无法学到得东西。在程序方面,在一些延时子程序等网络上有很多现成的资料,我们要充分的利用资源,借鉴别人优秀的程序,做出来的程序更加优秀。程序方面我觉得写程序注释写得越详细越好、不要怕麻烦。 这样方便自己读懂程序,也是有利于让别人能读懂你写的程序。在反复确认自己的程序正确无误之后,接下来要做的就是模拟仿真了。我们在书上、网上都查阅了相关芯片的功能、管脚等信息。仔细研究芯片的主要功能及管脚接法,这也就为我们后面比较成功地仿真出结果打好了基础。当仿真出错时我们反复检查线路连接是否有误,仔细的观察相应管脚在运行时的电位的变化。我相信,不管是什么电路,经过如此仔细的检查后,任何错误不会遗漏。当然,这也是我们最终走向成功的原因。
在林老师的辛勤的指导下,最后我们顺利地完成了这次的课程设计。看见到课本所学知识得以应用,心中满是欢喜,满是激动。这次课程设计加强了我的实际操作能力,提高了我解决实际问题的能力,并对本专业的课程充满了浓厚的兴趣,及对以后的学习充满了信心,决定在以后的学习生活中加强练习,端正心态,迎接新的挑战。
参考文献
1、《单片机C语言轻松入门》周坚编 北京航空航天大学出版社
2、《单片机人机接口实例》公茂法编著 北京航空航天大学出版社
3、《51系列单片机应用与实践教程》周向红编著 北京航空航天大学出版社
4、《单片机原理与应用》王迎旭编著 机械工业出版社
附 录
附录A:设计电路图
附录B:源程序清单
WIN1 EQU 30H
WIN2 EQU 31H
WIN3 EQU 32H
WIN4 EQU 33H
BBC EQU 35H
ST BIT P2.5
OE BIT P2.7
CLOCK BIT P2.4
FLAG BIT 20H.0
ORG 0000H
AJMP START
ORG 000BH
AJMP STT0
ORG 001BH
AJMP STT1
ORG 0030H ;初始化子程序
INIT: MOV WIN1,#00H ;存储单元清零
MOV WIN2,#00H
MOV WIN3,#00H
MOV WIN4,#00H
CLR FLAG
MOV TMOD,#12H ;定时器初始化
MOV TH0,#245
MOV TL0,#245
MOV TH1,#9EH
MOV TL1,#58H
MOV R1,#80
MOV R0,#0
MOV IE,#8AH
SETB TR0
RET
;主程序
START: LCALL INIT
JIAN: JB P2.6,TT1
JNB P2.6,$ ;键未松开
CPL FLAG
TT1: JNB FLAG,WAT
LL0: CLR TR1 ;8路循环显示
JB P3.0,LL1
MOV R0,#0
SJMP WAIT
LL1: JB P3.1,LL2
MOV R0,#1
SJMP WAIT
LL2: JB P3.2,LL3
MOV R0,#2
SJMP WAIT
LL3: JB P3.3,LL4
MOV R0,#3
SJMP WAIT
LL4: JB P3.4,LL5
MOV R0,#4
SJMP WAIT
LL5: JB P3.5,LL6
MOV R0,#5
SJMP WAIT
LL6: JB P3.6,LL7
MOV R0,#6
SJMP WAIT
LL7: JB P3.7,WAIT
MOV R0,#7
WAIT: MOV P1,R0
SJMP WAIT1
WAT: MOV P1,R0
SETB TR1
WAIT1: CLR ST ;启动AD转换
SETB ST
CLR ST
MOV R7,60 ;延时等待转换结束
DJNZ R7,$
SETB OE
MOV BBC,P0
CLR OE
ZH: MOV A,BBC;将转化结果变为可显示的BCD码存入相应的单元
MOV B,#51
DIV AB
MOV WIN3,A ;个位存放在32H
MOV A,B
CLR F0
SUBB A,#1AH
MOV F0,C
MOV A,#10
MUL AB
MOV B,#51
DIV AB
JB F0,L1
ADD A,#5
L1: MOV WIN2,A ; 小数点后第一位存放在31H
MOV A,B
CLR F0
SUBB A,#1AH
MOV F0,C
MOV A,#10
MUL AB
MOV B,#51
DIV AB
JB F0,L2
ADD A,#5
L2: MOV WIN1,A
LCALL EXP0 ;小数点后第二位存放在30
LCALL EXP01
AJMP JIAN
STT1: MOV TH1,#9EH
MOV TL1,#58H
DJNZ R1,SS
MOV R1,#80
INC R0
MOV A,R0
CJNE A,#8,LP1
MOV R0,#0
LP1: MOV P1,R0
SS: RETI
STT0: CPL CLOCK
RETI ;显示子程序
EXP0: MOV DPTR,#TAB ;显示子程序
MOV A,WIN3
MOVC A,@A+DPTR
CLR P2.3
ADD A,#80H
MOV P1,A
LCALL DELAY
SETB P2.3
MOV A,WIN2
MOVC A,@A+DPTR
CLR P2.2
MOV P1,A
LCALL DELAY
SETB P2.2
MOV A,WIN1
MOVC A,@A+DPTR
CLR P2.1
MOV P1,A
LCALL DELAY
SETB P2.1
RET
EXP01: MOV WIN4,R0
MOV A,WIN4
MOVC A,@A+DPTR
CLR P2.0
MOV P1,A
LCALL DELAY
SETB P2.0
RET
DELAY: MOV R7,#4
D: MOV R6,#250
DJNZ R6,$
DJNZ R7,D
RET
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
电气信息学院课程设计评分表
项 目
评 价
优
良
中
及格
差
设计方案合理性与创造性(10%)
开发板焊接及其调试完成情况*(10%)
硬件设计或软件编程完成情况(20%)
硬件测试或软件调试结果*(10%)
设计说明书质量(20%)
答辩情况(10%)
完成任务情况(10%)
独立工作能力(10%)
出勤情况(10%)
综 合 评 分
指导教师签名:________________
日 期:________________
注:①表中标*号项目是硬件制作或软件编程类课题必填内容;
②此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
展开阅读全文