单片机课程设计报告.docx
《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告
本科课程设计
课程名称:
单片机原理与应用技术
实验项目:
数字电子钟
实验地点:
电机馆三层跨越机房
专业班级:
学号:
学生姓名:
指导教师:
2015年月日
太原理工大学信息工程学院
专业班级
学生姓名
课程名称
“单片机原理与应用技术”课程设计
设计名称
数字电子钟
设计周数
1.5
指导教师
设计
任务
主要
设计
参数
设计一个以单片机为核心的数字电子钟。
主要设计参数:
1、显示方式:
6位8段LED显示
2、显示内容:
HH.MM.SS(HH,MM,SS分别为时,分,秒)
3、校时方式:
按键调整
4、显示更新:
1次/秒
5、动态显示方式。
设计内容
设计要求
1.硬件电路设计:
(1)MCU主电路设计;
(2)IO接口电路设计;
(3)LED显示接口电路设计。
2.软件设计:
(1)初始化程序设计;
(2)各功能模块设计;
3.软件硬件调试。
主要参考
资料
1.单片机原理与接口技术,李晓林等,电子工业出版社,2015。
2.微型计算机控制技术,潘新民等,人民邮电出版社,1999。
3.单片机应用系统设计技术,张齐等,电子林业出版社,2010。
学生提交
归档文件
课程设计说明书1份
课程设计任务书
注:
课程设计完成后,学生提交的归档文件应按,封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)
指导教师签名:
日期:
2015.3.1
一单片机与数字钟概述
单片机及组成
单片机发展史已经有几十年了。
1976年,Intel公司研制出MCS-48系列单片机。
该系列单片机具有以下特点:
CPU为4位或8位,ROM有1KB或2KB,RAM有64B或128B,具有并行接口,无串行接口,有1个8位的定时/计数器,有2个中断源,这是单片机问世的标志。
单片机的核心部分是中央处理器CPU,它是单片机的大脑,由它统一指挥和协调各部分的工作。
时钟电路用于给单片机提供工作时所需要的时钟信号。
程序存储器和数据存储器分别用于存放单片机工作的用户软件和临时数据。
中断系统用于处理系统工作时出现的突发事件。
定时/计数器用于对时间定时或对外部事件计数。
它通过内部总线把计算机的各主要部件连接为一体,其内部总线包括地址总线、数据总线和控制总线。
其中,地址总线的作用是为数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;数据总线用于在CPU与存储器或I/O接口之间,或I/O接口与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。
输入输出接口(I/O接口)是计算机与输入输出设备之间的接口。
输入输出设备(I/O设备)是计算机与人或其他设备交换信息的装置,如显示器、键盘和打印机等。
单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。
(1)通用型/专用型
这是按单片机适用范围来区分的。
例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
(2)总线型/非总线型
这是按单片机是否提供并行总线来区分的。
总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
(3)工控型/家电型
这是按照单片机大致应用的领域进行区分的。
一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。
显然,上述分类并不是惟一的和严格的。
例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
数字电子钟背景介绍
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C51单片机为核心,使用12MHz晶振与单片机AT89C1相连接,通过软件编程的方法实现以24小时为一个周期,显示小时、分钟和秒的要求。
该电子钟设有四个按键KEYA、KEYB、KEYC、KEYD键,进行相应的操作就可实现校时、定时、复位功能。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
二设计课题任务、主要涉及参数
2.1课题任务:
设计一个以单片机为核心的数字电子钟。
2.2设计参数
1、显示方式:
6位8段LED显示
2、显示内容:
HH.MM.SS(HH,MM,SS分别为时,分,秒)
3、校时方式:
按键调整
4、显示更新:
1次/秒
5、动态显示方式。
2.3设计要求
3.硬件电路设计:
(4)MCU主电路设计;
(5)IO接口电路设计;
(6)LED显示接口电路设计。
4.软件设计:
(3)初始化程序设计;
(4)各功能模块设计;
3.软件硬件调试。
三总体方案设计及原理介绍
本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,总体方案设计图如下:
图1总体方案设计图
四MCS-51单片机简介
4.1MCS-51单片机的组成部分
MCS-51是Intel公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成部分。
每一个单片机包括:
一个8位的中央处理器CPU;一个128K的片内数据存储器(RAM);4K字节的程序存储器(ROM);特殊功能寄存器;两个16位的可编程定时/计数器(ROM);4个8位并行的I/O借口P0-P3;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路;传感器;A/D转换器;显示模块;电源模块。
图2MCS-51单片机内部结构图
4.2各组成部分的功能介绍
4.2.1CPU(中央处理器)
CPU负责控制、指挥和调度整个单元系统协调的工作,完成控制输入输出功能等操作。
CPU由中央控制器和运算器构成。
4.2.2片内RAM(数据存储器)
MCS-51单片机芯片共有256个RAM单元,其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
地址范围为00H~FFH(256B)。
是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。
4.2.3片内ROM(程序存储器)
MCS-51内部有4KB/8KB字节的ROM(51系列为4KB,51系列为8KB),用于存放程序、原始数据或表格。
因此称之为程序存储器,简称内部ROM。
地址范围为0000H~FFFFH(64KB)。
4.2.4特殊功能寄存器
用于存放相应功能部件的控制命令、状态或数据的区域。
4.2.5定时/计数器
51系列共有2个16位的定时器/计数器(52系列共有3个16位的定时器/计数器),以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。
4.2.6并行I/O口
MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。
表2P3口的特殊功能
P3口引脚线号
第二功能标记
第二功能注释
P3.0
RXD
串行口数据接受输入端
P3.1
TXD
串行口数据发送输出端
P3.2
外部中断0请求输入端
P3.3
外部中断1请求输入端
P3.4
T0
定时/计数器0外部输入端
P3.5
T1
定时/计数器1外部输入端
P3.6
片外数据存储器写选通端
P3.7
片外数据存储器读选通端
4.2.7片内时钟电路
计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律的一节拍一节拍地执行各种操作。
4.3AT89C51单片机芯片的引脚结构
图3
各引脚功能说明如下:
Vcc(40脚):
接+5V电源正端。
Vss(20脚):
接+5V电源负端。
XTAL1(19脚):
晶体振荡器接入的一个引脚(采用外部振荡器时,此引脚接地)
XTAL2(18脚):
晶体振荡器接入的另一个引脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端)
P0口(39~32脚):
P0.0~P0.7统称为P0口。
一般I/O口引脚或数据/低位地址总线复用引脚;
P1口(1~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
一般I/O口引脚;
P2口(21~28脚):
P2.0~P2.7统称为P2口,一般I/O口引脚或高位地址总线引脚;
P3口(10~17脚):
P3.0~P3.7统称为P3口。
除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可以独立定义为第一功能的输入输出或第二功能。
ALE/PROG(30脚):
地址锁存允许信号输入或输出引脚。
PSEN(29脚):
外部程序存储器选通信号输出端,低电平有效。
RST/VPD引脚(9脚):
复位信号输入引脚/备用电源输入引脚。
EA/Vpp(31脚):
内外存储器选择引脚/片内EOROM编程电压输入。
4.4单片机工作的基本时序
4.4.1振荡周期
振荡周期,也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。
4.4.2状态周期
每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。
4.4.3机器周期
一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。
在一个机器周期内,CPU可以完成一个独立的操作。
4.4.4指令周期
它是指CPU完成一条操作所需的全部时间。
每条指令执行时间都是有一个或几个机器周期组成。
MCS-51系统中,有单周期指令、双周期指令和四周期指令。
五数字电子钟电路
表3元件清单
7SEG-MPX8-BLUE
LED数码管
AT89C51
单片机
BUTTON
按钮
CAP-ELEC
陶瓷电容
CAP
电容
CRYSTAL
12兆晶振
RES
电阻
74LS25
驱动芯片
六软件、仿真设计
6.1基于WAVE6000的数字电子钟的软件设计
1.新建文件
2.仿真器设置
3.写程序-保存文件-
S_SETBITP1.0;数字钟秒控制位
M_SETBITP1.1;分钟控制位
H_SETBITP1.2;小时控制位
SECONDEQU30H
MINUTEEQU31H
HOUREQU32H
TCNTEQU34H
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVDPTR,#TABLE
MOVHOUR,#0;初始化
MOVMINUTE,#0
MOVSECOND,#0
MOVTCNT,#0
MOVTMOD,#01H
MOVTH0,#(65536-50000)/256;定时50毫秒
MOVTL0,#(65536-50000)MOD256
MOVIE,#82H
SETBTR0
A1:
LCALLDISPLAY
JNBS_SET,S1
JNBM_SET,S2
JNBH_SET,S3
LJMPA1
S1:
LCALLDELAY;去抖动
JBS_SET,A1
INCSECOND;秒值加1
MOVA,SECOND
CJNEA,#60,J0;判断是否加到60秒
MOVSECOND,#0
LJMPK1
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
J0:
JBS_SET,A1
LCALLDISPLAY
SJMPJ0
J1:
JBM_SET,A1
LCALLDISPLAY
SJMPJ1
J2:
JBH_SET,A1
LCALLDISPLAY
SJMPJ2
INT_T0:
MOVTH0,#(65536-50000)/256
MOVTL0,#(65536-50000)MOD256
INCTCNT
MOVA,TCNT
CJNEA,#20,RETUNE;计时1秒
INCSECOND
MOVTCNT,#0
MOVA,SECOND
CJNEA,#60,RETUNE
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
DISPLAY:
MOVA,SECOND;显示秒
MOVB,#10
DIVAB
CLRP3.6
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
SETBP3.6
MOVA,B
CLRP3.7
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
SETBP3.7
CLRP3.5
MOVP0,#40H;显示分隔符
LCALLDELAY
SETBP3.5
MOVA,MINUTE;显示分钟
MOVB,#10
DIVAB
CLRP3.3
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
SETBP3.3
MOVA,B
CLRP3.4
MOVCA,@A+DPTR