单片机课程设计
更新时间:2023-12-14 02:10:01 阅读量: 教育文库 文档下载
课 程 设 计
课程名称 单片机原理及应用 课题名称 LCD显示简易时钟
专 业 班 级 学 号 姓 名 指导教师
2012年6月24日
湖南工程学院 课 程 设 计 任 务 书
课程名称 单片机原理及应用 课 题 简易时钟
专业班级
学生姓名 学 号 指导老师
审 批
任务书下达日期 2012年 6 月 18日 任务完成日期 2012年 6 月 30日
2
设计内容与设计要求 设计内容: 设计一个简易时钟,设计内容包括: (1) 时间显示形式为HH:MM:SS(H,M,S分别代表时间的小时,分钟,秒钟); (2) 选用LCD显示器或者LED显示器 (3) 时间可调整,具备闹钟功能*(可选) (4) 具有跑表选择功能*(可选) (5) 其它功能*(可选) 设计要求: 1)确定系统设计方案; 2)进行系统的硬件设计; 3)完成必要的参数计算与元器件选择; 4)完成应用程序设计; 5)进行软硬件调试; 3
主 要 设 计 条 件 1 单片机开发板 2 PC机 3 PROTEL软件 4 PROTEUS软件 说 明 书 格 式 1. 课程设计任务书 2. 目录 3. 系统总体方案选择与说明 4. 系统结构框图与工作原理 5. 各单元硬件设计说明及计算方法 6. 软件设计与说明(包括流程图) 7. 调试结果与必要的调试说明 8. 使用说明 9. 程序清单 10、总结 11、参考文献 附录 附录A 系统原理图 附录B 程序清单 4
进 度 安 排 设计时间为两周 第一周 星期一、上午:布置课题任务,讲课及课题介绍 下午:借阅有关资料,总体方案讨论 星期二、确定总体设计方案 星期三、硬件模块方案设计 星期四、软件模块方案设计 星期五、各硬件模块设计 第二周 星期一、各硬件模块设计 星期二、各软件模块设计 星期三、各软件模块设计 星期四、写说明书 星期五、上午:写说明书,整理资料 下午:交设计资料,答辩 参 考 文 献 1、《单片机原理及应用》李建忠 编 西安电子科技大学出版社 2、《单片微型计算机原理与接口技术》 高峰 编 电子工业出版社 3、《单片机应用新技术教程》邹逢兴 编 高等教育出版社 4、《16位微型计算机原理接口及其应用》 朱宇光 编 电子工业出版社 5、《微型计算机原理与接口技术》 吴秀清 编 中国科学技术出版社 6、《微型计算机接口技术》 邓亚平 编 清华大学出版社 7、《单片机原理及及应用》 王迎旭 编 机械工业出版社 5
目录 前言................................................... 7 第1章 简易时钟的系统设计............................. 8
1.1 系统总体方案选择............................... 8 1.2 系统结构框图与工作原理......................... 8 第2章 硬件与软件的设计............................... 11
2.1 硬件的说明.................................... 11 2.2 计算方法...................................... 11 2.3 软件的设计与说明.............................. 12 第3章 程序的设计..................................... 13
3.1 主程序的设计.................................. 13 3.2 键输入程序的设计.............................. 13 3.3 显示程序的设计................................ 15 3.4 延时程序的审计................................ 17 3.5 中断程序的设计................................ 18 第4章 仿真与调试.................................... 21
4.1 电路仿真...................................... 21 4.2 程序调试...................................... 22 总结.................................................. 23 附录.................................................. 24
附录A 参考文献 .................................. 24 附录B 系统原理图 ................................ 25 附录C 程序清单 .................................. 26
6
前言
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
而本学期我们主要学习的是C51单片机的一些基本原理和应用。51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。
本次课程设计是要用C51单片机设计一个简易时钟,首先了解它要实现的功能,时钟系统最基本的功能就是实现计时,在这里设计的简易时钟,它能实现计时和校时的功能,给电子钟加上电自动计时,设计一个按键对时钟进行复位和三个按键对时间进行调整。
7
第1章 简易时钟的系统设计
1.1 系统总体方案选择
设计一个简易时钟,首先了解它要实现的功能,时钟系统最基本的功能就是实现计时,在这里设计的简易时钟,它能实现计时和校时的功能,给电子钟加上电自动计时,设计一个按键对时钟进行复位和三个按键对时间进行调整。
硬件设计很简单,主要包括:单片机、按键电路、驱动显示电路,以及LED显示器四个部分。单片机选用AT89C51芯片,它无须外扩程序存储器,设计电路很简单。由于只用了四个按键,所以采用独立式按键使设计更简单。显示时、分、秒加两个分隔符,采用8位的数码管,用常用的74LS244来驱动LED数码管显示字符。
简易时钟可实现校时和整点报时功能,该软件采用C语言来实现,主要包括主程序、键输入程序、显示程序、定时程序和中断程序等软件模块。把原程序加入原理图,做出电子钟的仿真,以秒计数并显示时、分、秒。其中秒和分为60进制,小时为24进制计数。可通过按键实现时钟复位和分、秒、时的校正。
1.2 系统结构框图与工作原理
以单片机技术为核心,充分应用各种外围电路元器件,设计一个通过显示器显示时间(时、分、秒)的简易时钟。要求:
8
1、上电时,时、分、秒显示为00时、00分、00秒,并以秒为单 位开始计时;
2、运行状态下,按动控制按扭S-SET,对秒进行调整; 3、运行状态下,按动控制按扭M-SET,对分进行调整; 4、运行状态下,按动控制按扭H-SET,对小时进行调整。 5、当数字时钟运行到正点时,实现自动报时功能。
6、按下T-SET键是实现小时由24进制和12进制的相互转换。 电子钟的电路图主要由单片机(AT89C51)、键盘电路、驱动显示电路和LED显示器四部分组成,它主要实现时钟的显示,以及对时、分、秒进行调整,即实现调时的功能。其数字钟系统整体结构如图1-2所示。
七 段 数 码 管 AT89C51 驱动 LED显示器 位选 按 键
图1-2 简易时钟系统整体结构
(1)显示方案
:动态显示则是一位一位地轮流点亮显示器地各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。动态显示硬件连接简单,信息刷新
9
速度快。
由于本次设计是对时间进行显示,如采用静态显示,则所占用的I/O口较多,电路较复杂,所以在此选择动态显示。
(2)键盘方案
方案一:独立式键盘。独立式键盘的各个按键相互独立,每个按键独立地与一根数据输入线(单片机并行接口或其他芯片的并行接口)连接。独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根接口线,在按键数量不多时,接口线占用多。所以,独立式按键常用于按键数量不多的场合。
由于本设计只用了四个按键,不需要采用矩阵式键盘,所以选用采用独立式键盘。
(3)计时方案 采用软件控制:
利用单片机内部的定时/计数器进行定时,配合软件定时实现时、分、秒的计时。该方案能够使设计者,在设计的过程中容易实现,且节省硬件成本,因此本系统将采用软件方法实现计时。
10
第2章 硬件与软件的设计
2.1 硬件的说明
时钟电路的核心是AT89C51单片机,其内部带有2KB的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),无须外扩程序存储器。电脑时钟没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必外扩片RAM。系统配备8位LED数码管显示和3个独立式按键,用P0口作为键盘接口电路,P1口和P3口作为段码和位码输出口,并在字段码输出口接74LS245芯片,用该芯片来驱动LED数码管显示。利用P0.0、P0.1和P0.2作为功能按键输入口。
2.2 计算方法
(1) 采用计数器方式一来计数。当秒计数到59时,在下一个脉冲到来的同时,向分计数控制发出一个脉冲,分加一。当分计数到59时,当分计数接受下一个秒脉冲发出的信号时,向时计数控制发一信号,与此同时时自动加一!当时钟显示到23:59:59时,在下一个脉冲到来的同时,各位都清零!显示为00:00:00.
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。 则初值X满足(216-X)×1/12MHz×12μs =50000μs X=15536→0011110010110000→3CB0H
11
(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.3 软件的设计与说明
在软件设计中,整个程序的主框架是以定时1s计算的方式来实现电子钟。定时1s的程序段,使用动态显示程序实现延时,既完成了延时,也完成了数字的显示。在计算程序中,使对应于时、分、秒的变化量按照60进制和24进制进行计算,动态显示程序直接引用这些变量,达到显示的数字也随之不断变化,即完成了电子钟的功能。
其软件功能模块主要有键输入程序、中断程序、显示程序,以及延时程序。
需要说明的是,这里设计的是简易时钟,主要是用程序运行来计算时间,这样用程序来确定出1s的时间精度是很有限的,所以整个时钟的精度不太高。
12
第3章 程序的设计
3.1 主程序的设计
初始化将时、分、秒各单元的内容清空,置T0为计数器方式1,分别给计数器的高8位和低8位赋计数初值,启动T0工作。键入一个按键,如执行此动作,秒值加1,否则重新键如按键。
主程序模块:主程序流程图,如图3-1所示
开始 初始化 键输入 键执行 结束
图3-1 主程序流程图
3.2 键输入程序的设计
键输入程序用于调整时间。以秒为例,按下按键S-SET,判断
13
S-SET是否真的被按下,若没有键按下,转到A1程序段,再次键入按键,重新判断。若按键按下了,则调用延时程序,消除抖动现象秒值加1,当秒值大于60时,秒清零,进行下一次计时,同时分加一,并转到J0显示。此过程循环执行,其程序流程图如图3-2所示:
显示 N S-SET是否按下 Y 秒值加1 调用延时 N 秒>60 ? Y 清零 图3-2 键输入程序流程图
A1: LCALL DISPLAY;调用延时程序
JNB S_SET,S1;判断按键是否按下 JNB M_SET,S2 JNB
H_SET,S3
LJMP A1
14
S1: LCALL DELAY
JB INC
S_SET,A1 SECOND
;去抖动
;秒值加1
MOV A,SECOND
;判断是否加到60秒
CJNE A,#60,J0 MOV LJMP J0 JB
S_SET,A1
SECOND,#0 ;秒清0
J0:
LCALL DISPLAY ;调用显示 SJMP J0
3.3 显示程序的设计
显示其时、分、秒的数值,和两个分隔符。以显示秒为例,当P3.7输入高电平时,秒的个位所对应的字段码点亮,显示其秒的个位;当秒有十位输入时,P3.6输入高电平,秒所十位对应的字段码点亮,显示其秒十位。其程序流程图如图3-3所示。
15
取字段码 取字位码 显示秒个位 显示秒十位 调用延时 图3-3 显示程序流程图
DISPLAY:MOV A,SECOND ;显示秒 MOV B,#10 DIV AB CLR P3.6
MOVC A, @A+DPTR ;取字段码 MOV P0, A
LCALL
DELAY ;调用延时
SETB P3.6 ;显示秒十位 MOV A,B CLR
P3.7
MOVC A,@A+DPTR ;取字段码
16
MOV P0,A
LCALL DELAY ; 调用延时,去抖动 SETB P3.7 ;显示秒个位 CLR
P3.5
3.4 延时程序的审计
按键抖动时间一般为5ms~10ms,因此延时10ms,其流程图如图3-4所示:
#10送R6 #250送R7 N (R6)=(R7Y 返回
图3-4 延时程序流程图
DELAY: D1:
MOV MOV
R6,#10 ;延时10ms R7,#250
DJNZ R7,$ DJNZ R6,D1 RET
17
3.5 中断程序的设计
中断程序主要用于控制显示的字符。当秒值大于60时,秒清零,重新计数,分值加1,秒、分同时显示;当分值大于60时,分清零,重新计数,小时加1,秒、分、时同时显示,当小时大于23时,一天的计时完毕,秒、分、时均清零,进行第二天的计时。此任务循环执行。其程序流程图如图3-5所示:
图3-5 中断程序流程图
18
DISPLAY: MOV A,SECOND ;显示秒 MOV B,#10 DIV AB CLR
P3.6
MOVC A, @A+DPTR MOV
P0, A
LCALL DELAY ;调用延时 SETB P3.6 ;显示秒的十位 MOV A,B CLR
P3.7
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY
SETB P3.7 ;显示秒的个位 CLR
P3.5 MOV
P0,#40H
;显示分隔符 LCALL DELAY SETB P3.5 MOV A,MINUTE ;显示分钟 MOV B,#10 DIV AB CLR
P3.3
MOVC A,@A+DPTR
MOV P0,A
19
LCALL DELAY
SETB P3.3 ;显示分的十位 MOV A,B CLR
P3.4
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY
SETB P3.4 ;显示分个位 CLR
P3.2 MOV
P0,#40H
;显示分隔符LCALL DELAY SETB P3.2
A,HOUR
;显示小时
MOV B,#10 DIV AB CLR
P3.0
MOVC A,@A+DPTR MOV P0,A LCALL DELAY
SETB P3.0 ;显示时的十位 MOV A,B CLR
P3.1
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY
20
MOV
SETB P3.1 ;显示时的个位 RET
第4章 仿真与调试
4.1 电路仿真
此设计的电路在单片机仿真软件[Proteus.Professional.7.1]中进行仿真,仿真电路如图4-1所示:
图4-1 电子钟仿真电路图
21
在KEIL (单片机汇编) 软件中编写好的程序,将程序放入单片机仿真软件中,结合硬件电路进行调试与运行并生成HEX文件,并将其导入protues单片机中进行仿真。
通过按键对时间进行调整。如显示时间为21-32-27,既是21点32分27秒,通过以下调整则可实现:
(1) 按动S-SET键,将秒调到27; (2) 按动M-SET键,将分调到32; (3) 按动H-SET键,将时调到21。
通过此方法可将时间调整到任何需要显示的时间。
4.2 程序调试
将简易时钟的程序写入已焊接好的模拟电路板内,接上电源,进行模拟调试!
22
总结
通过本次课程设计,让我学道了很多东西。让我对原本不是太擅长的单片机编程有了进一步的了解。由原来的看不懂什么程序,到现在的基本能看懂程序。由原来的对于程序的编写差不多不会,到现在的能编写一些基本的程序。但是对于各程序之间的链接还是存在那么些不会。掌握了编写程序时所要撞我的的那些基本逻辑运算。在做本次课程设计之前,我一直以为汇编编写程序比C51语言编写程序麻烦,但通过本次课程设计,我明白了,其实汇编编写程序比C语言编写更加直接、更加直观!并且由汇编编写的程序使阅读者更加容易懂得、明了其中的逻辑关系。
在对课程设计指导书上的C语言程序进行调试运行和改善的时候,出现了几处错误,经过跟同学的商量,在同学的帮助下,进行了改正和完善。虽然在做扩展功能的时候出现了一些麻烦,但是还是努力克服过去了。
23
附录
附录A 参考文献
1、《单片机原理及应用》李建忠 编 西安电子科技大学出版社 2、《单片微型计算机原理与接口技术》 高峰 编 电子工业出版社 3、《单片机应用新技术教程》邹逢兴 编 高等教育出版社 4、《16位微型计算机原理接口及其应用》 朱宇光 编 电子工业出版社
5、《微型计算机原理与接口技术》 吴秀清 编 中国科学技术出版社
6、《微型计算机接口技术》 邓亚平 编 清华大学出版社 7、《单片机原理及及应用》 王迎旭 编 机械工业出版社 8、百度文库
24
附录B 系统原理图
25
附录C 程序清单
S_SET
BIT
P1.0
;数字钟秒控制位 ;分钟控制位 ;小时控制位
M_SET BIT H_SET BIT
P1.1 P1.2
SECOND EQU MINUTE EQU HOUR EQU TCNT EQU
ORG
30H 31H
32H 34H 00H
SJMP START ORG
0BH
LJMP INT_T0
DPTR,#TABLE HOUR,#0 MINUTE,#0 SECOND,#0 TCNT,#0
TMOD,#01H ;置T0为计数器方式1 TH0,#(65536-50000)/256
;定时50毫秒
;初始化
START:
MOV
MOV MOV MOV MOV MOV MOV MOV MOV
TL0,#(65536-50000)MOD 256 IE,#82H
SETB TR0 ;启动T0工作
DISPLAY
26
A1:
LCALL
JNB S_SET,S1 JNB M_SET,S2 JNB
H_SET,S3
LJMP A1
S1: LCALL DELAY
JB S_SET,A1 INC
SECOND
MOV A,SECOND
CJNE A,#60,J0 MOV SECOND,#0
LJMP J0
S2:
LCALL DELAY
JB
M_SET,A1
K1:
INC MINUTE
MOV
A,MINUTE
CJNE A,#60,J1 MOV MINUTE,#0
LJMP J1
S3: LCALL DELAY
JB
H_SET,A1
K2:
;去抖动
;秒值加1
;判断是否加到60秒
;分钟值加1
;判断是否加到60分
27
INC MOV
HOUR A,HOUR
;小时值加1
CJNE A,#24,J2 ;判断是否加到24小时
MOV
HOUR,#0
LJMP J2 J0: JB
S_SET,A1
LCALL DISPLAY
SJMP J0
J1:
JB M_SET,A1
LCALL DISPLAY
SJMP J1
J2:
JB H_SET,A1 LCALL DISPLAY
SJMP J2
INT_T0: MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000)MOD 256
INC
TCNT
MOV
A,TCNT
CJNE A,#20,RETUNE ;计时1秒 INC
SECOND
MOV TCNT,#0 MOV
A,SECOND
CJNE A,#60,RETUNE
28
INC MINUTE
MOV SECOND,#0 MOV
A,MINUTE
CJNE A,#60,RETUNE INC
HOUR
MOV MINUTE,#0 MOV
A,HOUR
CJNE A,#24,RETUNE
MOV
HOUR,#0 RETUNE: RETI DISPLAY: MOV A,SECOND
MOV
B,#10 DIV
AB
CLR
P3.6
MOVC A, @A+DPTR MOV
P0, A
LCALL DELAY SETB P3.6 MOV A,B CLR
P3.7
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY
;显示秒29
SETB P3.7 CLR
P3.5 MOV
P0,#40H
LCALL DELAY SETB P3.5 MOV A,MINUTE MOV B,#10 DIV AB CLR
P3.3
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB P3.3 MOV A,B CLR
P3.4
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB P3.4 CLR
P3.2 MOV
P0,#40H
LCALL DELAY SETB P3.2
A,HOUR MOV
B,#10
;显示分隔符
;显示分钟 ;显示分隔符 ;显示小时
30
MOV
DIV AB CLR
P3.0
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB P3.0 MOV A,B CLR
P3.1
MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB P3.1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H
DB
6DH,7DH,07H,7FH,6FH
DELAY:
MOV R6,#10
D1: MOV
R7,#250
DJNZ R7,$ DJNZ R6,D1 RET
END
31
电气信息学院课程设计评分表
评 价 项 目 优 设计方案的合理性与创造性 良 中 及格 差 软件设计完成情况 硬件调试完成情况 设计说明书与设计图纸质量 答辩情况 独立工作能力 完成任务情况 出勤情况 综 合 评 分
指导教师签名:_______________ 日 期:_______________
32
正在阅读:
单片机课程设计12-14
河南省洛阳市2022届高三第三次统一考试理综试卷含答案04-13
诚信投标承诺书03-14
安全生产标准化实施情况评定报告11-09
灾难突然降临的时候阅读理解答案灾难突然降临的时候(阅读理解)03-18
经典散文:日子是怎么过的03-21
票据法案例分析(36)11-27
动人感悟经典语录大全11-20
2015-2016学年福建省厦门一中九年级(上)期中物理试卷和答案02-03
放烟花小学生二年级作文06-13
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 单片机
- 课程
- 设计
- 2011年电大企业集团财务管理期末考复习资料
- 剧本《曾经的梦想》
- 豆粕和发酵豆粕深加工工艺简介
- 猪附红细胞体病诊治报告
- 基础教育校园信息化公共云服务平台建设项目可行性研究报告 - 图文
- JAVA课程设计实验报告“聊天室”报告
- 2014年最新苏教版四年级数学上册第8单元垂线与平行线教案
- 汪洋论学习:不补齐知识“短板”就会出现工作“短板”
- 汽车行驶转向制动系实训指导书(2017年)
- 二年级奥数 第38讲 简单推理
- 如何正确的让孩子玩玩具
- 度米文库汇编之储蓄银行实习心得体会
- 2011年天津市普通高中学业水平考试地理复习题 - 水资源对人类
- 特种设备使用安全管理 - 图文
- 智能溶出试验仪操作规程
- 安全预评价所需资料清单
- 离散数学-2005`2006(2)-试卷A
- 自动回转刀架设计
- 浅谈任务型教学在英语教学中的应用-精选文档
- 小型电机项目可行性研究报告(目录) - 图文