恋恋寒霜硬件课程设计报告.docx
《恋恋寒霜硬件课程设计报告.docx》由会员分享,可在线阅读,更多相关《恋恋寒霜硬件课程设计报告.docx(16页珍藏版)》请在冰点文库上搜索。
恋恋寒霜硬件课程设计报告
计算机科学与技术学院
硬件课程设计报告
姓名:
陈禹学号:
08073503
专业:
计算机科学与技术
班级:
计算机07—6
设计题目:
简易计算器
成员:
陈禹
指导教师:
王春兰职称:
讲师
2009年1月6日徐州
摘要
电子计算器的设计主要分为键盘的编码、七段LED数码管的显示及四则运算法则的编写三部分。
设计中我们用可编程外围接口芯片8255A连接键盘和七段LED数码管,用七段LED数码管显示键盘输入信号及运算结果,利用简单的汇编语言编写相应程序进行四位自然数的有效四则运算。
由于本次实验中,实验箱是HUSYE3-MIT-16/32微机接口实验仪采用模块化、积木式的结构,各实验模块互不影响。
但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。
实验箱中8279已经集成了键盘和LED数码管显示的功能。
因此,本次实验是采用了硬件设计更为简单而功能强大的8279辅助完成实验。
关键词:
8279;七段LED数码管;汇编语言;四则运算
1选题与需求分析
1.1选题
我选的题目是电子计算器。
电子计算器的设计主要分为键盘的编码、七段LED数码管的显示及四则运算法则的编写三部分。
设计中我们用可编程外围接口芯片8255A连接键盘和七段LED数码管,用七段LED数码管显示键盘输入信号及运算结果,利用简单的汇编语言编写相应程序进行四位自然数的有效四则运算。
由于本次实验中,实验箱是HUSYE3-MIT-16/32微机接口实验仪采用模块化、积木式的结构,各实验模块互不影响。
但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。
实验箱中8279已经集成了键盘和LED数码管显示的功能。
因此,本次实验是采用了硬件设计更为简单而功能强大的8279辅助完成实验。
1.2需求分析
通过上述介绍,基本功能为:
1,具有加、减、乘、整除的基本计算功能;
2,完成个位数运算
3,能够显示按下的数字及计算结果,运算数和结果应小于255;
4,能够判断一些简单的错误
应用模块化程序设计的思想,计算及排错功能的实现由计算程序模块实现,显示按下的数字和结果由键盘录入程序模块和显示程序模块实现,各个模块由主程序联系在一起。
由于通用寄存器为8位,所以结果最大不能超过255,简单错误包括数据溢出和不符合计算逻辑错误。
课题的功能需求
硬件需求及其主要功能:
8086CPU:
Intel的16位微处理HUSYE3-MIT-16/32微机接口实验仪:
HUSYE3-MIT-16/32微机接口综合实验/仿真系统全面支持8086系列的实验仿真开发。
8086技术应用于HUSYE3-MIT-16/32微机接口综合实验仪,采用了超大规模定制芯片的通用仿真器,将仿真器软、硬件提高到了前所未有的水平。
其中的8279键盘显示能够支持键盘的输入并在其中的LED数码管中显示输入的数字课题的其他需求.
硬件箱的连线:
将8279芯片的地址连到210H。
2总体设计
2.1硬件方案
这个电子计算器只用到试验箱提供的8279芯片。
硬件连线很简单。
将8259的地址连到210h即可。
过程:
从键盘输入,在led灯显示
2.2软件方案
1计算功能
计算器实现的运算功能如下:
以模块化结构设计为基本思想,将程序分为初始化、读入数字、加减乘除运算、输出结果4个模块。
程序将键盘字符进行分析,将数字依次存入开辟的内存空间并记录次数,根据次数来调整数字相应的大小(例如,输入一个数字则直接保存,在输入一个数字则要把保存的数字乘以10再加上刚刚输入的数字,以此类推)。
遇到操作符后将其先保存到操作判断寄存器中,然后再执行相应的计算或操作。
2输入功能
本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。
在判断有键按下后,要有一定的延时,防止键盘抖动。
列扫描码还可以分时用作LED的位选通信号。
实验程序可分成三个模块:
1、键输入模块:
扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
2、显示模块:
将显示单元的内容在显示器上动态显示。
3、主程序:
调用键输入模块和显示模块。
3LED发光显示
本实验仪提供了8段码数码管LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,采用动态方式显示。
8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。
6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。
74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。
写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。
本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。
本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。
七段数码管的字型代码表如下表:
4键位分布
7
8
9
+
4
5
6
—
1
2
3
*
0
/
=
AC
3详细设计
3.1硬件实现
3.2软件实现
键盘读数流程图
键盘读入后数字处理流程图
显示程序流程图
计算过程流程图
总程序流程图
4设计结果
这个计算器支持个位数的加减乘除
代码:
Z8279EQU212H
D8279EQU210H
LEDMODEQU00H;左边输入,八位显示,外部译码八位显示
STACKSEGMENT
ST1DB3DUP(?
)
STACKENDS
DATASEGMENT
D1DB?
D2DB?
D3DB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
PUSHCS
POPDS
MOVDX,Z8279
MOVAL,LEDMOD
OUTDX,AL
MOVDX,Z8279;清FIFORAM寄存器
MOVAL,0D1H
OUTDX,AL
NOP
MOVDX,Z8279
MOVAL,0C2H
OUTDX,AL;置空FIFO寄存器
WAIIT:
NOP
INAL,DX
MOVBL,AL
ANDAL,80H
CMPAL,80H
JEWAIIT;FIFO正在清除期间则跳转等待
MOVAL,BL
ANDAL,0FH
CMPAL,00H
JEWAIIT;无键按下则等待
MOVAL,40H;写读FIFORAM命令字
OUTDX,AL
MOVDX,D8279;读入FIFORAM内容
INAL,DX
NOP
CMPAL,3BH
JEFINI
MOVCL,AL
LEABX,LEE
XLAT
CMPAL,79H
JEJISUAN
CMPAL,5EH
JEQINGLING
MOVAH,00H
PUSHAX
;查表,将键码放入AL中
MOVAL,CL
LEABX,LED
XLAT
MOVDX,Z8279;
MOVCL,AL
MOVAL,80H
OUTDX,AL
MOVAL,CL
MOVDX,D8279;将AL中内容写到数码管上
OUTDX,AL
MOVDX,Z8279;清FIFORAM寄存器
MOVAL,0C2H
OUTDX,AL
JMPWAIIT;等待下一次键输入
FINI:
MOVDX,Z8279
MOVAL,0D3H
OUTDX,AL
JMP$
QINGLING:
MOVDX,Z8279;清FIFORAM寄存器
MOVAL,0D1H
OUTDX,AL
JMPWAIIT
JISUAN:
POPAX
MOVD3,AL
POPAX
MOVD2,AL
POPAX
MOVD1,AL
CMPD2,77H
JEJIAFA
CMPD2,7CH
JEJIANFA
CMPD2,39H
JESHENGFA
CMPD2,71H
JECHUFA
JIAFA:
MOVAL,D1
MOVBL,D3
ADDAL,BL
JMPSHUCHU
JIANFA:
MOVAL,D1
MOVBL,D3
SUBAL,BL
JMPSHUCHU
SHENGFA:
MOVAL,D1
MOVDL,D3
MULDL
JMPSHUCHU
CHUFA:
MOVAL,D1
MOVDL,D3
DIVDL
JMPSHUCHU
SHUCHU:
CMPAL,0AH
JNSSHUCHU1
LEABX,TABLE
XLAT
MOVDX,Z8279;
MOVCL,AL
MOVAL,87H
OUTDX,AL
MOVAL,CL
MOVDX,D8279;将AL中内容写到数码管上
OUTDX,AL
MOVDX,Z8279
MOVAL,0C2H
OUTDX,AL
JMPWAIIT
SHUCHU1:
MOVAH,00H
MOVCL,0AH
DIVCL
LEABX,TABLE
XLAT
MOVDX,Z8279;
MOVCL,AL
MOVAL,87H
OUTDX,AL
MOVAL,CL
MOVDX,D8279;将AL中内容写到数码管上
OUTDX,AL
MOVDX,Z8279
MOVAL,86H
OUTDX,AL
MOVAL,AH
LEABX,TABLE