版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书(论文)用纸摘 要微机原理与接口技术作为计算机科学领域的基础知识,尽管计算机科学高速发展,但基本原理依然不变,学习并能掌握好微机原理与接口技术这门知识是非常重要的,通过对这门知识的了解可以简单的编写一些日常生活中经典的控制程序。 微型计算机原理与应用是通过学习8086处理器,理解并熟悉微型计算机的结构,组成,最终能通过搭建电路和编写程序来实现控制和计算等操作。本设计通过学习设计一个可任意启动/停止的电子秒表,利用功能键进行启/停控制。关键词: 8253芯片 8259芯片目 录1 概述11.1 设计目的11.2 设计要求11.3 设计思路12 接口电路原理22.1 8253可编程键
2、盘显示接口22.2 8259可编程并行接口33程序流程图33.1主程序图43.3处理程序流程图53.3显示流程图64 硬件设计64.1 8253的硬件连接64.2 8259的硬件连接7总 结9参考文献12附代码:12 I 1 概述 1.1 设计目的通过本课程设计主要达到以下目的:(1) 设计一个可任意启动/停止的电子秒表,利用功能键进行启/停控制。(2) 上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。可用开关控制,也可用按键控制1.2 设计要求利用8253的通道0可以定时通过8259A的IRQ0申请中断
3、设计一个秒表。秒表由分、秒和百分秒三部分组成。秒表具备暂停,继续及重置等功能。1.3 设计思路 本程序的主要设计原理是用主程序完成键盘按键的扫描,实现计时结果的数码管显示,实现秒与分之间的转换。通过判断键盘按键调用相应功能程序段以实现相应功能,即实现了启动、暂停、复位功能,以及通过键盘进行十分、分、十秒、秒时间的手动设置功能。 利用8253的定时器功能。8253的四个端口地址为48H,49H,4AH,4BH,本实验采用8253的通道2,工作在方式3(方波发生器方式)输入CLK2为1MHZ。先给8253的初始值0C350H,循环记数。即一次记数完后,自动装入初始值。输出OUT2作为8259的输入
4、脉冲。8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,采用3号中断源,即IR3和8253输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示"ERR",CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区中的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。 第 18 页 共 11页2 接口电路原理2.1 8253可编程键盘显示接口Intel8253是NMOS工艺制成的可编程计
5、数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例 如 8253微型计算机课程设计9 (2.6MHz),8253-5(5MHz),8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。执行部件实际上是一个16位的减法计数器,
6、它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用:8253引脚图2.2 8259可编程并行接口 在本次系统设计当中,本次设计采用的是软件定时(即通过汇编指令) 实现的。而灯的亮与灭以及闪烁是用8259的A控制的,工作在方式0,A口为输出。 并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。8259可编程外围
7、接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图2-1所示,8259工作方式控制字和C口按位置位/复位控制字格式如图所示。8259的内部结构及引脚3程序流程图本系统主要利用对计数器/定时器多功能接口芯片8253装不同的初值,产生1/100 秒信号和1秒信号,并送给可编程并行通信接口芯片8259作为加1信号,再通过按键和8259控制LED模块显示。工作流程图及子程序流程图如下所示:3.1主程序图3.1主程序图3.
8、3处理程序流程图3.2处理程序流程图3.3显示流程图3.3显示程序流程图4 硬件设计4.1 8253的硬件连接如图 4.1.1 将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。图-4.1.1如图 4.1.2 将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。图-4.1.24.2 8259的硬件连接8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字IC
9、W1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。图 8259内部结构和引脚图图6-2(a) ICW1格式图 ICW2格式图 ICW3格式图 ICW4格式图 OCW命令字格式总 结设计结果:按下暂停键实现暂停功能继续计数后按下清零键实现清零功能设计总结: 经过这次课程设计,我觉得
10、我有了很大的收获,我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。而通过这次课程设计,使自己的研发能力有了很大堤提高。我对于工科设计的严谨性,仔细性有了更深地体会。我们本次设计的秒表仅仅是工科设计中非常简单的一个,思想并不是非常复杂,手头也有一定的资料,但是我们在研发,调试过程中还是出现了一些错误。简单的一些程序好检查,但是如果说是以后要设计的一些大型程序,出现故障就不是那么容易检查了。这就要求我们在以后的工程设计当中要更为细致仔细。设计存在的问题和不足:我的专业知识得到了很好的巩
11、固,对于本专业的一些问题有了更深的思考。原来有很多知识只是死学课本,而并没有与实际相结合,而这次课程设计使我的专业知识与实际有了很好的契合。在程序设计中不能够想当然,许多程序,功能在脑子中想得很好,但是将其转变城实际程序就会出现许多问题。如何由脑子里的构想转变成实际的程序,这是我以后需要提高的一点。心得体会:我掌握了一些检查与判断错误的经验与方法,对今后的专业学习与设计有着深刻的影响。并且我对专业设计的许多流程、原则、注意事项以及撰写专业报告的有关事项有了一定的了解。学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。 总之,经过这次课程设计,我对今后的专业学习所要
12、注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。参考文献1 张永祥微型计算机原理 中国电力出版社 2005年8月 2 武新 汇编语言程序设计 武汉理工大学出版社 2006年7月 3 马力 8086汇编语言程序设计 机械工业出版社 2006年9月 4 杨季文 汇编语言程序设计教程 清华大学出版社 2008年3月5彭虎等. 微机原理与接口技术(第2版) M电子工业出版社,2008 附代码:code segment assume cs:code main: jmp start disbufm db 0,0,0ah,0,0,0ah,0,0 ;秒表初值 disbufh db 2,3,0a
13、h,5,9,0ah,5,8 ,0,0 ;时钟初值 flag db 1 flag1 db 0 flag2 db 0 num db 0 n db 1 start: mov ax,8100h mov ds,ax cli ;关中断 call i8259 call i8253 call s1 sti ;开中断 key: a: mov dx,222h ;是否有键读入 in al,dx and al,0fh jz a mov al,40h out dx,al mov dx,220h in al,dx cmp al,0ah jz sta jmp change sta: ;start cmp num,0 jnz
14、 pau mov flag,0 mov num,1 jmp key pau: ;pause cmp num,1 jnz cle mov flag,1 mov num,2 jmp key cle: ;clear mov di,offset disbufm call begin1 mov num,0 jmp key change: ;change cmp al,0bh jnz key cmp n,0 jz change1 mov n,0 jmp key change1: mov n,1 jmp key i8253: mov al,36h ;8253A初始化 200-207 mov dx,203h
15、out dx,al mov ax,0c00h mov dx,200h out dx,al mov al,ah out dx,al ret i8259: mov al,13h ;8259A初始化 210-217 mov dx,210h out dx,al mov al,30h mov dx,211h out dx,al mov al,03h out dx,al mov al,0feh ;中断IR0 out dx,al retbegin1: ;秒表初始化 mov byte ptrdi,0 mov byte ptrdi+1,0 mov byte ptrdi+3,0 mov byte ptrdi+4,
16、0 mov byte ptrdi+6,0 mov byte ptrdi+7,0 ret begin2: ;时钟初始化 mov byte ptrdi,0 mov byte ptrdi+1,0 mov byte ptrdi+3,0 mov byte ptrdi+4,0 mov byte ptrdi+6,0 mov byte ptrdi+7,0 mov byte ptrdi+8,0 mov byte ptrdi+9,0 ret s1: ;中断向量的装入 push ds push bx xor ax,ax mov ds,ax mov bx,30h*4 mov ax,offset intr mov bx
17、,ax mov ax,8100h mov bx+2,ax pop bxpop ds ret intr: ;中断 push ax push di push dx mov si,offset disbufm mov di,offset disbufh cmp flag,0 jnz r ;秒表计时 cmp byte ptrsi+7,9 jz c1 inc byte ptrsi+7 jmp r c1: mov byte ptrsi+7,0 cmp byte ptrsi+6,9 jz c2 inc byte ptrsi+6 jmp r c2: mov byte ptrsi+6,0 cmp byte pt
18、rsi+4,9 jz c3 inc byte ptrsi+4 jmp r c3: mov byte ptrsi+4,0 cmp byte ptrsi+3,5 jz c4 inc byte ptrsi+3 jmp r c4: mov byte ptrsi+3,0 cmp byte ptrsi+1,9 jz c5 inc byte ptrsi+1 jmp r c5: mov byte ptrsi+1,0 inc byte ptrsi ;时钟计时 r: cmp byte ptrdi+9,9 jz r1 inc byte ptrdi+9 jmp isend r1: mov byte ptrdi+9,0
19、 cmp byte ptrdi+8,9 jz r2 inc byte ptrdi+8 jmp isend r2: mov byte ptrdi+8,0 cmp byte ptrdi+7,9 jz r3 inc byte ptrdi+7 jmp isend r3: mov byte ptrdi+7,0 cmp byte ptrdi+6,5 jz r4 inc byte ptrdi+6 jmp isend r4: mov byte ptrdi+6,0 cmp byte ptrdi+4,9 jz r5 inc byte ptrdi+4 jmp isend r5: mov byte ptrdi+4,0
20、 cmp byte ptrdi+3,5 jz r6 inc byte ptrdi+3 jmp isend r6: mov byte ptrdi+3,0 cmp byte ptrdi+1,9 jz r7 inc byte ptrdi+1 jmp isend r7: mov byte ptrdi+1,0 inc byte ptrdi isend: cmp flag,0 jnz isend1 ;秒表是否到最大值 cmp byte ptrsi,5 jnz display cmp byte ptrsi+1,9 jnz display cmp byte ptrsi+3,5 jnz display cmp byte ptrsi+4,9 jnz display cmp byte ptrsi+6,9 jnz displaycmp byte ptrsi+7,9 jnz display mov flag1,1 ;时钟是否到最大值 isend1: cmp byte ptrdi,2 jnz display cmp byte ptr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化印刷品买卖协议3篇
- 安全驾驭承诺3篇
- 方式械设备买卖合同协议书3篇
- 文了解居间合同般收费标准3篇
- 摇号定标招标文件范本编写规范3篇
- 市场调研咨询服务合同协议书3篇
- 安全饮用水订购条款3篇
- 招标文件附件格式引导3篇
- 体育场馆租赁解除合同及赔偿
- 员工满意度调查协议
- 全区国有企业资产全面清查工作方案
- 职业技能大赛-密码技术竞赛理论知识题库(附参考答案)
- 明源地产ERP管理系统
- 狼王梦-完整课件
- DB3305-T 46-2018美丽公路建设规范
- 新疆喀什地区2024届九年级下学期中考三模数学试卷(含解析)
- 高脂血症性胰腺炎的治疗与护理
- 个人推广费合同范本
- AQ/T 2061-2018 金属非金属地下矿山防治水安全技术规范(正式版)
- 个人厂房租赁合同范本简单
- 重庆地铁工程项目管理策划书
评论
0/150
提交评论