微机课程设计之计数器 _第1页
微机课程设计之计数器 _第2页
微机课程设计之计数器 _第3页
微机课程设计之计数器 _第4页
微机课程设计之计数器 _第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1一、课程设计的目的1、巩固和加深对微机原理及应用课程内容的认识和理解,提高应用水平;2、掌握汇编语言程序的编程方法;3、熟悉键盘控制和七段数码管的使用。二、课程设计的内容1.在显示器上显示六位十六进制数:567ABC。2将8个健按实验室要求定义健值,按任意键在显示器上显示对应键值,要求显示值能够实现左移功能:AB9346FC3.实现:a)定义键盘按键,13个为数字键3-F,3个功能键:加号+,除号,等号;b)可进行四位10进制加法运算;c)可进行四位16进制除法运算。三、课程设计应完成的工作1.搜集、整理和研究资料,可参考教材后的实例。2.按电路框图连接电路,编写程序完成各个程序设计要求,并完成调试。3.完成课程设计的报告书一份。四、课程设计进程安排序号设计各阶段内容地点起止日期1领取任务书实2-20410.142收集,整理资料图书馆、宿舍10.153上机编写调试程序实2-20410.15-10.174撰写课程设计报告宿舍10.182五、应收集的资料及主要参考文献发出任务书日期:2013年10月14日指导教师签名:计划完成日期:2013年10月18日基层教学单位责任人签章:主管院长签章:3目录一、源程序61程序一61.1题目61.2流程图61.3源程序62程序二72.1题目72.2流程图82.3源程序93程序三113.1题目113.2流程图123.3源程序11二、心得与体会19三、参考文献1941.程序一1.1在显示器上显示六位十六进制数:567ABC。1.2流程图.51.3源程序:STACKSEGMENTSTACKDW32DUP(?)STACKENDSDATASEGMENTSHUJUDB0FCH,06H,0DAH,0F2H,66H,0B6H,0BEH,0E0H;数码管的位选DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;设置0F的十六位数码管段码VA1DB0FEH,OFDH,0FBH,0F7H,0EFH,0DFFVA2DB05H,06H,07H,0AH,0BH,0CH;设置四位查询位DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVDX,0606H6MOVAL,80H;8255初始化OUTDX,ALA:LEASI,VA2LEADI,VA1MOVCX,0006HA1:MOVDX,0600HMOVAL,0FFHOUTDX,ALMOVAL,DIMOVBX,OFFSETSHUJUXLATSHUJU;查表取出数码管的段码MOVDX,0604HOUTDX,ALMOVDX,0600H;查表的段码送A口显示MOVAL,SIOUTDX,ALCALLDALLYINCSIINCDILOOPA1JMPADALLY:PUSHCX;延时程序MOVCX,0001HA3:MOVAX,00FFHA4:DECAXJNZA4LOOPA3POPCXRETCODEENDSENDSTART2.程序一2.1题目:将8个健按实验室要求定义健值,按任意键在显示器上显示对应键值,要求显示值能够实现左移功能:AB9346FC2.2流程图.开始8255初始化是否按健显示扫描保存数据是否放键显示扫描NYNY72.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,0600HMOVAL,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_58CALLKEY2JMPSTTKKEY_5:TESTAL,10HJNZKEY_0CALLKEY6JMPSTTKKEY_0:MOVDX,0600HMOVAL,0F7HOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_4CALLKEY3JMPSTTKKEY_4:TESTAL,10HJNZKEY_C1CALLKEY7KEY_C1:JMPSTTK;-;按键0处理子程序KEY0:CALLLP1MOVAL,0EEHMOVSI+5,ALMOVAL,00HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键1处理子程序KEY1:CALLLP1MOVAL,3EHMOVSI+5,ALMOVAL,01HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键2处理子程序KEY2:CALLLP1MOVAL,0F6HMOVSI+5,ALMOVAL,02HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键3处理子程序KEY3:CALLLP1MOVAL,0F2HMOVSI+5,ALMOVAL,03HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键4处理子程序KEY4:CALLLP1MOVAL,66HMOVSI+5,ALMOVAL,04HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键5处理子程序KEY5:CALLLP1MOVAL,0BEHMOVSI+5,ALMOVAL,05HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键6处理子程序KEY6:CALLLP1MOVAL,8EHMOVSI+5,ALMOVAL,06HMOVDI+5,ALCALLDISP;显示RET;返回;-;按键7处理子程序KEY7:CALLLP1MOVAL,9CHMOVSI+5,AL9MOVAL,07HMOVDI+5,ALCALLDISP;显示RET;返回;-;数据移位保存子程序LP1:MOVSI,OFFSETVA2MOVDI,OFFSETVA3MOVCX,0005HLP2:MOVAL,SI+4MOVSI+5,ALMOVAL,DI+4MOVDI+5,ALDECSIDECDILOOPLP2RET;-;显示子程序DISP:MOVSI,OFFSETVA1MOVDI,OFFSETVA2MOVDL,DI+5CMPDL,0FCHJNZDIR5MOVDL,DI+4CMPDL,0FCHJNZDIR4MOVDL,DI+3CMPDL,0FCHJNZDIR3MOVDL,DI+2CMPDL,0FCHJNZDIR2MOVDL,DI+1CMPDL,0FCHJNZDIR1JMPDIR0DIR5:MOVCX,0006HJMPDIRDIR4:MOVCX,0005HJMPDIRDIR3:MOVCX,0004HJMPDIRDIR2:MOVCX,0003HJMPDIRDIR1:MOVCX,0002HJMPDIRDIR0:MOVCX,0001HDIR:MOVDX,0600HMOVAL,SIOUTDX,ALMOVDX,0604HMOVAL,DIOUTDX,ALCALLTIMEINCSIINCDILOOPDIRRET;-;延时程序TIME:PUSHAXPUSHCXMOVCX,0005HTIME1:MOVAX,00F0HTIME2:DECAXJNZTIME2LOOPTIME1POPCXPOPAXRET;-;放键测试程序STTK:CALLDISPMOVAL,00HMOVDX,0600HOUTDX,ALMOVDX,0602HINAL,DXANDAL,18HCMPAL,18HJNZSTTKJMPSTTCODEENDSENDSTART103.程序一3.1题目:实现:a)定义键盘按键,13个为数字键0-F,3个功能键:加号+,除号,等号;b)可进行四位10进制加法运算;c)可进行四位16进制除法运算。3.2流程图开始8255初始化有无压键显示扫描是数字键?标有志?加号?除号?设加好标志设除好标志清零显示器,清标志位保存数据放键?显示扫描清零显示器进行加、乘运算,存结果等号?YYYYYYYNNNNNN113.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,DB0EEH,3EH,9CH,7AH,9EH,8EHDATAENDSCODE:SEGMENTASSUMECS:CODE,DS,DATASTART:MOVAX,DATAMOVDS,AXMOVDX,0606HMOVAL,82HOUTDX,ALMOVBX,0000HSTT:MOVAL,00HMOVDX,0600HOUTDX,ALOUTDX,0602HINAL,DXANDAL,78HCMPAL,78HJNZKEYABCCALLDISPJMPSTTKEYABC:CALLTIMEMOVDX,0602HINAL,DXANDAL,78HCMPAL,78HJNZKEYJMPSTT;-第一列键盘扫描;按键键码确定程序,采用扫描法确定按键的键码KEY:MOVDX,0600HMOVAL,OFEHOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_BCALLKEYFJMPSTTK12KEY_B:TESTAL,10HJNZKEY_7CALLKEYBJMPSTTKKEY_7:TESTAL,20HJNZKEY_JIACALLKEY7JMPSTTKKEY_JIA:TESTAL,40HJNZKEY_ECALLKEYABBJMPSTTK;-;第二列键盘扫描KEY_E:MOVDX,0600HMOVAL,OFDHOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_ACALLKEYFJMPSTTKKEY_A:TESTAL,10HJNZKEY_6CALLKEYAJMPSTTKKEY_6:TESTAL,20HJNZKEY_JIACALLKEY6JMPSTTKKEY_2:TESTAL,40HJNZKEY_DCALLKEYCHUJMPSTTK;-;第三列键盘扫描KEY_D:MOVDX,0600HMOVAL,OFBHOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_9CALLKEYDJMPSTTKKEY_9:TESTAL,10HJNZKEY_5CALLKEY9JMPSTTKKEY_5:TESTAL,20HJNZKEY_1CALLKEY5JMPSTTKKEY_1:TESTAL,40HJNZKEY_DCALLKEYDEN;等号JMPSTTK;-;第四列键盘扫描KEY_C:MOVDX,0600HMOVAL,OFBHOUTDX,ALMOVDX,0602HINAL,DXTESTAL,08HJNZKEY_8CALLKEY8JMPSTTKKEY_8:TESTAL,10HJNZKEY_4CALLKEY8JMPSTTKKEY_4:TESTAL,20HJNZKEY_3CALLKEY4JMPSTTKKEY_3:TESTAL,40HJNZKEY_CCALLKEYCHUJMPSTTKKEY_C1:JMPSTTK;-每一个子程序KEYF:CMPBH,00H;按键F处理子程序JZKEYF_1CALLCLEARKEYF_1:13CALLLP1MOVAL,8EHMOVSI+5,ALMOVAL,0FHMOVDI+5,ALCALLDISPRETKEYB:CMPBH,00H;按键B处理子程序JZKEYF_BCALLCLEARKEYB_1:CALLLP1MOVAL,3EHMOVSI+5,ALMOVAL,0BHMOVDI+5,ALCALLDISPRETKEY7:CMPBH,00H;按键7处理子程序JZKEY7_1CALLCLEARKEY7_1:CALLLP1MOVAL,0E0HMOVSI+5,ALMOVAL,07HMOVDI+5,ALCALLDISPRETKEYADD:CMPBH,00H;按键+处理子程序JZKEYADD_1CALLCLEARKEYADD_1:MOVBX,0101HRET;-每一个子程序KEYE:CMPBH,00H;按键E处理子程序JZKEYE_1CALLCLEARKEYE_1:CALLLP1MOVAL,9EHMOVSI+5,ALMOVAL,0EHMOVDI+5,ALCALLDISPRETKEYA:;按键A处理子程序CMPBH,00HJZKEYA_1CALLCLEARKEYA_1:CALLLP1MOVAL,0EEHMOVSI+5,ALMOVAL,0AHMOVDI+5,ALCALLDISPRETKEY6:CMPBH,00H;按键6处理子程序JZKEY7_1CALLCLEARKEY6_1:CALLLP1MOVAL,0BEHMOVSI+5,ALMOVAL,06HMOVDI+5,ALCALLDISPRETKEYCHU:CMPBH,00H;按键/处理子程序JZKEYADD_1CALLCLEARKEYCHU_1:MOVBX,0102HRET;-每一个子程序KEYD:CMPBH,00H;按键=处理子程序JZKEYD_1CALLCLEARKEYD_1:14CALLLP1MOVAL,7AHMOVSI+5,ALMOVAL,0DHMOVDI+5,ALCALLDISPRETKEY9:CMPBH,00H;按键9处理子程序JZKEYF_BCALLCLEARKEY9_1:CALLLP1MOVAL,0F6HMOVSI+5,ALMOVAL,09HMOVDI+5,ALCALLDISPRETKEY5:CMPBH,00H;按键5处理子程序JZKEY7_1CALLCLEARKEY5_1:CALLLP1MOVAL,0B6HMOVSI+5,ALMOVAL,05HMOVDI+5,ALCALLDISPRETKEYDEN:MOVBH,01H;按键=处理子程序CMPBL,01HJZK1CMPBL,02HJMPCLEAR;不进行运算时就清零STTE:RETK1:CALLADD1JMPSTTEK2:CALLCHUJMPSTTE;-每一个子程序KEYC:CMPBH,00H;按键C处理子程序JZKEYC_1CALLCLEARKEYC_1:CALLLP1MOVAL,9CHMOVSI+5,ALMOVAL,0CHMOVDI+5,ALCALLDISPRETKEY8:CMPBH,00H;按键8处理子程序JZKEYF_BCALLCLEARKEY8_1:CALLLP1MOVAL,0FEHMOVSI+5,ALMOVAL,08HMOVDI+5,ALCALLDISPRETKEY4:CMPBH,00H;按键4处理子程序JZKEY7_1CALLCLEARKEY4_1:CALLLP1MOVAL,66HMOVSI+5,ALMOVAL,04HMOVDI+5,ALCALLDISPRETKEY3:CMPBH,00H;按键3处理子程序JZKEY3_1CALLCLEARKEY3_1:CALLLP1MOVAL,0F2HMOVSI+5,ALMOVAL,03HMOVDI+5,ALCALLDISPRET;-;数据清零子程序15CLEAR:MOVSI,OFFSETVA2MOVDI,OFFSETVA3MOVCX,000AHCLEAR1:MOVAL,0FCHMOVSI,ALMOVAL,00HMOVDI,ALINCSIINCDILOOPCLEAR1MOVBH,00HRET;-;4位十六进制加法子程序ADD1:LEASI,DATA3LEADI,DATA4CLCMOVCX,0004HADD2:MOVAL,DIADDAL,SICMPAL,10HJLADD3SUBAL,10HMOVBL,01HADDDI+1,BLADD3:MOVDI,ALINCSIINCDILOOPADD2CALLCHANGECALLDISPRET;-;4位10进制除法子程序CHU:MOVSI,OFFSETVA3MOVDI,OFFSETVA4CLCMOVCL,04HMOVAL,DI+3SHLAL,CLADDAL,DI+2MOVAH,ALMOVAL,DI+1SHLAL,CLADDAL,DIMOVBL,SI+3SHLBL,CLADDBL,SI+2MOVBH,BLMOVBL,SI+1SHLBL,CLADDBL,SIXORDX,DXDIVDXMOVBX,AXANDBH,0F0HSHRBH,CLANDAH,0F0HSHRBL,CLANDAL,0F0HMOVDI+3,BHMOVDI+2,AHMOVDI+1,BLMOVDI,ALCALLCHANGECALLDISPRET;-CHANGE:MOVSI,OFFSETVA2MOVDI,OFFSETVA4MOVBX,OFFSETTABLMOVCX,0006HCOMP0:MOVAL,DIXLATMOVSI,ALINCSIINCDILOOPCOMP0RET;-;保存上一次数据子程序LP3:MOVCX,0006HMOVSI,OFFSETVA3MOVDI,OFFSETVA4LP4:MOVAL,SIMOVDI,AL16INCSIINCDILOOPLP4RET;-;显示子程序DISP:MOVSI,OFFSETVA1MOVDI,OFFSETVA2MOVDL,DI+5CMPDL,0FCHJNZDIR5MOVDL,DI+4CMPDL,0FCHJNZDIR4MOVDL,DI+3CMPDL,0FCHJNZDIR3MOVDL,DI+2CMPDL,0FCHJNZDIR2MOVDL,DI+1CMPDL,0FCHJNZDIR1JMPDIR0JMPDIR0DIR5:MOVCX,0006HJMPDIRDIR4:MOVCX,0005HJMPDIRDIR3:MOVCX,0004HJMPDIRDIR2:MOVCX,0003HJMPDIRDIR1:MOVCX,0002HJMPDIRDIR0:MOVCX,0001HDIR:MOVAL,SIOUT60H,ALMOVA

温馨提示

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

评论

0/150

提交评论