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

下载本文档

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

文档简介

1、金陵科技号院课程设计任务书课 程名称 微机原理及应用院部名称机电工程学院专 业电气工程及其自动化班 级 吴映阳指导教师 李国利金陵科技学院教务处制摘要学了微型计算机原理与应用课程之后,为了巩固和检测所学知识,我选择基于8088cpu勺模拟计算器设计。要完成设计首先需要构建简单的微型计算机应用系统,具次是确定组成各部件的芯片,然后画原理图并且用仿真软件仿真。仿真正确后再连接硬件电路, 电路连接完成后进行调试。 设计过程中我们用到了8088cpu、 可编程计时器8253、可编程并行输入/输出芯片8255a 74ls13& 2*8矩阵式键盘、六位七段ledi攵码管。原理图设计完成之后用protue新

2、真软件对原理图进行了仿真得到了预期的结果。我们的模拟计算器能实现5 位十进制数以内的及减法运算和 2 位十进制数以内的乘除法运算。关键词: 模拟计算器,8088cpu, protue,s8255a351、 概述 42、 硬件电路 42.1、 cpu控制模块 42.2、 键盘输入模块 62.3、 可编程并行通信接口芯片 8255a 72.4、 可编程计数器/定时器 82.5、 总原理图 9三、软件设计框图 10四、源程序 11五、调试过程 26六、课程设计体会26七、参考文献 27概述模拟计算器设计gkw-1u-、l -gnq vcca14 alfi 由13 由雄a12a17a11a1balo

3、ah97233ae34375)c3i78.*fi mn/mkad7rdad6 hold 由3 hl daaddwrad3w1dad2 dt7radlmhadg a1enmi imta3s*中qb2 iu而30q4122976耶口27电八2b2517241623_vimtr testclk re 由0v21gind reseti im)*1*tki:kh 融阳山金 m图2-7、protues出的总原理图三、软件设计框图开始8255a初始化四、源程序一、 源程序stack segment stcakdb 64 dup(?)stack endsdata segmentorg 3000hvar1 db

4、 00h,01h,02h,03h,04hvar2 db 3fh, 3fh, 3fh, 3fh, 3fh, 3fh, 3fh, 3fh, 3fh, 3fhvar3 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00hvar4 db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00htable db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71hdata endscode segmentassume cs:code,ds:d

5、ata,ss:stackstart:mov ax,datamov ds,axmov al,88hout 63h,al82255a初始化mov bx,0000hbx清零stt: mov al,00h键盘测试out 61h.alnext: in al,62hand al,0c0hcmp al,0c0hjnz keyabccall disp调用显示程序jmp stt;延时,去抖动;键盘扫描识别keyabc:call timein al,62hand al,0c0hcmp al,0c0hjnz keyjmp sttkey: mov al,0fehout 61h,alin al,62htest al,8

6、0hjnz key_0call key8jmp sttkkey_0: test al,40hjnz key_9call key0jmp sttkkey_9: mov al,0fdhout 61h,alin al,62htest al,80hjnz key_1call key9jmp sttkkey_1: test al,40hjnz key_acall key1jmp sttkkey_a: mov al,0fbhout 61h,alin al,62htest al,80hjnz key_2call keyajmp sttkkey_2: test al,40hjnz key_bcall key2

7、jmp sttkkey_b: mov al,0f7hout 61h,alin al,62htest al,80hjnz key_3call keybjmp sttkkey_3: test al,40hjnz key_ccall key3jmp sttkkey_c: mov al,0efhout 61h,alin al,62htest al,80hjnz key_4call keycjmp sttkkey_4: test al,40hjnz key_dcall key4jmp sttkkey_d: mov al,0dfhout 61h,alin al,62htest al,80hjnz key_

8、5call keydjmp sttkkey_5: test al,40hjnz key_dcall key5jmp sttkkey_e: mov al,0bfhout 61h,alin al,62htest al,80hjnz key_6call keyejmp sttkkey_6: test al,40hjnz key_fcall key6jmp sttkkey_f: mov al,07fhout 61h,alin al,62htest al,80hjnz key_7call keyfjmp sttkkey_7: test al,40hjnz key_71call key7jmp sttkk

9、ey_71:jmp sttkkey9: cmp bh,00hjz key9_1call clearkey9_1:call lp1mov al,6fhmov si+4,almov al,09hmov di+4,alcall dispretkey8: cmp bh,00hjz key8_1call clearkey8_1:call lp1mov al,7fhmov si+4,almov al,08hmov di+4,alcall dispretkey7: cmp bh,00h9 处理子程序;未按过符号键,不清零;已按过符号键,清零4 位字节前移;最低字节输入一个数据;显示;返回8 处理子程序7 处

10、理子程序jz key7_1call clearkey7_1:call lp1mov al,07hmov si+4,almov al,07hmov di+4,alcall dispret6 处理子程序key6: cmp bh,00hjz key6_1call clearkey6_1:call lp1mov al,7dhmov si+4,almov al,06hmov di+4,alcall dispret5 处理子程序key5: cmp bh,00hjz key5_1call clearkey5_1:call lp1mov al,6dhmov si+4,almov al,05hmov di+4,

11、alcall dispretkey4: cmp bh,00hjz key4_1call clearkey4_1:call lp1mov al,66hmov si+4,almov al,04hmov di+4,alcall dispretkey3: cmp bh,00hjz key3_1call clearkey3_1:call lp1mov al,4fhmov si+4,almov al,03hmov di+4,alcall dispretkey2: cmp bh,00hjz key2_1call clearkey2_1:call lp1mov al,5bhmov si+4,almov al,

12、02hmov di+4,alcall disp4 处理子程序3 处理子程序2 处理子程序retkey1: cmp bh,00hjz key1_1call clearkey1_1:call lp1mov al,06hmov si+4,almov al,01hmov di+4,alcall dispretkey0: cmp bh,00hjz key0_1call clearkey0_1:call lp1mov al,3fhmov si+4,almov al,00hmov di+4,alcall dispretkeya: cmp bh,00hjnz keya_1call lp3keya_1:mov

13、bx,0101hretkeyb: cmp bh,00hjnz keyb_1call lp31 处理子程序0 处理子程序;按键+号处理子程序;保存输入的数据;设置符号标志;返回- 号处理子程序;保存输入的数据;设置符号标志;返回;按键 *号处理子程序;保存输入的数据;设置符号标志;返回/ 号处理子程序;保存输入的数据;设置符号标志;返回=号处理子程序+号?;进行加法运算- 号?;进行减法运算* 号?;进行乘法运算/ 号?;进行除法运算keyb_1:mov bx,0102hretkeyc: cmp bh,00hjnz keyc_1call lp3keyc_1:mov bx,0103hretkeyd

14、: cmp bh,00hjnz keyd_1call lp3keyd_1:mov bx,0104hretkeye: mov bh,01hcmp bl,01hjz k1cmp bl,02hjz k2cmp bl,03hjz k3cmp bl,04hjz k4stte: retk1: call add1jmp sttek2: call sub1jmp sttek3: call mul1jmp sttek4: call div1jmp stte;按键c (清零)处理子序;数据清零子程序keyf: call clearretclear: mov si,offset var2mov di,offset

15、var3mov cx,000ahclear1:mov al,3fhmov si,almov al,00hmov di,alinc siinc diloop clear1mov bh,00hret;加法子程序add1: mov si,offset var3;mov di,offset var4clcmov cx,0005hadd_1: mov al,diadc al,siaaamov di,alinc siinc diloop add_1call changecall dispret;减法子程序sub1: mov si,offset var3mov di,offset var4clcmov cx

16、,0005hsub_1: mov al,dimov cl,siaasmov di,alinc siinc diloop sub_1call changecall dispret;乘法子程序mul1: mov si,offset var3mov di,offset var4mov al,dimov cl,simul claammov di+5,axmov al,di+1mul claamadd al,di+6aaamov di+6,axmov al,dimov cl,si+1mul claammov si+5,axmov al,di+1mul claamadd al,si+6aaamov si+

17、6,axmov al,di+5mov di,almov al,di+6add al,si+5aaamov di+1,almov al,di+7adc al,si+6aaamov di+2,almov al.00hadc al,si+7aaamov di+3,alcall changecall dispret;除法子程序div1: mov si,offset var3mov di,offset var4mov ah,00hmov al,di+1mov ck,sidiv clmov di+1,almov al,diaaddiv clmov di,alcall changecall dispret4

18、 位)lp1: mov cx,0004hmov si,offset var2mov di,offset var3lp2: mov al,si+3mov si+4,almov al,di+3mov di+4,aldec sidec diloop lp2ret;保存上一次数据子程序lp3: mov cx,0005hmov si,offset var3mov di,offset var4lp4: mov al,simov di,aldec sidec diloop lp4retchange:mov si,offset var2mov di,offset var3mov bx,offset table

19、mov cx,0005hcomp0: mov al,dixlatmov si,alinc siinc diloop comp0retdisp: mov si,offset var1mov di,offset var2mov dl,di+4cmp 3fhjnz dir4mov dl,di+3cmp dl,3fhjnz dir3mov dl,di+2cmp dl,3ehjnz dir2mov dl,di+1cmp dl,3fhjnz dir1jmp dir0dir4: mov cx,0005hjmp dirdir3: mov cx,0004hjmp dirdir2: mov cx,0003hjmp

20、 dirdir1: mov cx,0002hjmp dirdir0: mov cx,0001hdir: mov al,siout 62h,almov al,diout 60h,alcall timeinc siinc diloop dirrettime: push axpush cxmov cx,0040htime1: mov ax,0300htime2: dec axjnz time2loop time1pop cxpop axret;放键测试程序sttk: call dispmov al,00hout 61h,alin al,62hand al,0c0hcmp al,0c0hjnz stt

21、kjmp sttcode endsend start五:调试过程1. 对设计原理图进行电气检查。主要针对电路连接中的电气连接进行检查,并生成对应电路的网表。特别是对电路节点的连接检查。2. 对设计的程序进行语法检查。检查程序中存在的语法错误。编译连接并下载 到芯片中。3. 对设计进行综合调试。对下载到芯片中的程序进行功能检查。直到完成设计要求的功能。六:课程设计体会本次课程设计师自由选择设计课题的,我选择了简易计算加减乘除法计算器的题目,看起来不是很难,但是真正做起来才发现其困难之处。本次的课程设计是一个相对而言比较难的设计, 因为这次设计不仅仅是课本上知识的整合, 而且还有很多是课外的扩展。 这次课程设计可以说是一个挑战。 我们做的题目是简易计算器的设计。 才开始思路很清晰。 或许是因为我

温馨提示

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

评论

0/150

提交评论