单片机毕业设计完整版.doc

上传人:聆听****声音 文档编号:346165 上传时间:2023-04-29 格式:DOC 页数:32 大小:252.50KB
下载 相关 举报
单片机毕业设计完整版.doc_第1页
第1页 / 共32页
单片机毕业设计完整版.doc_第2页
第2页 / 共32页
单片机毕业设计完整版.doc_第3页
第3页 / 共32页
单片机毕业设计完整版.doc_第4页
第4页 / 共32页
单片机毕业设计完整版.doc_第5页
第5页 / 共32页
单片机毕业设计完整版.doc_第6页
第6页 / 共32页
单片机毕业设计完整版.doc_第7页
第7页 / 共32页
单片机毕业设计完整版.doc_第8页
第8页 / 共32页
单片机毕业设计完整版.doc_第9页
第9页 / 共32页
单片机毕业设计完整版.doc_第10页
第10页 / 共32页
单片机毕业设计完整版.doc_第11页
第11页 / 共32页
单片机毕业设计完整版.doc_第12页
第12页 / 共32页
单片机毕业设计完整版.doc_第13页
第13页 / 共32页
单片机毕业设计完整版.doc_第14页
第14页 / 共32页
单片机毕业设计完整版.doc_第15页
第15页 / 共32页
单片机毕业设计完整版.doc_第16页
第16页 / 共32页
单片机毕业设计完整版.doc_第17页
第17页 / 共32页
单片机毕业设计完整版.doc_第18页
第18页 / 共32页
单片机毕业设计完整版.doc_第19页
第19页 / 共32页
单片机毕业设计完整版.doc_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机毕业设计完整版.doc

《单片机毕业设计完整版.doc》由会员分享,可在线阅读,更多相关《单片机毕业设计完整版.doc(32页珍藏版)》请在冰点文库上搜索。

单片机毕业设计完整版.doc

安徽工业大学继续教育学院《单片机原理》期末课程设计——单片机计时时钟设计与制作

安徽工业大学继续学院

《单片机原理》期末课程设计

题目:

单片机计时时钟设计与制作

专业:

电气工程及其自动化

班级:

14电升

姓名:

夏云飞

学号:

1410102003035

指导老师:

贺容波

成绩:

(2015.12)

目录

一、绪论…………………………………………………………………….……1

1.1单片机简介……………………………………………………….……1

二、硬件系统设计方案………………………………………………………3

2.1时钟电路的设计………………………………………………………3

2.2复位电路的设计…………………………………………………………4

2.3数码显示电路的设计…………………………………………………5

2.4按键电路的设计…………………………………………………………7

2.5蜂鸣器电路的设计……………………………………………………8

2.6接线图………………………………………………………………9

三、软件系统设计方案

3.1模块化设计方案………………………………………………………10

3.2主程序的设计…………………………………………………………11

3.3LED动态显示程序的设计……………………………………………14

3.4计时程序模块的设计………………………………………………17

3.5键盘程序的设计………………………………………………………19

3.6蜂鸣器程序的设计…………………………………………………22

3.7整个程序………………………………………………………………23

四、总结

总结与致谢………………………………………………28

参考文献………………………………………………29

使用说明……………………………………………………29

第29页

安徽工业大学继续教育学院《单片机原理》期末课程设计——单片机计时时钟设计与制作

一绪论

1.1单片机简介

1.1.1单片机的产生

计算机的发展经历了从电子管到大规模集成电路等几个发展阶段,随着大规模集成电路技术的发展,使计算机向性能稳定可靠、微型化、廉价方向发展,从而出现了单片微型计算机。

所谓单片微型计算机,是指将组成微型计算机的基本功能部件,如中央处理器CPU、存储器ROM和RAM、输入/输出(I/O)接口电路等集成在一块集成电路芯片上的微型计算机,简称单片机。

总体来讲,单片机可以用以下“表达式”来表示:

单片机=CPU+ROM+RAM+I/O+功能部件

1.1.2单片机的特点

随着现代科技的发展,单片机的集成度越来越高,CPU的位数也越来越高,已能将所有主要部件都集成在一块芯片上,使其应用模式多、范围广,并具有以下特点:

①体积小,功耗低,价格便宜,重量轻,易于产品化。

②控制功能强,运行速度快,能针对性地解决从简单到复杂的各类控制问题,满足工业控制要求,并有很强的位处理和接口逻辑操作等多种功能。

③抗干扰能力强,适用温度范围宽。

由于许多功能部件集成在芯片内部,受外界影响小,故可靠性高。

④虽然单片机内存储器的容量不可能很大,但存储器和I/O接口都易于扩展。

⑤可以方便的实现多机和分布式控制。

1.1.3单片机的应用

单片机的应用具有面广量大的特点,目前它广泛的应用于国民经济各个领域,对技术改造和产品的更新起着重要作用。

主要表现在以下几个方面:

①单片机在智能化仪器、仪表中的应用:

由于单片机有计算机的功能,它不仅能完成测量,还既有数据处理、温度控制等功能,易于实现仪器、仪表的数字化和智能化。

②单片机在实时控制中的应用:

单片机可以用于各种不太复杂的实时控制系统中,如一般性的温度控制、液面控制、电镀顺序控制等。

将测量技术、自动控制技术和单片机技术相结合,充分发挥单片机的数据处理和实时控制功能,使系统工作于最佳状态。

③单片机在机电一体化中的应用:

单片机有利于机电一体化技术的发展,已广泛应用于数控机床、医疗设备、汽车设备等。

④单片机在多机系统中的应用:

单片机在多机系统中的应用是将来单片机发展的主要模式,它可以提高单片机的可靠性,使系统运行速度更快。

⑤单片机在计算机外围设备中的应用:

单片机广泛应用于打印机、绘图机等多种计算机的外围设备,特别是用于智能终端,可大大减轻主机负担,提高系统的运行速度。

⑥单片机在家用电器中的应用:

单片具有体积小、重量轻、价格便宜等特点,所以家电产品中配上微电脑后,使其身价百倍,功能更强,使用方便,灵活,深得用户欢迎。

⑦单片机在通信中的应用:

单片机广泛应用于移动通信领域,使移动电话的功能更强大,操作更方便。

二硬件系统设计方案

2.1时钟电路的设计

如图2-1所示。

单片机工作的时间基准是由时钟电路提供的。

在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图1所示。

电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数。

电路中,电容器C1和C2对振荡器频率有微调作用,通常的取值范围30±10pF;石英晶体选择6MHZ或12MHZ都可以。

其结果只是机器周期时间不同,影响计数器的计数初值。

图2-1时钟电路的设计

2.2复位电路的设计

如图2-2所示。

单片机的RET引脚为主机提供一个外部复位信号输入端口。

复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。

复位以后,单片机内各部件恢复到初始状态,单片机从ROM的0000H开始执行程序。

单片机的复位方式有上电自动复位和手工复位两种。

图2是51系列单片机常用的上电复位和手动复位的组合电路,只要VCC上升时间不超过1ms,它们都能很好地工作。

阻容器件的参考值为,R1=200Ω,R2=1KΩ,C3=22uF。

图2-2复位电路的设计

2.3数码显示电路的设计

如图2-3所示。

单片机应用系统中,通常都需要进行人机对话。

这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行结果等。

显示器、键盘电路就是用来完成人机对话活动的人机通道。

LED显示器的驱动是一个非常重要的问题,由系统硬件设计框图可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。

如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏。

因此,在实际使用中必须接入LED驱动电路。

LED显示器的显示控制方式分为静态显示和动态显示两种,因此在选择LED驱动器时,一定要先确定显示方式。

静态显示方式就是在任意时刻,所有显示器都按照各自接收的字型码同时显示对应的字符。

静态显示方式要求每位LED显示器的公共端必须接地(对共阴极LED),或接高电平(对共阳极LED),而每位LED显示器都由一个具有锁存功能的8位端口去控制。

这里所指的8位端口可以直接采用并行I/O接口,也可以采用扩展的串行输入/并行输出移位寄存器。

动态显示是单片机应用系统中最常用的显示方式之一。

它是把所有显示器的同名字端互相并联在一起,并把它们接到字形口上。

为了防止各个显示器同时显示出相同的字符,每个显示器的公共端还要受另一组信号控制,即把它们接到字位口上。

这样,对于一组LED数码显示器需要由两组信号控制:

一组是字形口输出的字形码,用来控制显示什么用的字符;另一组是字位口输出的字位码,用来控制将字符显示在第几位显示器上。

在这两组信号的控制下,使各位显示器依次从左至右轮流点亮一遍,过一段时间再轮流点亮一遍,如此不断重复。

虽然在任一时刻只有一位显示器被点亮,但由于显示器具有余辉效应,而人眼又具有视觉惰性,所以看起来与全部显示器持续点亮效果完全一样。

若选择静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流相匹配即可。

而且只须考虑段的驱动,因为共阳极接+5V,而共阴极接地,所以位的驱动不需要考虑。

动态显示则不同,由于一位数据的显示是由段选和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。

在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此厂家就生产了位数、尺寸、型号不同的LED显示器供选择。

在本设计中,选择4位一体的时钟型LED显示器,简称“4-LED”,前两位显示“天数”的十位和个位,中间两位显示“小时”的十位和个位,后两位显示“分”的十位和个位。

4-LED显示器的引脚如图3所示,是一个共阴极接法的6位时钟型LED显示器。

其中a、b、c、d、e、f、g为6位LED各段的公共引出端。

D1、D2、D3、D4、D5、D6分别是每一位的共阴极输出端,dp是小数点引出端。

4LED

图2-3数码显示电路的设计

2.4按键电路的设计

如图2-4所示,在倒计时时钟应用系统工作时按钮应具备随时对当前时间进行调整的功能。

要实现此功能,可以接入键盘输入电路。

键盘结构的选择:

在单片机组成的测控系统及智能化仪器中,用得最多的是非编码键盘。

键盘结构可以分为独立式键盘和矩阵式两类。

在本例中只需要3个按键,因此选择独立式键盘。

如图4,电路由按键和三个电阻组成,按键分别命名为day+1、hour+1和minute+1键,按键可以采用轻触开关,电阻采用1KΩ的。

键盘与单片机的接口电路设计:

如图2-4所示,将键盘直接与单片机的P2口连接。

用P2.2、P2.1、P2.0引脚分别与day+1、hour+1、minute+1相连。

三个按键功能的设计思路如下:

Day+1键功能:

设置当前时间离奥运会举行时间的间隔,即天数。

Hour+1键功能:

设置当前的时间,即当电子时钟的时间有误差时,需要随时对它进行调整。

Minute+1键功能:

与hour+1键的功能一致,将时间达到更精确,以至分秒一

图2-4按键电路的设计

2.5蜂鸣器电路的设计

如图2-5所示。

设计要求定时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。

压电式蜂鸣器工作时约需10mA的驱动电流,并设计一个相应的驱动及控制电路。

电路设计如图5所示,蜂鸣器作为三极管VT1的集电极负载,当VT1导通时,蜂鸣器发出鸣叫声音,VT1截止时,蜂鸣器不发声。

蜂鸣器电路与单片机的接口:

VT1的基极接到单片机P2口的P2.3引脚,P2.3引脚作为输出口使用。

当P2.3=0时,VT1导通时,使蜂鸣器的两个引脚间获得将近5V的直流电压,蜂鸣器中有电流通过,而产生蜂鸣音。

当P2.3=1时,VT1截止,蜂鸣器的两引脚间的直流电压接近于0V,蜂鸣器不发声。

图2-5蜂鸣器电路的设计

2.6接线图

三软件系统设计方案

3.1模块化的方案

进行应用软件设计时可采用模块化程序设计方法,其优点是:

每个模块的程序结构简单,任务明确,易于编写、调试和修改。

程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充。

对于使用频繁的子程序可以建立子程序库,便于多个模块调用。

便于分工合作,多个人同时进行程序的编写和调试工作,加快软件研制进度。

设计方案及框图:

如图2-6所示。

根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是规划为了完成这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。

划分模块时应遵循下述原则:

每个模块应具有独立的功能,能产生一个明确的结果。

模块之间的控制参数应尽量简单,数据参数应尽量少。

模块长度适中。

根据模块的划分原则,将该程序划分成6个模块。

主程序

数码管动态扫描模块

当前时间倒计时模块

当前时间调整模块

蜂鸣器自动报时模块

数字转换模块

图2-6整体设计框图

3.2主程序的设计

主程序的内容一般包括:

主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。

程序的起始地址

MCS-51系列单片机复位后,(PC)=0000H,而0003H—002BH分别为各中断源的入口地址。

所以,编程时应在0000H处写一跳转指令。

主程序的初始化内容

所谓初始化,是对将要用到MCS—51系列单片机内部部件或扩展芯片进行初始化工作状态设定。

MCS—51系列单片机复位后,特殊功能寄存器IE,IP的内容均为00H,所以应对IE,IP进行初始化编程,以开放CPU中断,允许某些中断源中断和设置中断优先级等。

开始

主程序设计框图

启动定时器

设置初始常数

置定时器模式及工作方式

读取小时值

转换成显示数据

显示数据送缓冲

读取分钟值

转换成显示数据

显示数据送缓冲

调用显示子程序

主程序清单:

ALB_SETBITP3.2;调节闹钟控制器

M_SETBITP3.3;分钟控制位

H_SETBITP3.4;小时控制位

SECONDEQU30H;秒计数器

MINUTEEQU31H;分钟计数器

HOUREQU32H;小时计数器

TCNTEQU34H;50毫秒计数器

ALB_MEQU35H

ALB_HEQU36H

;---------------------------------------------------------------------

ORG0000H

SJMPSTART

ORG000BH

LJMPINT_T0

;---------------------------------------------------------------------

ORG0050H

START:

MOVDPTR,#TABLE

MOVALB_M,#01

MOVALB_H,#01

MOVHOUR,#0;初始化

MOVMINUTE,#0

MOVSECOND,#0

MOVTCNT,#0

MOVTMOD,#01H

MOVTH0,#(65536-50000)/256;定时50毫秒取整数-TH0

MOVTL0,#(65536-50000)MOD256;模运算取尾数-TL0

MOVIE,#82H

SETBTR0

3.3LED动态显示的设计

在采用动态扫描显示方式时,要使得LED显示得比较均匀,又有足够的亮度,需要设置适当的扫描频率。

当扫描频率在70HZ左右时,能够产生足够的图形和较好的显示效果。

一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。

本例中,采用软件定时并用的方式,即通过软件延时程序实现1ms的定时。

LED程序清单:

DISPLAY:

MOVP1,#01111111B

CJNER4,#00AH,X1

MOVP1,#11111111B

X1:

MOVA,MINUTE;显示分钟

MOVB,#10

DIVAB

CLRP2.3

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.3

MOVA,B

CLRP2.2

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.2

MOVA,HOUR;显示小时

MOVB,#10

DIVAB

CLRP2.5

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.5

MOVA,B

CLRP2.4

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.4

RET

DISPLAY1:

MOVA,ALB_M;显示分钟

MOVB,#10

DIVAB

CLRP2.3

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.3

MOVA,B

CLRP2.2

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.2

MOVA,ALB_H;显示小时

MOVB,#10

DIVAB

CLRP2.5

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.5

MOVA,B

CLRP2.4

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP2.4

RET

TABLE:

DB40H,79H,24H,30H,19H

DB12H,02H,78H,00H,10H

;---------------------------------------------------------

DELAY:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

b1:

mova,alb_m

cjnea,minute,rt

mova,alb_h

cjnea,hour,rt

callbeep_bl

rt:

reti

3.4计时程序的设计

倒计时时钟系统的主要任务是:

采用单片机为核心器件24小时后天数减一,并用LED显示器将它显示出来。

计算定时器T0的计数初值

定时时间100us

计数初值=———————=—————=100

机器周期时间1us

计数初值=256–100=156

计时程序设计框图:

INT_T0:

MOVTH0,#(65536-50000)/256

计时程序清单:

MOVTL0,#(65536-50000)MOD256

INCTCNT;累计50毫秒

MOVA,TCNT

MOVR4,TCNT

CJNEA,#20,RETUNE;计时1秒

INCSECOND

MOVTCNT,#0

MOVA,SECOND

CJNEA,#60,RETUNE

movp2,#11111111b

INCMINUTE

MOVSECOND,#0

MOVA,MINUTE

CJNEA,#60,RETUNE

INCHOUR

MOVMINUTE,#0

MOVA,HOUR

CJNEA,#24,RETUNE

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

MOVTCNT,#0

RETUNE:

RETI

3.5键盘程序的设计

键盘子程序是由KEY子程序组成,此子程序的功能是实现对当前时间的调整和输入倒计时时间。

①KEY子程序的功能是对当前时间进行调整。

②在程序中,将倒计天数以及时钟的小时位、分钟位分别进行调整。

③按键去抖动的处理。

由于机械触点的弹性作用,在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为5—10ms。

而按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。

键抖动会引起一次按键被误读多次,为了确保CPU对键的一次闭合仅作一次处理,键抖动可用硬件或软件两种方法消除。

本例中采用软件方法。

键盘程序清单:

;判断是否有控制键按下,是哪一个键按下

A1:

;调用显示子程序

lcallb1

JNBALB_SET,S4

LCALLDISPLAY

JNBM_SET,S2

JNBH_SET,S3

LJMPA1

S2:

LCALLDELAY

JBM_SET,A1

K1:

INCMINUTE;分钟值加1

MOVA,MINUTE

CJNEA,#60,J1;判断是否加到60分

MOVMINUTE,#0

LJMPK2

S3:

LCALLDELAY

JBH_SET,A1

K2:

INCHOUR;小时值加1

MOVA,HOUR

CJNEA,#24,J2;判断是否加到24小时

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

LJMPA1

S4:

LCALLDISPLAY1

JNBM_SET,S5

JNBH_SET,S6

LJMPA1

S5:

LCALLDELAY

JBM_SET,A1

INCALB_M

MOVA,ALB_M

CJNEA,#60,J3

MOVALB_M,#0

LJMPK3

S6:

LCALLDELAY

JBH_SET,A1

K3:

INCALB_H

MOVA,ALB_H

CJNEA,#24,J4

MOVALB_H,#0

MOVALB_M,#0

LJMPA1

;---

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2