微机原理课程设计报告(电子时钟) - 范文中心

微机原理课程设计报告(电子时钟)

10/11

1. 设计目的

培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

掌握8255、8259、8253等芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8086微处理器完成了电子秒表系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

2. 设计内容

设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。利用功能键进行启/停控制。其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零 后重新开始计时。可用开关控制,也可用按键控制。(开关控制 ☆ )(按键控制★)

3. 设计要求

一.基本要求

1)设计可以显示1~60秒的无存储功能的秒表,最小单位为毫秒。

2)通过键盘按键控制秒表清零、暂停、继续,退出等。其中数字0控制清零,数字1控制继续和退出

二.提高要求:

1)秒表可以分组存储、批量显示、倒计时等。 2)采用图像显示,界面精美,设置报警声等

4. 设计原理与硬件电路

一. 整体设计思想

使用8253工作在方式0计数,对 1/100S计数,并讲计数值写入bl中并与100比较若不相等,则将计数值装换为10进制后送8255控制端显示,如相等则1S计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则1min计数程序加1之后并

与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则计数程序加1之后产生溢出,跳转清零程序将计数清零,同时数码管清零。 二. 使用各芯片的作用及工作原理

1、定时器/计数器8253

用系统8253定时器提供的55ms定时单位,设计秒表定时程序。 有关系统定时方法:

PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK信号, 频率:f=1.1931816MHz。

定时器0输出方波的频率:fout=1.1931816/65536=18.2Hz。

输出方波的周期Tout=1/18.2=54.945ms。8253A每隔55ms引起一次中断,作为定时信号。可用55945ms作基本计时单位。

用BIOS调用INT 1AH可以取得该定时单位。例:1秒=18.2 (计时单位) 8253的引脚图及硬件连接图如下图示:

8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成: (1) 数据总线缓冲器(8位、三态、双向); (2) 读/写控制逻辑;

CS:片选信号,低电平有效; RD:读信号,低电平有效; WR:写信号,低电平有效 A1A0:端口选择信号

(3) 三个通道( 0 ~ 2),由A0,A1控制选择; (4) 一个控制寄存器;

《8253引脚图》 硬件连接图

当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连。 计数器(0 ~ 2)即三个计数器/定时器通道。每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。作定时器用:其CLK端上的输入脉冲应是标准的、

精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 = 时钟脉冲周期X预置的计数初值 由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。 表8-4 控制功能表

2、 用可编程并行接口芯片8255的PA口以及PB口实现数码管输出,PC口实现按键实现数据显示输出

8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255 的内部结构及引脚如图2.1所示:

图2.1 内部结构及引脚

8255 工作方式控制字和C口按位置位/ 复位控制字格式如图3-7-2 所示:

图2.2 置位/ 复位控制字格式

3. 锁存器273

74LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器,下面介绍一下他的管脚图功能表等资料。

(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;

(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.

74ls273管脚功能:

1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

4. 数据收发器245

当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)

*DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。

5. 译码器74ls154

74ls154为4—16线制译码器其引脚图如下图所示

6. 7段数码管

数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划

5.程序流程图

6. 程序代码

a1 equ 0000h b1 equ 0002h c1 equ 0004h

ctr1 equ 0006h ;8255各端口地址

a2 equ 0200h ;8253计数器0端口地址 ctr2 equ 0206h ;8253控制端口地址 a3 equ 0100h data segment ; keynum db 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H tab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H buf db 0,0,0,0

buf1 db 0,0,0,0,0,0,0,0

buf2 db 0,0;前为第一开关次数 buf3 db 80 dup(?) data ends

code segment 'code'

assume ds:data,cs:code start: mov ax,data mov ds,ax

;设中断入口地址设置 mov ax,0 mov es,ax mov di,08

mov ax,offset intr_key cld stosw

mov ax,seg intr_key stosw

mov ax,data mov es,ax

;8255写入控制字

mov al,10001001b ;A口B口输出显示,C口高四位低四位输入 mov dx,ctr1 out dx,al

n3: call jishu jmp n3

n2: lea si,buf2 mov bh,00h mov bl,1h[si] lea di,buf3 add di,bx add bl,8

mov 1h[si],bl lea si,buf1 cld

mov cx,8 rep movsb n4: call dis jmp n4 n5: lea si,buf2 mov bh,00h

mov bl,1h[si] cmp bl,0 jz n1

lea di,buf1 sub bl,8

mov 1h[si],bl lea si,buf3 add si,bx cld mov cx,8 rep movsb n6: call dis jmp n6

n1: call qinlin jmp n1 ;jmp start

jishu proc near ;计数子程序 lea si,buf mov bl,[si] cmp bl,100 jnz s6 s1: mov bl,0 mov [si],bl mov ah,1h[si] cmp ah,59 jz s2 inc ah

mov 1h[si],ah jmp s6 s2: mov ah,0

mov 1h[si],ah mov ah,2h[si]

inc ah

mov 2h[si],ah jmp s6

微机原理课程设计报告

微机原理课程设计报告

s6:call chu mov cx,3 s5:call dis loop s5 call delay1s

inc byte ptr[si] ret jishu endp

chu proc ;rukou al push si push bx mov bl,4 lea di,buf1 lea si,buf next:lodsb mov ah,00 mov cl,10 div cl xchg ah,al stosb mov al,ah stosb dec bl jnz next pop bx pop si ret

chu endp

dis proc near ; push bx push cx

lea bx,tab lea di,buf1 mov cx,8 mov ah,7Fh loop1: mov al,[di]

xlat ; mov dx,a1 out dx,al mov dx,b1 mov al,ah out dx,al mov bh,1

数处理子程序 显示buf1中的值 换码 ;

微机原理课程设计报告

call delay

call qp

lea bx,tab

ror ah,1

inc di

loop loop1

pop cx

pop bx

ret

dis endp

delay1s proc near ;8253延时子程序

push dx

push ax

mov dx,ctr2 ;8253 控制

mov al,00110000b

out dx,al ;8253计数器0控制字 方式0 out端作为中断请求信号 mov dx,a2

mov al,01h

out dx,al

mov al,00h

out dx,al

mov dx,a3

M1: in al,dx

test al,01h

jz M1

pop ax

pop dx

ret

delay1s endp

qp proc near ;清频子程序

mov al,0ffh

mov dx,b1

out dx,al

ret

qp endp

delay PROC NEAR ;内部延时之程序

PUSH bx

PUSH CX

wait0: MOV CX,06h

wait1: LOOP wait1

DEC bh

JNZ wait0

POP CX

POP bx

RET

delay ENDP

intr_key proc near ;中断服务子程序

call key

test al,2h

jz n1

test al,4h

jz n5

lea di,buf2

mov bh,[di]

inc bh

mov [di],bh

test bh,1h

jnz n2

jmp n3

iret

intr_key endp

qinlin proc ;键盘清零子程序

mov ax,0

lea di,buf

mov cx,14

cld

rep stosb

call dis

qinlin endp

key proc ;读取键盘程序

mov dx,c1

in al,dx

ret

key endp

code ends

end start

7.程序及硬件系统调试情况

按下暂停键实现暂停功能

微机原理课程设计报告

继续计数后按下清零键实现清零功能

8.设计心得

经过这次课程设计,我觉得我有了很大的收获,:

1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。而通过这次课程设计,使自己的研发能力有了很大堤提高。

2.我对于工科设计的严谨性,仔细性有了更深地体会。我们本次设计的秒表仅仅是工科设计中非常简单的一个,思想并不是非常复杂,手头也有一定的资料,但是我们在研发,调试过程中还是出现了一些错误。简单的一些程序好检查,但是如果说是以后要设计的一些大型程序,出现故障就不是那么容

易检查了。这就要求我们在以后的工程设计当中要更为细致仔细。

3我的专业知识得到了很好的巩固,对于本专业的一些问题有了更深的思考。原来有很多知识只是死学课本,而并没有与实际相结合,而这次课程设计使我的专业知识与实际有了很好的契合。

4.在程序设计中不能够想当然,许多程序,功能在脑子中想得很好,但是将其转变城实际程序就会出现许多问题。如何由脑子里的构想转变成实际的程序,这是我以后需要提高的一点。

5.掌握了一些检查与判断错误的经验与方法,对今后的专业学习与设计有着深刻的影响。

6.对专业设计的许多流程、原则、注意事项以及撰写专业报告的有关事项有了一定的了解。

7.学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。 总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。

9.参考文献

[1] 顾晖等。微机原理与接口技术-基于8086和Proteus仿真[M].电子工业出版社陈继红等. 微机原理及应用[M].高等教育出版社,2010

[2]戴梅萼等.微型计算机技术及应用[M].清华大学

[3]沈美明等.IBM-PC汇编语言程序设计 [M]. 清华大学出版社

[4]彭虎等. 微机原理与接口技术(第2版) [M].电子工业出版社,2008

[5] 张弥左,王兆月,邢立军等.微型计算机接口技术.北京:机械工业出版社


相关内容

  • 基于825x的几个相关实验包括课程设计
    实验 一 可编程并行接口 一. 实验目的 1. 掌握8255方式0的工作原理及使用方法 二. 实验内容 1. 实验电路如下图,8255C口接逻辑电平开关K0-K7,A口接LED显示电路L0- L7. 2. 编程从8255C口输入数据,再从A ...
  • 单片机 四路抢答器
    课程设计说明书 (2009/2010学年第二学期) 课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 : 单片机应用课程设计 四路抢答器 电气2班 韩昱 苗敬利 两周(10.6.28-10.07.09 ...
  • 继电器控制实验
    电气工程学院 课程设计说明书 设计题目: 继电器控制实验 系 别: 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 电气工程学院<课程设计>任务书 课程名称: 单片机原理及应用课程设计 基层教学单位: 自动化仪表系 指 ...
  • 用单片机进行方波发生器的设计1
    辽宁工程技术大学电信学院课程设计报 课程名称:院 部:专业班级:学生姓名:指导教师:完成时间: 告 单片机课程设计报告 电 信 学 院 于 长 麟 2012年05月08日 目录 一.概述 . ........................ ...
  • 单片机硬件工程师面试试题
    单片机硬件工程师面试试题 一.现代通讯网络中广泛使用的交换方式有那两种? 分组和电路 二.通常所说的TCP/IP协议对应于OSI模型的哪层?你认为网络模型分层有什么好处?如果让你来制订网络体系架构,你认为应该遵循什么原则? 第四(传输)和第 ...
  • 四人抢答器电路设计1
    广东石油化工学院 课程设计说明书 课程名称: 数字电子技术课程设计 题 目: 抢答器电路设计 学生姓名: 专 业: 班 级: 学 号: 指导教师: 李新超 日 期: 2010 年 6 月 30日 茂 名 学 院 课 程 设 计 任 务 书 ...
  • 毕业设计_多亮度等级调光灯制作(终稿)
    毕业论文 毕业设计论文 设计(论文) 题目: 下 达 日 期: 月 日 开 始 日 期: 年 月 完 成 日 期: 年 月 指 导 教 师: 学 生 专 业: 班 级: 学 生 姓 名: 教 研室主任: 系 本系统基于单片机MSP430F4 ...
  • [测试系统原理与设计](孙传友编著)--习题答案(个人整理)
    <测试系统原理与设计>(孙传友编著)--习题答案(个人整理) (答案仅供参考,部分答案没有,由个人总结整理,若有错误或不当之处请见谅) 第一章 绪论 1. 为什么说仪器技术是信息的源头技术? 仪器是一种信息的工具,起着不可或缺的 ...
  • 兰州交通大学铁道技术学院(高职)专业介绍
    铁道技术学院(高职) 铁道机车车辆三年制高职 培养具有必备的基础理论知识.专业知识和职业综合能力,能胜任机车车辆厂.城轨系统和铁路运用部门的生产.运用.管理.检修检测.机车调度等岗位的高技能应用型人才.毕业生能够在各铁路局.机车车辆厂.工程 ...
  • 数字式温度计系统设计
    <数字式温度计系统设计> 课程设计 姓名: 许红升 专业: 通信工程 学号: P01214179 性别: 男 邮箱: 466570324@qq.com 联系方式: [1**********] 指导老师: 李斌 张宏伟 一.最终要 ...