您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机课程设计之计数器
1课程设计课程名称微机课程设计题目名称计算器(1)学生学院自动化学院专业班级学号学生姓名指导教师李传芳2013年10月17日23广东工业大学课程设计任务书题目名称计算器(1)学生学院自动化专业班级姓名学号一、课程设计的目的1、巩固和加深对《微机原理及应用》课程内容的认识和理解,提高应用水平;2、掌握汇编语言程序的编程方法;3、熟悉键盘控制和七段数码管的使用。二、课程设计的内容1.在显示器上显示六位十六进制数:567ABC。2.将8个健按实验室要求定义健值,按任意键在显示器上显示对应键值,要求显示值能够实现左移功能:AB9346FC3.实现:a)定义键盘按键,13个为数字键3-F,3个功能键:加号+,除号÷,等号=;b)可进行四位10进制加法运算;c)可进行四位16进制除法运算。三、课程设计应完成的工作1.搜集、整理和研究资料,可参考教材后的实例。2.按电路框图连接电路,编写程序完成各个程序设计要求,并完成调试。3.完成课程设计的报告书一份。四、课程设计进程安排4序号设计各阶段内容地点起止日期1领取任务书实2-20410.142收集,整理资料图书馆、宿舍10.153上机编写调试程序实2-20410.15-10.174撰写课程设计报告宿舍10.18五、应收集的资料及主要参考文献发出任务书日期:2013年10月14日指导教师签名:计划完成日期:2013年10月18日基层教学单位责任人签章:主管院长签章:5目录一、源程序…………………………………………………………………………61.程序一………………………………………………………………………61.1题目……………………………………………………………………61.2流程图…………………………………………………………………61.3源程序…………………………………………………………………62.程序二………………………………………………………………………72.1题目……………………………………………………………………72.2流程图…………………………………………………………………82.3源程序…………………………………………………………………93.程序三………………………………………………………………………113.1题目……………………………………………………………………113.2流程图…………………………………………………………………123.3源程序…………………………………………………………………11二、心得与体会…………………………………………………………………19三、参考文献………………………………………………………………………1961.程序一1.1在显示器上显示六位十六进制数:567ABC。1.2流程图.1.3源程序:STACKSEGMENTSTACKDW32DUP(?)STACKENDSDATASEGMENTSHUJUDB0FCH,06H,0DAH,0F2H,66H,0B6H,0BEH,0E0H;数码管的位选7DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;设置0~F的十六位数码管段码VA1DB0FEH,OFDH,0FBH,0F7H,0EFH,0DFFVA2DB05H,06H,07H,0AH,0BH,0CH;设置四位查询位DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVDX,0606HMOVAL,80H;8255初始化OUTDX,ALA:LEASI,VA2LEADI,VA1MOVCX,0006HA1:MOVDX,0600HMOVAL,0FFHOUTDX,ALMOVAL,[DI]MOVBX,OFFSETSHUJUXLATSHUJU;查表取出数码管的段码MOVDX,0604HOUTDX,ALMOVDX,0600H;查表的段码送A口显示MOVAL,[SI]OUTDX,ALCALLDALLYINCSIINCDILOOPA1JMPADALLY:PUSHCX;延时程序MOVCX,0001HA3:MOVAX,00FFHA4:DECAXJNZA4LOOPA3POPCXRETCODEENDSENDSTART2.程序一2.1题目:将8个健按实验室要求定义健值,按任意键在显示器上显示对应键值,要求显示值能够实现左移功能:AB9346FC2.2流程图.82.3源程序:STACKSEGMENTSTACKDW32DUP(?)STACKENDSDATASEGMENTTABLEDB0FCH,06H,0DAH,0F2H,66H,0B6H,0BEH,0E0HDB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHVA1DB0FEH,OFDH,0FBH,0F7H,0EFH,0DFFVA2DB0FCH,0FCH,0FCH,0FCH,0FCH,0FCHVA3DB00H,00H,00H,00H,00H,00H,00HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,0606HMOVAL,82HOUTDX,AL;8255初始化MOVBX,0000HSTT:MOVAL,00H;键盘测试MOVDX,0600HOUTDX,ALMOVDX,0602HINAL,DXANDAL,18HCMPAL,18HJNZKEYABCCALLDISP;调用显示程序JMPSTT;--------------------------KEYABC:CALLTIME;延时,去抖动MOVDX,0602HINAL,DXANDAL,18HCMPAL,18HJNZKEYJMPSTTKEY:MOVDX,0600H开始8255初始化是否按健显示扫描保存数据是否放键显示扫描NYNY9MOVAL,0FEH;键盘扫描识别OUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_7CALLKEY0JMPSTTKKEY_7:TESTAL,10HJNZKEY_2CALLKEY4JMPSTTKKEY_2:MOVDX,0600HMOVAL,0FDHOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_6CALLKEY1JMPSTTKKEY_6:TESTAL,10HJNZKEY_1CALLKEY5JMPSTTKKEY_1:MOVDX,0600HMOVAL,0FBHOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_5CALLKEY2JMPSTTKKEY_5:TESTAL,10HJNZKEY_0CALLKEY6JMPSTTKKEY_0:MOVDX,0600HMOVAL,0F7HOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_4CALLKEY3JMPSTTKKEY_4:TESTAL,10HJNZKEY_C1CALLKEY7KEY_C1:JMPSTTK;------------------------------;按键0处理子程序KEY0:CALLLP1MOVAL,0EEHMOV[SI+5],ALMOVAL,00HMOV[DI+5],ALCALLDISP;显示RET;返回;-------------------------------;按键1处理子程序KEY1:CALLLP1MOVAL,3EHMOV[SI+5],ALMOVAL,01HMOV[DI+5],ALCALLDISP;显示RET;返回;-----------------------------;按键2处理子程序KEY2:CALLLP1MOVAL,0F6HMOV[SI+5],ALMOVAL,02HMOV[DI+5],ALCALLDISP;显示RET;返回;--------------------------;按键3处理子程序KEY3:CALLLP1MOVAL,0F2HMOV[SI+5],ALMOVAL,03HMOV[DI+5],ALCALLDISP;显示10RET;返回;------------------------------;按键4处理子程序KEY4:CALLLP1MOVAL,66HMOV[SI+5],ALMOVAL,04HMOV[DI+5],ALCALLDISP;显示RET;返回;--------------------------;按键5处理子程序KEY5:CALLLP1MOVAL,0BEHMOV[SI+5],ALMOVAL,05HMOV[DI+5],ALCALLDISP;显示RET;返回;--------------------;按键6处理子程序KEY6:CALLLP1MOVAL,8EHMOV[SI+5],ALMOVAL,06HMOV[DI+5],ALCALLDISP;显示RET;返回;-----------------;按键7处理子程序KEY7:CALLLP1MOVAL,9CHMOV[SI+5],ALMOVAL,07HMOV[DI+5],ALCALLDISP;显示RET;返回;--------------------------;数据移位保存子程序LP1:MOVSI,OFFSETVA2MOVDI,OFFSETVA3MOVCX,0005HLP2:MOVAL,[SI+4]MOV[SI+5],ALMOVAL,[DI+4]MOV[DI+5],ALDECSIDECDILOOPLP2RET;------------------;显示子程序DISP:MOVSI,OFFSETVA1MOVDI,OFFSETVA2MOVDL,[DI+5]CMPDL,0FCHJNZDIR5MOVDL,[DI+4]CMPDL,0FCHJNZDIR4MOVDL,[DI+3]CMPDL,0FCHJNZDIR3MOVDL,[DI+2]CMPDL,0FCHJNZDIR2MOVDL,[DI+1]CMPDL,0FCHJNZDIR1JMPDIR0DIR5:MOVCX,0006HJMPDIRDIR4:MOVCX,0005HJMPDIRDIR3:MOVCX,0004HJMPDIRDIR2:MOVCX,0003H11JMPDIRDIR1:MOVCX,0002HJMPDIRDIR0:MOVCX,0001HDIR:MOVDX,0600HMOVAL,[SI]OUTDX,ALMOVDX,0604HMOVAL,[DI]OUTDX,ALCALLTIMEINCSIINCDILOOPDIRRET;----------------------;延时程序TIME:PUSHAXPUSHCXMOVCX,0005HTIME1:MOVAX,00F0HTIME2:DECAXJNZTIME2LOOPTIME1POPCXPOPAXRET;------------------------------;放键测试程序STTK:CALLDISPMOVAL,00HMOVDX,0600HOUTDX,ALMOVDX,0602HINAL,DXANDAL,18HCMPAL,18HJNZSTTKJMPSTTCODEENDSENDSTART3.程序一3.1题目:实现:a)定义键盘按键,13个为数字键0-F,3个功能键:加号+,除号÷,等号=;b)可进行四位10进制加法运算;c)可进行四位16进制除法运算。3.2流程图123.3源程序:STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTVA1DB0DFH,0EFH,0F7H,0FDH,0FEH,VA2DB0FC,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCHVAR3DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00HVAR4DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00HTABLDB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0FEH,0F6H,D
本文标题:微机课程设计之计数器
链接地址:https://www.777doc.com/doc-3511787 .html