单片机课程设计 - (00-59秒计时器设计) - 图文

更新时间:2023-11-18 17:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计

课程名称: 00-59秒计时器设计 学 院: 电气工程学院 专 业: 电气工程及其自动化 姓 名: 学 号: 年 级: 任课教师:

年 月 日

目录

一、设计目的及要求

1.1、设计目的 1.2、设计要求

二、设计方案

2.1、硬件设计

2.2、本次设计所用元件清单 2.3、芯片选址方式的确定 2.4、输出数据的显示方式 2.5、8098数据输出方式 2.6主程序的设计 2.7延时程序的设计

三、硬件图

四、程序流程图及程序

4.1 程序流程图 4.2 汇编程序清单

五、课程设计中遇到的问题 六、设计心得体会 参考资料

一、设计目的及要求

1.1、设计目的

本次课程设计的题目是00-59秒计时器设计,通过课程设计使学生更进一步掌握单

片机原理与应用课程的有关知识,提高用汇编语言编程的能力,并将所学的内容加以综合;通过查阅资料,了解所学知识的应用情况;通过课程设计全面系统的了解单片机的设计方法及设计步骤,了解微机系统的基本组成及开发设计过程中需要注意的问题。

1.2、设计要求

1、利用8098单片机设计00-59秒计时器,分别显示秒时间的十位和个位。

2、00-59秒计时器从0开始计时,首先显示“00”,每隔一秒后再显示下一位数,一直到显示完“59”后结束计时。

二、设计方案

2.1、硬件设计

此次课程设计所用到的单片机为8098芯片。8098芯片的内部硬件结构分为三大部分,简述如下。

1.中央处理单元CPU

CPU包括运算器和控制器,是一个高性能的16位CPU。运算器进行各种算术或逻

辑运算,控制器则发出完成各种指令所规定操作的控制指令。 2.存储器

8098芯片带有内部随机存储器RAM,和一般RAM不同,这一RAM并不存放程序,

而是用于存放与运算过程或输入输出操作有关的数据或信息,起作用类似于存储器,因此有把它称之为存储器空间或内部寄存器文件。

3.输入输出功能部件

8098芯片内部有多种具有I/O功能的部件,利用这些部件,用户可直接进行I/O

操作,在不需外加电路或只需进行简单电路设计的情况下,可使I/O设备与芯片接口,大大简化了用户的电路设计工作。

由于8098片内仅有256个单元的RAM,只作为寄存器使用,因此在构成实际应用系统时,必须外接ROM和RAM芯片。此外,最终要把计时数据显示出来还需用到许多相关的元件。

2.2、本次设计所用元件清单

元件名称 8098单片机 74LS138译码器 6264RAM芯片 2764EPROM芯片 8255A可编程并行I/O接口芯片 74LS373锁存器 74HC4511七段显示译码器 共阴极七段式数字显示器 数量 1 1 1 1 1 1 2 2

部分元器件结构功能介绍如下。

1.74LS138译码器

74ls138是3/8译码器,即对3个输入信号进行译码。得到8个输出状态。G1,G2A,G2B,为数据允许输出端,G2A,G2B低电平有效。G1高电平有效。A,B,C为译码信号输出端,Y0~Y7为译码输出端,低电平有效。

2.6264RAM芯片

6264芯片是容量为8K×8的静态RAM芯片,采用CMOS工艺制作,为双列直插式封装,共28只引脚.

3.2764EPROM芯片

它是可用紫外线擦除的静态数字存储器,可能是储存亮灯的花样。在外围电路不变的情况下,仅靠改变2764中的内容就可改变亮灯顺序。

4.8255A可编程并行I/O接口芯片

8255A是一种通用的可编程并行I/O接口,共有40条引脚,其中I/O线24条,分为A,B两组,允许分别编程。该芯片有有三个均为8位的数据端口A,B,C。5.74LS373

锁存器:74LS373 的输出端 O0~O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,Q0~Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,Q 随数据 D 而变。当 LE 为低电平时,D 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。

5.CMOS七段显示译码器74HC4511

该种译码器是以输出高电平有效,用以驱动共阴极显示器,该集成显示译码器设有三个辅助控制端LE,BL,LT,其中LE为高电平有效,BL,LT为低电平有效。

6.七段式数字显示器(发光二极管)

七段数码显示器是微机系统常用的输出设备。 多个发光二极管封装在一起的七段数

码显示器按其连接形式可分为共阳显示器和共阴显示器。

2.3、芯片选址方式的确定

6264RAM和2764ROM的选址方式定为全译码方式,8255A的选址方式定为部分译码

方式。对于这些外接芯片,它们的片选信号由74LS138译码器产生,P4.5、P4.6、P4.7口为000时选中6264RAM芯片,为001时选中2764ROM芯片,为010时选中8255A芯片;线选信号由P3口产生,对于6264RAM和2764ROM来说,线选信号需要用到P3口的全部8个引脚,8255A则只需用到P3.0、P3.1两个引脚即可,各个外接芯片的地址范围如下: 6264芯片:0000H~1FFFH; 2764芯片:2000H~3FFFH; 8255A芯片:端口A:5FFCH; 端口B:5FFDH; 端口C:5FFEH; 控制端口:5FFFH;

2.4、输出数据的显示方式

从P3口输出的数据被送至8255A,通过对8255A的A端口选址,将数据送至A端

口输出,A端口的高四位接到七段显示译码器74HC4511上,74HC4511后接七段式数字显示器;低四位同高四位的接法。

2.5、8098数据输出方式

P3口通过74LS373锁存器与6264RAM、2764ROM和8255A芯片的地址端口连接,当

需向或需从几个芯片送数据时,P3口先输出地址码至锁存器,在ALE引脚的信号控制下,锁存器将地址码锁存并在出线端保持,选中所需存储单元。然后P3口变为数据输送端口,开始传送数据。

2.6主程序的设计

首先,将需要输出的数存入存储器的一个连续空间内,共需要60个字节,分别

存储00~59的编码,然后建立指针,指向空间内第一个数据;程序初始化后开始执行。首先输出第一个数据00,延时1S时间后,输出第二个数据01;比较输出的数据与59的大小,若比59小,则返回延时程序继续延时,然后输出;若比59大,则程序在原地循环。

2.7延时程序的设计

延时程序由空操作指令组成,并用循环程序实现。完成延时1ms时用三条指令实

现,分别是两条NOP和一条DJNZ指令,执行该指令一次需要17T(4T+4T+9T),T=0.25us,于是循环次数为1ms/17T等于235。编写好延迟1ms的程序后,将该程序循环100次即得到延迟0.1S的程序,再循环10次就得到延迟1S的程序,即实现了要求。

三、硬件图

四、程序流程图及程序

4.1 程序流程图

(1)系统主程序流程图 延时1秒 输出首个数00H,指针指向下一个数 将所需输出的数存入在一个连续的存储器空间,并建立指向其首个数的指针 START Y 输出指针志向的数,指针指向下一个数 输出数小于59秒

N

(2)延时程序流程图

END

`

START 设置计数器AL 设置计算器BL 设置计算器CL CL-1 N 是否延时0.1秒 Y N

是否延时1秒 BL-1 Y

AL-1 N

是否延时1秒 Y

4.2 汇编程序清单

END AL EQUB 0026H BL EQUB 0027H CL EQUB 0028H DX EQU 0018H EL EQUB 0020H FX EQU 0022H GX EQU 0024H HL EQUB 0021H

ORG 2080H

LD DX, #5FFFH; LDB EL, #0080H; STB EL, [DX]; LD FX, #3500H; LD GX, #5FFCH; LDB HL, [FX]+; STB HL, GX; START:LDB AL, #0AH; LOOP: LDB BL, #64H; LOOP1:LDB CL, #EAH;

LOPP1:NOP; NOP; DJNZ CL, LOPP1; DJNZ BL,LOOP1; DJNZ AL,LOOP; LDB HL,[FX]+; STB HL, GX; CMPB HL, #3BH ; JLT START; HERE SJMP HERE;

对8255A控制端口赋值,赋值80H,对A选 作输出口,工作方式为0方式 建立指向储存器输出数的地址指针 通过A口输出00 延时1秒 输出下一个表示时间的数 比较输出数与59大小,若比59小,则延时1 秒后继续输出,反之程序结束

ORG 3500H DSEG: DB 00H 01H 02H O3H 04H 05H DB 06H 07H 08H 09H 0AH 0BH DB 0CH 0DH 0EH 0FH 10H 11H DB 12H 13H 14H 15H 16H 17H DB 18H 19H 1AH 1BH 1CH 1DH

DB 1EH 1FH 20H 21H 22H 23H 将需输出数存入存储器 DB 24H 25H 26H 27H 28H 29H DB 2AH 2BH 2CH 2DH 2EH 2FH DB 30H 31H 32H 33H 34H 35H DB 36H 37H 38H 39H 3AH 3BH END

五、课程设计中遇到的问题

在编程的时候,遇到的问题主要是如何设计延时程序使之刚好达到1S的延时,延时程序如下:

START: LDB AL, #0AH;

LOOP: LDB BL, #64H; (1) 4T LOOP1: LDB CL, #EAH; (2) 4T LOPP1:

NOP; (3) 4T

NOP; (4) 4T

DJNZ CL, LOPP1; (5) 9T/5T DJNZ BL,LOOP1; (6) 9T/5T DJNZ AL,LOOP; (7) 9T/5T

LDB HL, [FX]+;

STB HL, GX; CMPB HL, 3BH;

(1)延时1ms时,执行(3)(4)(5)语句,花费时间(4T+4T+9T)×234+(4T+4T+5T)

=3991T;

(2)延时0.1S时,执行(2)(3)(4)(5)(6)语句,花费时间(4T+3991T+9T) ×99+(4T+3991T+5T)=400396T;

(3)延时1S时,执行(1)(2)(3)(4)(5)(6)(7)语句,花费时间(4T+400396T+9T)×9+(4T+400396T+5T)=4004086T=1.001S

故每延时1S实际计时的时间为1.001S,相差0.001S,输出60次相差0.06S,比1S小很多,误差很小。控制输出的程序所用时间很小,可忽略不计。

六、设计心得体会

通过为期两周的单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中计时器的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。

参考资料

1 汪建.MCS-96系列单片机原理及应用技术.武汉:华中科技大学出版社,2004 2 楼然苗,李光飞.单片机课程设计指导.北京:北京航空航天大学出版社,2007 3 皮大能,南光群,刘金华.单片机课程设计指导书.北京:北京理工大学出版社,2010 4 李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,2005 5 彭宣戈.16位单片机原理及应用.北京:北京航空航天大学出版社,2006

6 薛青.单片机原理及接口技术-MCS 8096系列.哈尔滨:哈尔滨工业大学出版社,1997

本文来源:https://www.bwwdw.com/article/qc5v.html

Top