微机原理模拟计算器设计课程设计Word文件下载.docx

上传人:b****6 文档编号:8363294 上传时间:2023-05-11 格式:DOCX 页数:26 大小:342.55KB
下载 相关 举报
微机原理模拟计算器设计课程设计Word文件下载.docx_第1页
第1页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第2页
第2页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第3页
第3页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第4页
第4页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第5页
第5页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第6页
第6页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第7页
第7页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第8页
第8页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第9页
第9页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第10页
第10页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第11页
第11页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第12页
第12页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第13页
第13页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第14页
第14页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第15页
第15页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第16页
第16页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第17页
第17页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第18页
第18页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第19页
第19页 / 共26页
微机原理模拟计算器设计课程设计Word文件下载.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理模拟计算器设计课程设计Word文件下载.docx

《微机原理模拟计算器设计课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理模拟计算器设计课程设计Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。

微机原理模拟计算器设计课程设计Word文件下载.docx

图中有8行2列,8根行线与PA口相连,2根列线与PC口的PC6、PC7相连。

PA、PB口要么全部输入或输出。

PC口可以进行输入和输出。

按键设置在行、类交点处(数字或字符为其键号),行、列线分别连接到按键开关的两端。

当列线通过上拉电阻接+5V时,就被钳位在高电平状态。

键盘中有无按键按下是由行线送入全扫描字、列线读入行线状态来判断。

这就是:

给航线所有I/O线均置成低电平,然后读入列线电平状态。

如国有按键盘下,总会有一根列线电平被拉至低电平,从而使列线输入不全为1。

图2-1键盘电路图2-2数码管电路

3、可编程并行通信接口芯片8255A

(1)并行输入/输出端口A,B,C

8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。

端口都是8位,都可以作为输入或输出。

通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制信息的传送端口。

(2)A组和B组控制部件

端口A和端口C的高4位(PC7~PC4)构成A组;

由A组控制部件实现控制功能。

端口B和端口C的低4位(PC3~PC0)构成B组;

由B组控制部件实现控制功能。

A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。

(3)数据总线缓冲存储器

三态双向8位缓冲器,是8255A与8086CPU之间的数据接口。

与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。

(4)读/写控制部件

8255A完成读/写控制功能的部件。

能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。

图2-3.8255A芯片图

CS片选信号:

由CPU输入,有效时表示该8255A被选中。

RD,WR读、写控制信号:

由CPU输入。

RD有效表示CPU读8255A,WR有效表示CPU写8255A。

RESET复位信号:

RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入方式。

图2-4.8255A内部结构

定义工作方式控制字:

工作方式0:

8255A中各端口的基本输入/输出方式。

图2-5.8255A工作方式控制

4、可编程计数器/定时器

8253具有3个独立的计数通道,采用减1计数方式。

在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。

当计数脉冲是已知周期的时钟信号时,计数就成为定时。

 

(1)、8253内部结构

  8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。

  1.数据总线缓冲器

  数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。

这是8253与CPU之间的数据接口,它由8位双向三态缓冲寄存器构成,是CPU与8253之间交换信息的必经之路。

  2.读/写控制

读/写控制分别连接系统的IOR和IOW,由CPU控制着访问8253的内部通道。

接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。

A1A0:

端口选择信号,由CPU输入。

8253内部有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。

这4个端口地址由最低2位地址码A1、A0来选择。

5、总原理图

图2-7、PROTUES画出的总原理图

三、软件设计框图

四、源程序

一、源程序

STACKSEGMENTSTCAK

DB64DUP(?

STACKENDS

DATASEGMENT

ORG3000H

VAR1DB00H,01H,02H,03H,04H

VAR2DB3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH

VAR3DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

VAR4DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,

71H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAL,88H

OUT63H,AL;

82255A初始化

MOVBX,0000H;

BX清零

STT:

MOVAL,00H;

键盘测试

OUT61H.AL

NEXT:

INAL,62H

ANDAL,0C0H

CMPAL,0C0H

JNZKEYABC

CALLDISP;

调用显示程序

JMPSTT

KEYABC:

CALLTIME;

延时,去抖动

JNZKEY

KEY:

MOVAL,0FEH;

键盘扫描识别

OUT61H,AL

TESTAL,80H

JNZKEY_0

CALLKEY8

JMPSTTK

KEY_0:

TESTAL,40H

JNZKEY_9

CALLKEY0

KEY_9:

MOVAL,0FDH

JNZKEY_1

CALLKEY9

KEY_1:

JNZKEY_A

CALLKEY1

KEY_A:

MOVAL,0FBH

JNZKEY_2

CALLKEYA

KEY_2:

JNZKEY_B

CALLKEY2

KEY_B:

MOVAL,0F7H

JNZKEY_3

CALLKEYB

KEY_3:

JNZKEY_C

CALLKEY3

KEY_C:

MOVAL,0EFH

JNZKEY_4

CALLKEYC

KEY_4:

JNZKEY_D

CALLKEY4

KEY_D:

MOVAL,0DFH

JNZKEY_5

CALLKEYD

KEY_5:

CALLKEY5

KEY_E:

MOVAL,0BFH

JNZKEY_6

CALLKEYE

KEY_6:

JNZKEY_F

CALLKEY6

KEY_F:

MOVAL,07FH

JNZKEY_7

CALLKEYF

KEY_7:

JNZKEY_71

CALLKEY7

KEY_71:

JMPSTTK

KEY9:

CMPBH,00H;

按键9处理子程序

JZKEY9_1;

未按过符号键,不清零

CALLCLEAR;

已按过符号键,清零

KEY9_1:

CALLLP1;

低4位字节前移

MOVAL,6FH;

最低字节输入一个数据

MOV[SI+4],AL

MOVAL,09H

MOV[DI+4],AL

显示

RET;

返回

KEY8:

按键8处理子程序

JZKEY8_1

CALLCLEAR

KEY8_1:

CALLLP1

MOVAL,7FH

MOVAL,08H

CALLDISP

RET

KEY7:

按键7处理子程序

JZKEY7_1

KEY7_1:

MOVAL,07H

KEY6:

按键6处理子程序

JZKEY6_1

KEY6_1:

MOVAL,7DH

MOVAL,06H

KEY5:

按键5处理子程序

JZKEY5_1

KEY5_1:

MOVAL,6DH

MOVAL,05H

KEY4:

按键4处理子程序

JZKEY4_1

KEY4_1:

MOVAL,66H

MOVAL,04H

KEY3:

按键3处理子程序

JZKEY3_1

KEY3_1:

MOVAL,4FH

MOVAL,03H

KEY2:

按键2处理子程序

JZKEY2_1

KEY2_1:

MOVAL,5BH

MOVAL,02H

KEY1:

按键1处理子程序

JZKEY1_1

KEY1_1:

MOVAL,01H

KEY0:

按键0处理子程序

JZKEY0_1

KEY0_1:

MOVAL,3FH

MOVAL,00H

KEYA:

按键+号处理子程序

JNZKEYA_1

CALLLP3;

保存输入的数据

KEYA_1:

MOVBX,0101H;

设置符号标志

KEYB:

按键-号处理子程序

JNZKEYB_1

KEYB_1:

MOVBX,0102H;

KEYC:

按键*号处理子程序

JNZKEYC_1

KEYC_1:

MOVBX,0103H;

KEYD:

按键/号处理子程序

JNZKEYD_1

KEYD_1:

MOVBX,0104H;

KEYE:

MOVBH,01H;

按键=号处理子程序

CMPBL,01H;

是+号?

JZK1;

进行加法运算

CMPBL,02H;

是-号?

JZK2;

进行减法运算

CMPBL,03H;

时*号?

JZK3;

进行乘法运算

CMPBL,04H;

是/号?

JZK4;

进行除法运算

STTE:

K1:

CALLADD1

JMPSTTE

K2:

CALLSUB1

K3:

CALLMUL1

K4:

CALLDIV1

KEYF:

按键C(清零)处理子序

CLEAR:

MOVSI,OFFSETVAR2;

数据清零子程序

MOVDI,OFFSETVAR3

MOVCX,000AH

CLEAR1:

MOVAL,3FH

MOV[SI],AL

MOV[DI],AL

INCSI

INCDI

LOOPCLEAR1

MOVBH,00H

ADD1:

MOVSI,OFFSETVAR3;

加法子程序

MOVDI,OFFSETVAR4

CLC

MOVCX,0005H

ADD_1:

MOVAL,[DI]

ADCAL,[SI]

AAA

INCSI

LOOPADD_1

CALLCHANGE

SUB1:

MOVSI,OFFSETVAR3;

减法子程序

SUB_1:

MOVCL,[SI]

AAS

LOOPSUB_1

MUL1:

乘法子程序

MOVAL,[DI]

MULCL

AAM

MOV[DI+5],AX

MOVAL,[DI+1]

AAM

ADDAL,[DI+6]

MOV[DI+6],AX

MOVCL,[SI+1]

MOV[SI+5],AX

ADDAL,[SI+6]

MOV[SI+6],AX

MOVAL,[DI+5]

MOVAL,[DI+6]

ADDAL,[SI+5]

MOV[DI+1],AL

MOVAL,[DI+7]

ADCAL,[SI+6]

MOV[DI+2],AL

MOVAL.00H

ADCAL,[SI+7]

MOV[DI+3],AL

DIV1:

除法子程序

MOVAH,00H

MOVCK,[SI]

DIVCL

AAD

LP1:

MOVCX,0004H;

数据移位保存子程序(4位)

MOVSI,OFFSETVAR2

LP2:

MOVAL,[SI+3]

MOVAL,[DI+3]

DECSI

DECDI

LOOPLP2

RET

LP3:

MOVCX,0005H;

保存上一次数据子程序

MOVSI,OFFSETVAR3

LP4:

MOVAL,[SI]

LOOPLP4

CHANGE:

MOVSI,OFFSETVAR2

MOVBX,OFFSETTABLE

COMP0:

XLAT

LOOPCOMP0

DISP:

MOVSI,OFFSETVAR1

MOVDI,OFFSETVAR2

MOVDL,[DI+4]

CMP3FH

JNZDIR4

MOVDL,[DI+3]

CMPDL,3FH

JNZDIR3

MOVDL,[DI+2]

CMPDL,3EH

JNZDIR2

MOVDL,[DI+1]

JNZDIR1

JMPDIR0

DIR4:

JMPDIR

DIR3:

MOVCX,0004H

DIR2:

MOVCX,0003H

JMPDIR

DIR1:

MOVCX,0002H

DIR0:

MOVCX,0001H

DIR:

OUT62H,AL

OUT60H,AL

CALLTIME

LOOPDIR

TIME:

PUSHAX

PUSHCX

MOVCX,0040H

TIME1:

MOVAX,0300H

TIME2:

DECAX

JNZTIME2

LOOPTIME1

POPCX

POPAX

STTK:

放键测试程序

JNZSTTK

CODEENDS

ENDSTART

五:

调试过程

1.对设计原理图进行电气检查。

主要针对电路连接中的电气连接进行检查,并生成对应电路的网表。

特别是对电路节点的连接检查。

2.对设计的程序进行语法检查。

检查程序中存在的语法错误。

编译连接并下载到芯片中。

3.对设计进行综合调试。

对下载到芯片中的程序进行功能检查。

直到完成设计要求的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2