微机原理加法器课程设计3_第1页
微机原理加法器课程设计3_第2页
微机原理加法器课程设计3_第3页
微机原理加法器课程设计3_第4页
微机原理加法器课程设计3_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录封面 .i课程设计任务书 . i i微机原理课程设计成绩评定表 .i i i正文 1主要元器件介绍1.1 可编程并行接口82551.1.1 8255简介 .021.1.2 8255的控制字 .03 1.2 led数码管 1.2.1 数码管的工作原理 .041.3 键盘 1.3.1 键盘的工作原理 .051.3.2 键盘输入信息的过程 .051.3.3 键盘的工作原理 .052 设计思路 . 063 设计原理流程图 . 073.1 8255a与键盘接口程序流程图 .073.2 键盘扫描子程序 . .084 实际硬件接线图.09 5源程序清单及注释.10设计总结 .13参考文献.141主要元

2、器件介绍1.1 可编程并行接口8255a1.1.1 8255简介 并行接口是以数据的字节为单位与i/o设备或被控对象之间传递信息。在实际应用中凡是cpu与外设之间同时需要传递两位以上信息时均需采用并行接口。可编程并行通信接口(8255a)是一个具有两个8位(a口和b口)和两个4位(c口)并行输入/输出端口的接口芯片,为了适应多种数据传送方式的要求8255a设置了3种工作方式:方式0为基本输入输出方式,方式1为选通输入输出方式,方式2为双向传送方式。本次为满足设计需要,将8255a设置为方式0。 a 组b组a口(pa0-pa7)c口(pc4-pc7)b口(pb0-pb7)c口(pc0-pc3)入

3、入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出入出入出出出出入入出出入出出出出入出出出出 本次课程设计用并行接口8255作为微机与键盘间的接口,采用行扫描法识别键。将键盘中的各行与a口pa0pa3相连,a口为输出;将各列与b口的pb0pb3相连,b口为输入口。1.1.2 8255的控制字 76543210控制c口抵4位1:输入0:输出控制b口8位1:输入0:输出方式选择0:方式01:方式1控制c口高4位0:输出1:输入控制a口8位0:输出1:输入方式选择00:方式001:方式11x:方式2 功能控制0:位操作1:方式选择 8255的控制字格式说明:当控制字

4、bit71时,控制字的bit6bit3这4位用来控制a组,即a口的8位和c口的高4位,而控制字的低3位bit2bit0用来控制b组,包括b口的8位和c口的低4位。1.2 led数码管 1.2.1 led数码管的工作原理 计算机与七段led数码管的接口,分成静态显示接口和动态显示接口。led的静态接口是每个七段led单独使用一组寄存器,将其公共点接地。led的动态接口使用两组寄存器。几个led公用一组寄存器,该寄存器称为段选寄存器。另一组寄存器控制这几个led的公共点,用于控制这几个显示器逐个循环点亮。适当选择循环速度,利用人眼“视觉暂留”效应,可使其看上去好像这几个led同时在显示。送一个显示

5、代码,显示相应的字符。 1.3 键盘 键盘是微机系统和其他实时控制系统中广泛使用的一种基本输入设备。按键实际上就是一个开关;对大多数键盘而言,为了减少与微机间的连线,简化结构,按键被排成行和列的矩阵形式,称为矩阵键盘。矩阵键盘根据识别键和键盘扫描实现方式的不同又分为两类:编码键盘和非编码键盘。编码键盘主要是用硬件来实现键的识别和扫描,它功能强,可靠,但硬件复杂,一般微机系统使用编码键盘。非编码键盘主要是用软件方法来识别键和绎键,本次课程设计主要应用非编码键盘的基本工作原理,及键盘控制程序的编制方法。1.3.1 键盘的工作原理 通常可采用两种方法来识别键盘上的闭合键:即行扫描与行反转法,本次课程

6、设计采用的是行扫描法,其基本思想是:将行线接输出端口,列线接输入端口。先将所有的行线输出低电平(b口),读入列线的值(a口),若此时列线上的值全为1,说明无键按下;若有某位为0,则说明对应列上有键按下,这时改变行扫描码,使行线逐行为0,依次输出行扫描码,读入列值。当读入某一列线的值为0时,则可根据此时的行扫描码和列线的值唯一的确定按键的位置,同时也就确定了该键的扫描码。1.3.2 键盘输入信息的过程:(1)cpu检查是否有键按下;(2)扫描检查各行和列,找到被按键的键号;(3)将键号转换成计算机能识别的代码并转入相应的键盘处理程序。1.3.3键盘扫描(识别键)的过程:(1)识别是否有键按下:方

7、法是使pb0pb3输出全为0,读a口(列值)pa0pa3,pa0pa3中只要有一位为0,就说明有键按下,因为由于上拉电阻接+5v的作用,无键按下时,列线被置成高电平。当某键被按下,该键所在行线和列线接通,所以,当行线为低电平时,对应的列线也为低电平。(2)消抖动:抖动就是键按下时由于手工操作,键的闭合和断开之间回跳几下才能稳定到闭合的位置,这就称为抖动。抖动问题不解决回引起对闭合键的错误识别,所以当判别出有键按下时应消除抖动。消除抖动的常用方法是在检测到有键按下后,延迟一段时间(通常为20ms),再检查该键是否仍然被按着,若是,才真正认为有键按下,而不是干扰。(3)确定是哪个键被按下:即确定被

8、按下键的行列号,因此可采用上述的行扫描法。 (4).根据找到的键号,转去执行该键功能的子程序。2、设计思路本周的课程设计中,我们小组的设计题目是加法器设计1。得知这个题目后,我们全组同学讨论研究了这个设计的流程.首先是从键盘输入数据开始,思路是:键盘清零,接着按四下分别输入两个二位十进制数,再利用8255的输入输出功能,输入数据,在cpu中计算和,再经8255输出到led显示器,用九盏灯显示结果.第一盏表示十位向百位是否有进位,即只能进行一百以内的显示,接下来的四位为bcd码显示的十位,最后四位显示个位.设计子程序分别实现延时,扫描键盘,判断输入位,清屏等.程序开始后调用子程序.实现求和.3、

9、设计原理流程图3.1 .8255a与键盘接口程序流程图接受数据(键盘扫描子程序)开始 设置数据段8255初始化处理数据(两个二位bcd数相加程序)输出数据(将和输出到pc口8位及pa口高4位以驱动led灯显示) 返回(a)主程序32键盘扫描子程序开始 设b端口为输出方式,a端口为输入方式b端口输出全为“0”,从a口读取列值列线全为“1”? y n保存列值,延时消抖动列线仍有“1”? y n设置行扫描初值,输出到b口修改行扫描码,转去下一行扫描 读入低4位列线值列线是否有“0”?n y从a口读入列值键释放? n 保存键号 返回 (b)键盘扫描子程序4、实际硬件接线图do 开s 关d7 及 led

10、d8 显s 示d11 单 元y1 键数 盘码s 扫显y4 描示 及单x1 元sx4a0 pa0a1 s pa3 pb0 sd0 pb3. .d7 pc0 swr pc7 rd pb4 scs pb7 xa1 xa2 系 统 xd0 . . 总 . xd7线 iow# ior#ioy0 5、源程序清单及注释data segmentnum db 4 dup(0)sum db 3 dup(0)data endsstack0 segment para stackstack dw 200 dup(?)stack0 endscode segment assume cs:code,ds:data,es:da

11、ta,ss:stack0delay proc ;延时子程序 push bx push cx mov bl,50 delay0:mov cx,2801 wait0:loop wait0 dec bl jnz delay0 pop cx pop bx ret delay endpsearch proc ;键盘扫描子程序 push ax push bx push cx push dx mov dx,0602h ;设置8255pb端口地址 mov al,00h ;行线输出全口 out dx,al lp1: mov dx,0600h ;设置8255pa端口地址 in al,dx ;读入列线值 and a

12、l,0fh ;屏蔽无关位 cmp al,0fh ;测试列线值是否全为1 jz lp1 ;若列线值全为1,表明无键按下,等待按键 mov cx,2000h ;设置循环次数delay1:loop delay1 ;若有按键按下,延迟2000ms,清除抖动 in al,dx ;再察看列线,看键是否还按着 and al,0fh cmp al,0fh jz lp1 ;已松开等待按键lp2: mov bl,4 ;行数送bl,即行扫描次数 mov bh,4 ;列数送bh mov al,0feh ;设置行扫描初值 mov ch,0ffh ;设置起始键号为ffh lp3: mov dx,0602h ;设置8255

13、pb端口地址 out dx,al ;输出行扫描初值 rol al,1 ;修改扫描码为扫描下一行做准备 mov ah,al ;保持修改后的扫描码 mov dx,0600h ;设置8255pa端口地址 in al,dx ;读入列值 and al,0fh ;屏蔽无关位 cmp al,0fh ;查列线是否全位1 jnz lp4 ;有,则转去找该列线 add ch,bh ;无,修改键号指向该行末列键号 mov al,ah ;取回扫描码 dec bl ;行值减1 jnz lp3 ;行末查完转下一行 jmp lp2 ;重新开始扫描键盘 lp4:inc ch ;键号加一,指向本行首列键号 rcr al,1 ;

14、右移一位 jc lp4 mov si,ch ;键号送入si中 inc si pop dx pop cx pop bx pop ax ret search endpbegin:mov ax,data mov ds,ax mov es,ax mov si,offset num mov di,offset sum mov dx,0606h mov al,90h out dx,al mov cx ,2yy1:call search ;输入第一个数 call delay loop yy1 mov cx,2yy2:call search ;输入第二个数 call delay loop yy2 mov cx

15、,2 mov si,offset num clcyy3:mov al,si+1 ;开始进行加法操作 adc al,si+3 aaa mov di+2,al dec di dec si loop yy3 mov ah,0 ;防止溢出,保存进位 adc ah,0 mov di+2,ah mov di,offset sumyy4:mov dx,0604h ;8255pc口地址 mov ah,di+1 rol ah,4 mov al,di+2 add al,ah out dx,al ;将十位,个位输出到pc口以驱动led灯显示 mov al,di rol al,4 mov dx,0602h out d

16、x,al ;将百位输出到pb口高4位驱动led灯显示 mov cx,20yy5:call delay ;延迟1s后清0 loop yy5 mov ax,0 out dx,ax mov dx,0604h out dx,ax jmp startcode ends end begin 设计总结 微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会

17、了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。 这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过五个人的合作和努力,我们最后对实验的原理有了清晰的认识。虽然实验台上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。 这次课设却让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。实验中个人的力量是不及群体的力量的,我们四个人分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们。在团队中要善于与人相处,与人共事,不要一个人解决所有问题。 总之,这次课程设计对于我们有很大的帮助

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论