2022年接口技术计算器设计方案书课程设计方案书 .pdf
《2022年接口技术计算器设计方案书课程设计方案书 .pdf》由会员分享,可在线阅读,更多相关《2022年接口技术计算器设计方案书课程设计方案书 .pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录一、引言 4 二、实验题目及要求5 三、硬件电路 5 2.1、键盘输入模块5 2.2、可编程并行通信接口芯片8255A 6 2.3 、可编程定时器 / 计数器9 四、源程序 10 六、课程设计体精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 24 页会 25 七、参考文献 26 引言本学期我们学习了微型计算机技术及应用这门应用性很强的课程,通过平时的上机实验,使我们初步了解了8086 系统的硬件结构以及部分芯片结构,为了进一步巩固和检测所学知识,我选择基于8086CPU的模拟计算器设计。要完成设计首先需要构建简单的微型计算机应用系统
2、,其次是确定组成各部件的芯片,然后画原理图,根据相应的原理以及实现过程,编写出相应的汇编代码。再根据原理图连接硬件电路,电路连接完成后进行调试。设计过程中我们用到了8088CPU 、可编程计时器精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 24 页8253、可编程并行输入 / 输出芯片 8255A、74LS138 、矩阵式键盘、六位七段 LED数码管。我们的模拟计算器能实现2 位十进制数以内的及减法运算。模拟计算器设计一、 概述设计题目及要求: 1. 通过小键盘做加减运算。七段数码管显示器作输入数据和结果数据的显示。 2. 数字用小键
3、盘 09,R,P,M ,G作功能键 R开始运算(包括撤销运算),显示0 p+ m- g= E退出返回 dos 3 运算顺序: a.输入一原始数据显示器跟随显示 b.按+或-显示器内容不变精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 24 页 c.再输入一数据,显示器跟随显示。 d.按=显示器显示结果数据,当超出能显示的最大值,显示F(溢出) e.按 R重新开始运算 f.按 E,结束退出设计思路:首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序实现2 位
4、十进制数以内的及减法运算。运算完成后将运算的结果储存并显示到 LED显示器上。二、 硬件电路设计硬件电路键盘输入及 LED数码管通过 8255A接口与系统总线连接,键盘的16 个按键组成 8*2 矩阵,其中 8 根矩阵线作为 8255A的输出线与 PB7 PB0连接, 2 根矩阵线作为 8255A 的输入线与 PC7 、PC6连接。键盘采用逐次扫描原理,16 个按键中 09 座位数字健, +、-、=作为加、减和等号功能键,C为清零键。1、键盘输入模块键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要需要一个I/O 口对它进行检测,而键盘往往这需要键盘按钮数一半的I/
5、O 口数对它进行检测,也许对一个比较简单的系统I/O口数一般不是问题,但对于一个大型、复杂的系统来说I/O资源就显得非常珍贵了,尽量减少I/O 使用是非常利于降低成本,另外一方面键盘比用独立按键要美观。我们设计时使用的是8*2 行列式键盘,如图2-1 所示。图中有 8 行 2 列, 8 根行线与PA口相连, 2 根列线与 PC口的 PC6 、PC7相连。 PA 、PB 口要么全部输入或输出。PC 口可以进行输入和输出。按键设置在行、类交点处(数字或字符为其键号),行、列线分别连接到按键开关的两端。当列线通过上拉电阻接+5V 时,就被钳位在高电平状态。键盘中有无按键按下是由行线送入全扫描字、列线
6、读入行线状态来判断。这就是:给航线所有I/O线均置成低电平,然后读入列线电平状态。如国有按键盘下,总会有一根列线电平被拉至低电平,从而使列线输入不全为1。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 24 页图 2-1 键盘电路图 2-2 数码管电路2、可编程并行通信接口芯片8255A (1)并行输入 /输出端口A,B,C 8255A 内部包括三个8 位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是 PA7PA0、PB7PB0、PC7PC0。端口都是8 位,都可以作为输入或输出。通常将端口 A 和端口B 定义为输入 /输出
7、的数据端口,而端口C 则既可以作数据端口,又可以作为端口 A 和端口 B 的状态和控制信息的传送端口。(2)A 组和 B 组控制部件端口 A 和端口 C 的高 4 位( PC7PC4)构成 A 组;由 A 组控制部件实现控制功能。端口B 和端口C 的低 4 位( PC3PC0)构成 B 组;由 B 组控制部件实现控制功能。A 组和 B 组利用各自的控制单元来接收读写控制部件的命令和CPU 通过数据总线(D0D7)送来的控制字,并根据他们来定义各个端口的操作方式。(3)数据总线缓冲存储器三态双向8 位缓冲器,是8255A 与 8086CPU 之间的数据接口。与I/O 操作有关的数据、控制字和状态
8、信息都是通过该缓冲器进行传送。(4)读 /写控制部件 8255A 完成读 /写控制功能的部件。能接收CPU 的控制命令,并根据控制命令向各个功能部件发出操作指令。图 2-3.8255A 芯片图CS 片选信号:由CPU 输入,有效时表示该8255A 被选中。RD, WR 读、写控制信号:由精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 24 页CPU 输入。 RD 有效表示CPU 读 8255A,WR 有效表示CPU 写 8255A。RESET 复位信号:由 CPU 输入。 RESET 信号有效,清除8255A 中所有控制字寄存器内容,并
9、将各个端口置成输入方式。图 2-4 .8255A 内部结构定义工作方式控制字:工作方式 0:8255A中各端口的基本输入 /输出方式。图 2-5 .8255A工作方式控制精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 24 页8253 11098765432D7 1D6 D5 D4 D3 D2 D1 D0 CLK0 OUT0 GET0 GND 12141516 17 18 1920 1 222324 0UT1CLK1GATE1OUT2 GATEA1WRA0 CSCKL2 RD+5133、可编程计数器 / 定时器 8253 具有 3 个独
10、立的计数通道,采用减1 计数方式。在门控信号有效时,每输入 1 个计数脉冲,通道作1 次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。(1)、8253 内部结构8253 芯片有 24 条引脚,封装在双列直插式陶瓷管壳内。1. 数据总线缓冲器数据总线缓冲器与系统总线连接,8 位双向,与 CPU交换信息的通道。这是8253 与 CPU之间的数据接口,它由8 位双向三态缓冲寄存器构成,是CPU与 8253之间交换信息的必经之路。2. 读写控制读写控制分别连接系统的IOR 和 IOW ,由 CPU控制着访问 8253 的内部通道。接收CPU送入的读写控制信号,并完成对芯片内部各功能部件的
11、控制功能,因此,它实际上是8253 芯片内部的控制器。A1A0:端口选择信号,由 CPU输入。 8253 内部有 3 个独立的通道和一个控制字寄存器,它们构成8253 芯片的4 个端口, CPU可对 3 个通道进行读写操作3对控制字寄存器进行写操作。这 4 个端口地址由最低 2 位地址码 A1、A0来选择。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 24 页一、源程序。386 以上微机适用。纯 dos 下才能使用。tasm4.1 或以上编译。*。* LED *。*。 io_plx_device_id equ 05406h 。TPC卡
12、设备 ID io_plx_vendor_id equ 010b5h 。TPC卡厂商 ID IO_PLX_SUB_ID EQU 0905410B5H 。TPC卡子设备及厂商 ID TIM_CTL EQU 203H-200H 。8253 端口地址 TIMER0 EQU 200H-200H TIMER1 EQU 201H-200H MODE03 EQU 36H 。8253 端口数据 MODE12 EQU 74H INTA00 EQU 20H INTA01 EQU 21H PORTSEG EQU 211H-200H 。数码管端口地址 PORTBIT EQU 210H-200H pa55 equ 218
13、h-200H 。8255 端口 pb55 equ 219h-200H p55ctl equ 21bh-200H data segment csreg dw ? ipreg dw ? 。旧中断向量保存空间 io_9054base_address db 4 DUP(0) 。TPC卡 PCI 接口芯片 I/O 基地址暂存空间 io_base_address db 4 DUP(0) 。TPC卡 I/O 基地址暂存空间 interrupt_line db 2 DUP(0) 。TPC卡中断号暂存空间 pcicardnotfind db 0dh,0ah,TPC pci card not find or ad
14、dress/interrupt error !,0dh,0ah,$ io9054baseaddress db 0dh,0ah,TPC pci card 9054 Chip I/O Base Address : ,$ iobaseaddress db 0dh,0ah,TPC pci card I/O Base Address : ,$ intnumber db 0dh,0ah,TPC pci card Interrupt Line : ,$ enter_return db 0dh,0ah,$ MESS DB 8253A TIMER0 IN MODE3! COUNT=0200H,0AH,0DH D
15、B 8253A TIMER1 IN MODE2! COUNT=0aH,0AH,0DH,$ irq_vect db 08h,09h,0ah,0bh,0ch,0dh,0eh,0fh,70h,71h,72h,73h,74h,75h,76h,77h 。新的中断向量 , 中断 0-7 的向量为 :08h-0fh,中断 8-15 的向量为:70h-77h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 24 页 irq_mask_0_7_table db 011111110b,011111101b,011111011b,011110111b db
16、011101111b,011011111b,010111111b,001111111b db 011111011b,011111011b,011111011b,011111011b db 011111011b,011111011b,011111011b,011111011b 。新的中断掩码 , 中断 0-7 时从低至高相应位为零 , 中断 8-15 时第 2 位为零 irq_mask_8_15_table db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh db 011111110b,011111101b,011111011b,011110111b db 01
17、1101111b,011011111b,010111111b,001111111b 。新的中断掩码 , 中断 0-7 时全一 , 中断 8-15 时从低至高相应位为零 INTMASK DB ? LED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,40H DB 0AH,0DH,$ table1 dw 0101h,0102h,0104h,0108h,0110h,0120h,0140h,0180h dw 0201h,0202h,0204h,0208h,0210h,0220h,0240h,0280h dw 0401h,0402h,0404h,0408h,0410h
18、,0420h,0440h,0480h char db CDEFBA9845673210 RPMG mes db PLAY ANY KEY IN THE SMALL KEYBOARD! ,0ah,0dh db IT WILL BE ON THE SCREEN! END WITH R or ANY KEY,0ah,0dh,$ 。extra data num1 db 6 dup (?) num2 db 6 dup (?) result db 6 dup (?) count db 0 operator db 0 LedNum db 6 dup (?) data ends stacks segment
19、db 100 dup (?) STA DW 512 DUP (?) TOP EQU LENGTH STA stacks ends code segment assume cs:code,ds:data,ss:stacks,es:data start: 。Enable Local Interrupt Input .386 cli mov ax,data mov ds,ax mov es,ax 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 24 页 mov ax,stacks mov ss,ax call findtpc 。查找 TPC卡
20、资源并显示MOV DX,word ptr io_base_address 。初始化 8253 add dx,TIM_CTL MOV AL,MODE03 OUT DX,AL MOV DX,word ptr io_base_address add dx,TIMER0 MOV AL,00h OUT DX,AL MOV AL,02H OUT DX,AL MOV DX,word ptr io_base_address add dx,TIM_CTL MOV AL,MODE12 OUT DX,AL MOV DX,word ptr io_base_address add dx,TIMER1 MOV AL,0a
21、H OUT DX,AL MOV AL,00 OUT DX,AL MOV DX,OFFSET MESS MOV AH,09 INT 21H MOV DX,OFFSET MES 。显示提示MOV AH,09 INT 21H mov dx,word ptr io_9054base_address add dx,68h 。设置 tpc 卡中 9054芯片 io 口, 使能中断 in ax,dx or ax,0900h out dx,ax mov bx,word ptr interrupt_line 。保存原中断向量mov al,byte ptr irq_vect+bx mov ah,35h int 2
22、1h mov ax,es mov csreg,ax 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 24 页mov ipreg,bx mov bx,word ptr interrupt_line 。设置新中断向量 mov al,byte ptr irq_vect+bx mov cx,cs mov ds,cx mov dx,offset int_proc mov ah,25h int 21h mov ax,data mov ds,ax mov es,ax in al, 21h 。设置中断掩码 mov bx,word ptr interr
23、upt_line mov ah,byte ptr irq_mask_0_7_table+bx and al,ah out 21h, al in al, 0a1h mov bx,word ptr interrupt_line mov ah,byte ptr irq_mask_8_15_table+bx and al,ah out 0a1h, al sti 。开中断 Reset: 。initialization LEA BX,num1 CALL ClearNum LEA BX,num2 CALL ClearNum MOV byte ptr count,0 LEA BX,num1 CALL LedS
24、how FirstRead: LEA BX,num1 CALL ReadNum CMP byte ptr operator,4 JZ Reset CMP byte ptr operator,5 JZ FunExit LoopRead: 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 24 页 MOV DL,operator LEA BX,num2 CALL ReadNum CMP byte ptr operator,4 JZ Reset CMP byte ptr operator,5 JZ FunExit CMP DL,1 JZ Fu
25、nAdd CMP DL,2 JZ FunMinus MidJmp2: JMP FirstRead MidJmp3: JMP Reset 。several choice for the prior operator FunAdd: CALL AddNum LEA BX,num1 JMP Ope2 FunMinus: CALL MinusNum LEA BX,num1 Ope2: CALL LedShow LEA BX,num2 CALL ClearNum LEA BX,num1 CALL ClearNum JMP FirstRead FunEqual: JMP Reset FunClear: J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年接口技术计算器设计方案书课程设计方案书 2022 接口 技术 计算器 设计方案 课程设计 方案
限制150内