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

单片机课程设计报告

单片机原理及应用课程设计

专业:电气工程及自动化

设计题目:电子时钟

班级:电自0941 学生姓名:学号:17

指导教师:

分院院长:

教研室主任:

电气工程学院

一、课程设计任务书

1.课程设计项目

电子时钟(LED显示)

2.设计内容

1)以MCS-51系列单片机为核心器件组成电子时钟控制系统;

2)利用提供单元模块构成硬件系统。

3)系统程序编制与调试;

4)电路系统的综合调试;

5)撰写课程设计论文;

6)完成课程设计论文答辩。

3.设计要求

1)以STC10F04E单片机为控制核心,用单片机内部定时器为时钟源,设计电子时钟,使用4位数码管显示时、分,后两位数码管(分)的闪烁显示秒。

2)显示格式为:“XXXX

3)用4个功能键操作来进行对时。可自行定义各键的功能,也可按下述方式定义K1~K4键的功能如下。

K1—功能键,每按下一次对应的LED闪烁。

K2—移位键,每按下一次向后移一位。

K3—加1键。K4—减1键。

4.参考资料

[1]李广弟,朱月秀,王秀山编著.单片机基础. 北京:北京航空航天大学出版社,2001

[2] 何立民编著.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学出版社,1999

[3] 蔡美琴等编著.MCS-51 单片机系统及应用.北京:高等教育出版社.1992

5.设计进度(2011年6月13日至2011年6月24日)

时间设计内容

第1-2天查阅资料,方案比较、设计与论证,

理论分析与计算

第3-5天硬件电路调试

第6-8天系统调试

第9-10天书写报告、答辩

6.设计地点

新实验楼323微机实验室

单片机原理及应用课程设计

班级:电自0941班姓名:贾立强

学号: 17 指导教师:唐耀武

撰写日期: 2012/6/28

目录

绪论 (6)

课程设计内容与要求分析 (2)

1.1课程设计的目的与意义 (2)

1.2 课程设计任务与内容 (2)

1.3 设计要求 (2)

第二章方案设计与论证 (4)

2.1 方案的选择 (4)

2.1.1 计时方案 (4)

2.1.2显示方案 (4)

2.2 硬件原理图 (5)

2.3硬件简介 (6)

2.3.1 74LS164简介 (6)

2.3.2 STC10F04XE单片机简介 (7)

2.3.3晶振电路 (9)

2.3.4 显示与校正电路 (10)

第三章软件应用与调试 (12)

3.1 模块分析与简介 (12)

3.1.1主程序模块 (12)

3.1.2计时模块 (13)

3.1.3 时间设置模块 (14)

3.1.4显示模块 (15)

3.2 程序分析 (16)

3.2.1动态显示分析 (16)

3.2.2 分、小时的走的走时程序 (19)

3.2.3 按键程序分析 (20)

3.3程序调试 (22)

第四章课程设计总结 (25)

参考文献 (27)

绪论

进年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域. 本文的电子钟系统是以单片机STC10F04XE为核心,扩展用74LS164做并行输出、采用共阳极LED的动态显示,三极管等元器件组成。利用单片机内部的定时计数器进行中端定时,配合软件延时实现分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。但能降低开发成本,具有推广价值。随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从 4 位、8 位、16 位到 32 位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试 3 个过程。如果采用单片机系统的虚拟仿真软件——Proteus,则不用制作具体的电路板也能够完成以上工作。

第一章课程设计内容与要求分析

1.1课程设计的目的与意义

本次课程设计需用到74LS164芯片、用扩展74LS164的并行输出做段选,用三极管做位选,用单片机STC10F04XE进行控制,通过本次课程设计使我们掌握了74LS164,STC10F04X单片机以及三极管的使用方法和编程方法,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程。同时并了解综合问题的程序设计,掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,让我们将理论与实践相结合,培养了我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路,电子元器件等方面的知识进一步加深认识,同时在软件编程,排错调试等综合技能得到了较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下了一个坚实的基础。

1.2 课程设计任务与内容

1)以MCS-51系列单片机为核心器件组成电子时钟控制系统;

2)利用提供单元模块构成硬件系统。

3)系统程序编制与调试;

4)电路系统的综合调试;

5)撰写课程设计论文;

6)完成课程设计论文答辩。

1.3 设计要求

1)以STC10F04XE单片机为控制核心,用单片机内部定时器为时钟

源,设计电子时钟,使用4位数码管显示时、分,后两位数码管(分)的闪烁显示秒。

2)显示格式为:“XXXX

3)用4个功能键操作来进行对时。可自行定义各键的功能,也可按下述方式定义K1~K4键的功能如下。

K1—功能键,每按下一次对应的LED闪烁。

K2—移位键,每按下一次向后移一位。

K3—加1键。

K4—减1键。

附加功能:可以扩展定时,闹钟等功能。

显示:采用共阳极LED的动态显示方式,用扩展74LS164的并行输出做段选,74LS164的CLK接P3.1(TXD),数据输入端接P3.0(RXD)。P1.4— P1.7做位选。

第二章方案设计与论证

2.1 方案的选择

2.1.1 计时方案

方案1:采用实时时钟芯片

现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS13等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

方案2:使用单片机内部的可编程定时器。

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。本次课程设计我们采用方案2。

2.1.2显示方案

对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个LED都要占有一个I/O 口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。

LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。

本系统需要采用4位LED数码管来分别显示时、分、秒,因数码管数

较多,故本系统选择动态显示方式。

2.2 硬件原理图

采用共阳极LED的动态显示方式,用扩展74LS164的并行输出做段选,74LS164的CLK接P3.1(TXD),数据输入端接P3.0(RXD)。P1.4— P1.7做位选。如图2—1所示。

键盘显示原理图如图2—2所示

图2—1 数码管显示原理图

图2—2键盘显示原理图

2.3硬件简介

2.3.1 74LS164简介

74LS164为8 位移位寄存器,串行输入,并行输出。其引脚与功能如图2—3所示

当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当 A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。当A、

图2—3 74LS164引脚与功能图

B有一个为高电平,则另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0的状态。我们本次课程设计用扩展74LS164的并行输出做段选。

2.3.2 STC10F04XE单片机简介

核心单片机硬件系统的设计STC10F04XE单片机实物如图2—4所示,STC10F04XE单片机的功能介绍与其引脚图如图2—5所示。STC10F04XE

主要性能:

(1)高速:1个时钟周期/机械周期/增强型8051内核、速度比普通8051快8-12倍。

(2)宽电压:5.5V-4.1V/3.7V,3.6V-2.4V/2.1V;

(3)低功耗设计:空闲模式(可由任意一个中断唤醒);

图2—4 STC10F04XE单片机实物

图2—5 STC10F04XE单片机引脚图

图2—6 STC10F04XE单片机原理图

STC10F04XE主要性能:

(1) 高速:1个时钟周期/机械周期/增强型8051内核、速度比普通8051快8-12倍。

(2) 宽电压:5.5V-4.1V/3.7V,3.6V-2.4V/2.1V;

(3) 低功耗设计:空闲模式(可由任意一个中断唤醒);

(4) 低功耗设计:掉电模式(可由任意一个外部中断唤醒,可支

持下降沿/低电平和远程唤醒,STC10F04XE还可以通过内部专用掉电唤醒定时器唤醒)。

(5)工作频率:0-35HZ,相当于普通8051:0-420HZ;

(6)时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户

程序时设置。

(7) 1/2/3/4/5/6/8/16/32/52/62K字节片内Flash程序存储器,擦写次

数10万次以上;

(8) 1280/256字节片内RAM数据存储器。

(9)芯片内EEPROM功能,擦写次数10万次以上;

(10) ISP/IAP,在系统编程在应用编程,无需编程器/仿真器。

(11) 2个16为定时器,兼容普通8051的定时器T0/T1;

(12) 1个独立波特率发生器(故无需T2做波特率发生器);

(13)可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出

时钟,BRT在P1.0输出时钟;

(14) 硬件看门狗(WDT);

(15)异步串行口(UART),兼容普通8051,可作为2个串口(串

口可在P3与P1之间自由切换);

(16)先进的指令集结构,兼容普通8051指令集,有硬件乘法/除法

指令;

2.3.3晶振电路

晶振电路如下图所示

图2—7晶振电路图

本设计晶振电路采用12M的晶振。晶振的作用是给单片机正常工作提供稳定的时钟信号。单片机的晶振并不是只能用12M,只要不超过20M就行,在准许的范围内,晶振越大,单片机运行越快,还有用12M的就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M的话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF 之间,这里连接的是30pF的电容。

机器周期=10*晶振周期=12*系统时钟周期

2.3.4 显示与校正电路

就时钟而言,通常可采用液晶显示或数码管显示。由于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器的接口要求较高,占用资源多。而数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。

对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个LED都要占有一个I/O 口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较

适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。

LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。

本系统需要采用4位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。

本设计利用按键开关来校正时钟显示的数字。当按钮按下时,将在相应的端口输入一个低电平,通过相应的程序来改变时钟显示。其中K1按键为功能键字;K2按键为移位,K3增加所选数字的数值;K3按键用来减少所选数字的数值。

第三章软件应用与调试

根据电子时钟的工作流程,程序设计可分为以下几个功能模块:包括主程序模块,计时模块,时间设置模块,显示模块。

3.1 模块分析与简介

3.1.1主程序模块

主程序主要用于系统初始化:设置计时缓冲区的位置及初值,设置定时器的工作方式和计数初值等参数。主程序流程如下图所示。

开始

图3—1主程序流程图

3.1.2计时模块

即定时器0中断子程序,完成刷新计时缓冲区的功能。

系统使用12MHz的晶振,假设定时器0工作在方式1,则定时器的最大定时时间为65.536ms,这个值远远小于1s。因此本系统采用定时器与软件循环相结合的定时方法。设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s,上述过程重复60次为1分,分计时60次为1小时,重新回到00:00。

因定时器0工作在方式1,则50ms定时对应的定时器初值为:TH0=(65536-50000)/256;

TL0=(65536-50000)%256。

图3-2 计时模块流程图

但应当指出:CPU从响应T0中断到完成定时器初值重装这段时间,定时器T0并不停止工作,而是继续计数。因此,为了确保T0能准确定时50ms,重装的定时器初值必须加以修正,修正的定时器初值必须考虑到从原定时器初值中扣除计数器多计的脉冲个数。由于定时器计数脉冲的周期恰好和机器周期吻合,因此修正量等于CPU从响应中断到重装完TL0为止所用的机器周期数。

3.1.3 时间设置模块

该模块由键盘输入相应的数据来设置当前时间。程序通过调用一个键盘设置子程序通过键盘扫描将键入的4位时间值送入键值显示。

设置时间后,时钟要从这个时间开始计时,作为当前计时起始时间。

时间设置和键盘设置子程序的流程图如下图所示。

图3—3 键盘设置子程序流程图3.1.4显示模块

显示程序流程图如下图所示。

3--4显示程序流程图

相关主题
文本预览
相关文档 最新文档