当前位置:文档之家› 单片机课程设计

单片机课程设计

课 程 设 计课程名称 单片机原理及应用 课题名称 LCD 显示简易时钟专 业班 级学 号姓 名指导教师2012年6月24日湖南工程学院课程设计任务书课程名称单片机原理及应用课题简易时钟专业班级学生姓名学号指导老师审批任务书下达日期2012年6 月18日任务完成日期2012年6 月30日设计内容与设计要求设计内容:设计一个简易时钟,设计内容包括:(1)时间显示形式为HH:MM:SS(H,M,S分别代表时间的小时,分钟,秒钟);(2)选用LCD显示器或者LED显示器(3)时间可调整,具备闹钟功能*(可选)(4)具有跑表选择功能*(可选)(5)其它功能*(可选)设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行软硬件调试;主要设计条件1 单片机开发板2 PC机3 PROTEL软件4 PROTEUS软件说明书格式1.课程设计任务书2.目录3.系统总体方案选择与说明4.系统结构框图与工作原理5.各单元硬件设计说明及计算方法6.软件设计与说明(包括流程图)7.调试结果与必要的调试说明8.使用说明9.程序清单10、总结11、参考文献附录附录A 系统原理图附录B 程序清单进度安排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五、各硬件模块设计第二周星期一、各硬件模块设计星期二、各软件模块设计星期三、各软件模块设计星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩参考文献1、《单片机原理及应用》李建忠编西安电子科技大学出版社2、《单片微型计算机原理与接口技术》高峰编电子工业出版社3、《单片机应用新技术教程》邹逢兴编高等教育出版社4、《16位微型计算机原理接口及其应用》朱宇光编电子工业出版社5、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社6、《微型计算机接口技术》邓亚平编清华大学出版社7、《单片机原理及及应用》王迎旭编机械工业出版社目录前言 (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)前言单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。

而本学期我们主要学习的是C51单片机的一些基本原理和应用。

51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。

目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。

51单片机是基础入门的一个单片机,还是应用最广泛的一种。

本次课程设计是要用C51单片机设计一个简易时钟,首先了解它要实现的功能,时钟系统最基本的功能就是实现计时,在这里设计的简易时钟,它能实现计时和校时的功能,给电子钟加上电自动计时,设计一个按键对时钟进行复位和三个按键对时间进行调整。

第1章简易时钟的系统设计1.1系统总体方案选择设计一个简易时钟,首先了解它要实现的功能,时钟系统最基本的功能就是实现计时,在这里设计的简易时钟,它能实现计时和校时的功能,给电子钟加上电自动计时,设计一个按键对时钟进行复位和三个按键对时间进行调整。

硬件设计很简单,主要包括:单片机、按键电路、驱动显示电路,以及LED显示器四个部分。

单片机选用AT89C51芯片,它无须外扩程序存储器,设计电路很简单。

由于只用了四个按键,所以采用独立式按键使设计更简单。

显示时、分、秒加两个分隔符,采用8位的数码管,用常用的74LS244来驱动LED数码管显示字符。

简易时钟可实现校时和整点报时功能,该软件采用C语言来实现,主要包括主程序、键输入程序、显示程序、定时程序和中断程序等软件模块。

把原程序加入原理图,做出电子钟的仿真,以秒计数并显示时、分、秒。

其中秒和分为60进制,小时为24进制计数。

可通过按键实现时钟复位和分、秒、时的校正。

1.2系统结构框图与工作原理以单片机技术为核心,充分应用各种外围电路元器件,设计一个通过显示器显示时间(时、分、秒)的简易时钟。

要求:1、上电时,时、分、秒显示为00时、00分、00秒,并以秒为单 位开始计时;2、运行状态下,按动控制按扭S-SET ,对秒进行调整;3、运行状态下,按动控制按扭M-SET ,对分进行调整;4、运行状态下,按动控制按扭H-SET ,对小时进行调整。

5、当数字时钟运行到正点时,实现自动报时功能。

6、按下T-SET 键是实现小时由24进制和12进制的相互转换。

电子钟的电路图主要由单片机(AT89C51)、键盘电路、驱动显示电路和LED 显示器四部分组成,它主要实现时钟的显示,以及对时、分、秒进行调整,即实现调时的功能。

其数字钟系统整体结构如图1-2所示。

图1-2 简易时钟系统整体结构(1)显示方案:动态显示则是一位一位地轮流点亮显示器地各个位(扫描)。

对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。

动态显示硬件连接简单,信息刷新七段数码管AT89C51 驱动 LED 显示器 位选按 键速度快。

由于本次设计是对时间进行显示,如采用静态显示,则所占用的I/O口较多,电路较复杂,所以在此选择动态显示。

(2)键盘方案方案一:独立式键盘。

独立式键盘的各个按键相互独立,每个按键独立地与一根数据输入线(单片机并行接口或其他芯片的并行接口)连接。

独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根接口线,在按键数量不多时,接口线占用多。

所以,独立式按键常用于按键数量不多的场合。

由于本设计只用了四个按键,不需要采用矩阵式键盘,所以选用采用独立式键盘。

(3)计时方案采用软件控制:利用单片机内部的定时/计数器进行定时,配合软件定时实现时、分、秒的计时。

该方案能够使设计者,在设计的过程中容易实现,且节省硬件成本,因此本系统将采用软件方法实现计时。

第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μsX=15536→0011110010110000→3CB0H(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。

2.3 软件的设计与说明在软件设计中,整个程序的主框架是以定时1s计算的方式来实现电子钟。

定时1s的程序段,使用动态显示程序实现延时,既完成了延时,也完成了数字的显示。

在计算程序中,使对应于时、分、秒的变化量按照60进制和24进制进行计算,动态显示程序直接引用这些变量,达到显示的数字也随之不断变化,即完成了电子钟的功能。

其软件功能模块主要有键输入程序、中断程序、显示程序,以及延时程序。

需要说明的是,这里设计的是简易时钟,主要是用程序运行来计算时间,这样用程序来确定出1s的时间精度是很有限的,所以整个时钟的精度不太高。

第3章程序的设计3.1 主程序的设计初始化将时、分、秒各单元的内容清空,置T0为计数器方式1,分别给计数器的高8位和低8位赋计数初值,启动T0工作。

键入一个按键,如执行此动作,秒值加1,否则重新键如按键。

主程序模块:主程序流程图,如图3-1所示开始初始化键输入键执行结束图3-1 主程序流程图3.2 键输入程序的设计键输入程序用于调整时间。

以秒为例,按下按键S-SET,判断S-SET 是否真的被按下,若没有键按下,转到A1程序段,再次键入按键,重新判断。

若按键按下了,则调用延时程序,消除抖动现象秒值加1,当秒值大于60时,秒清零,进行下一次计时,同时分加一,并转到J0显示。

此过程循环执行,其程序流程图如图3-2所示:图3-2 键输入程序流程图A1: LCALL DISPLAY ;调用延时程序JNB S_SET,S1;判断按键是否按下 JNB M_SET,S2 JNBH_SET,S3LJMP A1显示S-SET 是否按下秒值加1秒>60 ?清零N调用延时YY NS1: LCALL D ELAY ;去抖动JB S_SET,A1INC SECOND ;秒值加1MOV A,SECONDCJNE A,#60,J0 ;判断是否加到60秒MOV SECOND,#0 ;秒清0LJMP J0J0: JB S_SET,A1LCALL DISPLAY ;调用显示SJMP J03.3 显示程序的设计显示其时、分、秒的数值,和两个分隔符。

相关主题