微机原理与接口技术课程设计---电子表报告.doc
《微机原理与接口技术课程设计---电子表报告.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计---电子表报告.doc(19页珍藏版)》请在咨信网上搜索。
微机原理与接口技术 课程设计报告 设计名称:电 子 表 专 业:计算机科学与技术 班 级: 姓 名: 学 号: 指导教师: 2010 年 6 月 15 日 一、 设计任务: 1.电子表,具有十分、分、十秒和秒的计时功能,并可以在数码管上显示。 2电子表具有启动键、停止键、复位键,而且可以随时通过键盘进行各位时间的设置。 二、 设计原理: 本程序的主要设计原理是用主程序完成键盘按键的扫描,实现计时结果的数码管显示,实现秒与分之间的转换。通过判断键盘按键调用相应功能程序段以实现相应功能,即实现了启动、暂停、复位功能,以及通过键盘进行十分、分、十秒、秒时间的手动设置功能。 1.8254的初始化字 由此,本设计中的8254的初始化为: MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;计数器0,方式3 OUT DX,AL MOV DX,MY8254_COUNT0 ;装入计数初值 MOV AL,00H ;18432分频 OUT DX,AL MOV AL,54H OUT DX,AL 2.8255的初始化字 由此,本设计中的8255的初始化为: MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口输出,C口低4位输入 OUT DX,AL 三、 电子表软件流程图 1.主程序流程图 开 始 程 序 初 始 化 判断小键盘是否有键按下 N Y 若按键值为8、9、0A、0B、0C、0D、0E、0F,则要转至时间设置处理程序 若按键值为1,则要转至STOPKEYTAG处理程序 若按键值为2,则要转至CLEARKEYTAG处理程序 若按键值为3,则要转至STARTISRUNING处理程序 PC机上面是不是有键按下 调 用 子 程 序 N Y 返回DOS 结 束 2.电子表处理程序 开 始 SEC秒加1 SEC秒是否到10? N Y SEC秒清零,TENSEC十秒加1 TENSEC十秒是否到6? N Y TENSEC十秒清零,MINT个位分加1 MINT个位分是否到10? N Y MINT个位分清零,TENMINT十位分加1 TENMINT十位分到6? N Y TENMINT十位秒分清零 调用LED动态显示程序 结 束 四、 电子表硬件接线图 A B C D E 键 盘 F 及 数 G 码 管 DP 显 示 单 元 X1 X2 X3 X4 Y1 Y2 Y3 Y4 D7 PB0 D6 PB1 D5 PB2 D4 PB3 D3 PB4 D2 PB5 D1 PB6 D0 8255 PB7 单 元 A1 PA0 A0 PA1 PA2 WR PA3 RD CS PC0 PC1 PC2 PC3 XD7 XD6 XD5 XD4 XD3 XD2 XD1 XD0 系 XA3 XA2 XIOW XIOR IOY0 IOY1 INTR CLK 统 D7 D6 D5 D4 D3 D2 8254 D1 单 元 D0 A1 A2 WR RD CS OUT0 CLK0 总 线 五.电子表软件代码 ;***************根据CHECK配置信息修改下列符号值******************* IOY0 EQU 0e000H ;片选IOY0对应的端口始地址 IOY1 EQU 0e040H ;***************************************************************** MY8255_A EQU IOY0+00H*4 ;8255的A口地址 MY8255_B EQU IOY0+01H*4 ;8255的B口地址 MY8255_C EQU IOY0+02H*4 ;8255的C口地址 MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址 MY8254_COUNT0 EQU IOY1+00H*4 ;8254计数器0端口地址 MY8254_COUNT1 EQU IOY1+01H*4 ;8254计数器1端口地址 MY8254_COUNT2 EQU IOY1+02H*4 ;8254计数器2端口地址 MY8254_MODE EQU IOY1+03H*4 ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H ,5EH,79H,71H ;键值表,0~F对应的7段数码管的段位值 TIMETABLE DB 0,0,0,0 STARTKEY DB 3 ;启动键 STOPKEY DB 1 ;停止键 CLEARKEY DB 2 ;清0键 SETTMADDKEY DB 8 ;设置十位分钟加 SETMADDKEY DB 9 ;设置个位分钟加 SETTSADDKEY DB 0AH ;设置十位秒加 SETSADDKEY DB 0BH ;设置个位秒加 SETTMSUBKEY DB 0CH ;设置十位分钟减 SETMSUBKEY DB 0DH ;设置个位分钟减 SETTSSUBKEY DB 0EH ;设置十位秒减 SETSSUBKEY DB 0FH ;设置个位秒减 STATUS DB 0 ;8254out端口状态键 ISRUNING DB 0 WTHOUSAND DB 0 WSEC DB 0 WMSEC DB 0 TENSEC DB 0 SEC DB 0 MINT DB 0 TENMINT DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;计数器0,方式3 OUT DX,AL MOV DX,MY8254_COUNT0 ;装入计数初值 MOV AL,00H ;18432分频 OUT DX,AL MOV AL,54H OUT DX,AL MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,81H ;方式0,A口、B口输出,C口低4位输入 OUT DX,AL BEGIN: CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键 JZ NOKEYDOWN ;有键按下则跳置GETKEY1 JMP GETKEY1 NOKEYDOWN: MOV AH,1 ;判断PC键盘是否有按键按下 INT 16H JZ KEYSCANEND ;无按键则跳回继续循环,有则退出 JMP QUIT KEYSCANEND: CMP ISRUNING,1 JNE BEGIN TIMESTART: MOV AL,11100010B ;设置回读命令 MOV DX,MY8254_MODE OUT DX,AL MOV DX,MY8254_COUNT0 ;读0端口状态控制字 IN AL,DX CMP STATUS,1 JNE NOTSTATUS TEST AL,80H JZ CHANGEWMSEC JMP BEGIN NOTSTATUS: TEST AL,80H JNZ CHANGEWMSEC JMP BEGIN CHANGEWMSEC: TEST AL,80H JZ CHANGESTATUS MOV STATUS,1 JMP HASCHANGE CHANGESTATUS: MOV STATUS,0 HASCHANGE: INC WMSEC CMP WMSEC,0AH ;百分秒到10,十分秒加1 JNE CHANGESEC MOV WMSEC,0 INC WSEC CMP WSEC,0AH ;十分秒秒到10,个位秒加1 JNE CHANGESEC MOV WSEC,0 INC SEC CMP SEC,0AH ;个位秒秒到10,十位秒加1 JNE CHANGESEC MOV SEC,0 INC TENSEC CMP TENSEC,06H ;十位秒到6,清零 JNE CHANGESEC MOV TENSEC,0 INC MINT CMP MINT,0AH ;分钟个位到10,十位加1 JNZ CHANGESEC MOV MINT,0 INC TENMINT CMP TENMINT,06H ;十位分到6,清零 JNE CHANGESEC MOV TENMINT,0 CHANGESEC:MOV SI,0 ;存储时间 MOV AL,TENMINT;十位分 MOV TIMETABLE[SI],AL INC SI MOV AL,MINT;个位分 MOV TIMETABLE[SI],AL INC SI MOV AL,TENSEC;十位秒 MOV TIMETABLE[SI],AL INC SI MOV AL,SEC;个位秒 MOV TIMETABLE[SI],AL INC SI MOV TIMETABLE[SI],0 INC SI JMP BEGIN QUIT: MOV AX,4C00H ;返回到DOS INT 21H GETKEY1:CALL DIS ;显示刷新 CALL DALLY CALL DALLY CALL CLEAR ;清屏 CALL CCSCAN ;再次扫描按键 JNZ GETKEY2 ;有键按下则跳置GETKEY2 JMP BEGIN ;否则跳回开始继续循环 GETKEY2:MOV CH,0FEH MOV CL,00H ;设置当前检测的是第几列 COLUM: MOV AL,CH ;选取一列,将X1~X4中一个置0 MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C ;读Y1~Y4,用于判断是哪一行按键闭合 IN AL,DX L1: TEST AL,01H ;是否为第1行 JNZ L2 ;不是则继续判断 MOV AL,00H ;设置第1行第1列的对应的键值 JMP KCODE L2: TEST AL,02H ;是否为第2行 JNZ L3 ;不是则继续判断 MOV AL,04H ;设置第2行第1列的对应的键值 JMP KCODE L3: TEST AL,04H ;是否为第3行 JNZ L4 ;不是则继续判断 MOV AL,08H ;设置第3行第1列的对应的键值 JMP KCODE L4: TEST AL,08H ;是否为第4行 JNZ kk ;不是则继续判断 MOV AL,0CH ;设置第4行第1列的对应的键值 MYNEXT: PUSH AX KON: CALL DIS ;显示刷新 CALL CLEAR ;清屏 CALL CCSCAN ;扫描按键,判断按键是否弹起 JNZ KON ;未弹起则继续循环等待弹起 POP AX KCODE: ADD AL,CL ;将第1列的值加上当前列数,确定按键值 CMP AL,STARTKEY ; 判断是否为开始键 JNE STOPKEYTAG CMP ISRUNING,0 JNE STARTISRUNING MOV ISRUNING,1 STARTISRUNING: JMP TIMESTART STOPKEYTAG: ; 判断是否为停止键 CMP AL,STOPKEY JNE CLEARKEYTAG MOV ISRUNING,0 JMP STARTISRUNING CLEARKEYTAG: ; 判断是否为清零键 CMP AL,CLEARKEY JNZ SETTMADDTAG CALL CLEARCLOCK JMP KERR KK:JMP NEXT SETTMADDTAG: ; 判断是否为十位分钟加设置键 CMP AL,SETTMADDKEY JNZ SETMADDTAG CALL SETTMADD JMP KERR SETMADDTAG: ; 判断是否为个位分钟加设置键 CMP AL,SETMADDKEY JNZ SETTSADDTAG CALL SETMADD JMP KERR SETTSADDTAG: ; 判断是否为十位秒加设置键 CMP AL,SETTSADDKEY JNZ SETSADDTAG CALL SETTSADD JMP KERR SETSADDTAG: ; 判断是否为个位秒加设置键 CMP AL,SETSADDKEY JNZ SETTMSUBTAG CALL SETSADD JMP KERR SETTMSUBTAG: ; 判断是否为十位分钟减设置键 CMP AL,SETTMSUBKEY JNZ SETMSUBTAG CALL SETTMSUB JMP KERR SETMSUBTAG: ; 判断是否为个位分钟减设置键 CMP AL,SETMSUBKEY JNZ SETTSSUBTAG CALL SETMSUB JMP KERR SETTSSUBTAG: ; 判断是否为十位秒减设置键 CMP AL,SETSSUBKEY JNZ SETSSUBTAG CALL SETTSSUB JMP KERR SETSSUBTAG: ; 判断是否为个位秒减设置键 CMP AL,SETSSUBKEY JNZ KERR CALL SETSSUB NEXT: INC CL ;当前检测的列数递增 MOV AL,CH TEST AL,08H ;检测是否扫描到第4列 JZ KERR ;是则跳回到开始处 ROL AL,1 ;没检测到第4列则准备检测下一列 MOV CH,AL JMP COLUM KERR: JMP BEGIN CCSCAN PROC NEAR ;扫描是否有按键闭合子程序 MOV AL,1H MOV DX,MY8255_A ;将4列全选通,X1~X4置0 OUT DX,AL MOV DX,MY8255_C IN AL,DX ;读Y1~Y4 NOT AL AND AL,0FH ;取出Y1~Y4的反值 RET CCSCAN ENDP CLEAR PROC NEAR ;清除数码管显示子程序 MOV DX,MY8255_B ;段位置0即可清除数码管显示 MOV AL,00H OUT DX,AL RET CLEAR ENDP DIS PROC NEAR ;显示键值子程序 PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显示 MOV SI,OFFSET TIMETABLE MOV CX,SI ADD CX,1 ADD SI,5 MOV DL,0DFH MOV AL,DL AGAIN: PUSH DX MOV DX,MY8255_A OUT DX,AL ;设置X1~X4,选通一个数码管 MOV AL,[SI] ;取出缓冲区中存放键值 MOV BX,OFFSET DTABLE AND AX,00FFH ADD BX,AX MOV BL,[BX] CMP SI,CX JNE COMER OR BL,80H COMER: MOV AL,BL ;将键值作为偏移和键值基地址相加得到相应的键值 MOV DX,MY8255_B OUT DX,AL ;写入数码管A~Dp CALL DALLY DEC SI ;取下一个键值 POP DX MOV AL,DL TEST AL,01H ;判断是否显示完? JZ OUT1 ;显示完,返回 ROR AL,1 MOV DL,AL JMP AGAIN ;未显示完,跳回继续 OUT1: POP AX RET DIS ENDP DALLY PROC NEAR ;软件延时子程序 PUSH CX MOV CX,00FFH D1: MOV AX,00FFH D2: DEC AX JNZ D2 LOOP D1 POP CX RET DALLY ENDP ;设置十位分钟加子程序 SETTMADD PROC NEAR ADD TENMINT,1 MOV AL,TENMINT MOV SI,0 MOV TIMETABLE[SI],AL RET SETTMADD ENDP ;设置个位分钟加子程序 SETMADD PROC NEAR ADD MINT,1 MOV AL,MINT MOV SI,1 MOV TIMETABLE[SI],AL RET SETMADD ENDP ;设置十位秒加子程序 SETTSADD PROC NEAR ADD TENSEC,1 MOV AL,TENSEC MOV SI,2 MOV TIMETABLE[SI],AL RET SETTSADD ENDP ;设置个位秒加子程序 SETSADD PROC NEAR ADD SEC,1 MOV AL,SEC MOV SI,3 MOV TIMETABLE[SI],AL RET SETSADD ENDP ;设置十位分钟减子程序 SETTMSUB PROC NEAR SUB TENMINT,1 MOV AL,TENMINT MOV SI,0 MOV TIMETABLE[SI],AL RET SETTMSUB ENDP ;设置个位分钟减子程序 SETMSUB PROC NEAR SUB MINT,1 MOV AL,MINT MOV SI,1 MOV TIMETABLE[SI],AL RET SETMSUB ENDP ;设置十位秒减子程序 SETTSSUB PROC NEAR SUB TENSEC,1 MOV AL,TENSEC MOV SI,2 MOV TIMETABLE[SI],AL RET SETTSSUB ENDP ;设置个位秒减子程序 SETSSUB PROC NEAR SUB SEC,1 MOV AL,SEC MOV SI,3 MOV TIMETABLE[SI],AL RET SETSSUB ENDP ;电子表复位子程序 CLEARCLOCK PROC NEAR MOV TENMINT, 0 MOV MINT, 0 MOV TENSEC, 0 MOV SEC, 0 MOV SI,0 MOV TIMETABLE[SI],0 INC SI MOV TIMETABLE[SI],0 INC SI MOV TIMETABLE[SI],0 INC SI MOV TIMETABLE[SI],0 RET CLEARCLOCK ENDP CODE ENDS END START 五、 心得体会 在设计刚开始时,我们只是知道要用8254完成计数,用8255与数码管单元完成显示功能,但是具体怎么实现的还不是很清楚。在接下来的一小段时间里,我们觉得无从下手,但通过自己耐心搜集资料,向老师和同学请教,慢慢理出了头绪,也有了自己的设计思想和设计框架,并有了一定的实现方法。 对于设计题目来说,并非那么得复杂,但要设计者将所学转换成相应的实际应用却并非一件容易的事情。本设计题目的设计思想是简单的,只需要使用8254完成计数,用8255与数码管单元完成显示功能,并通过自己的理解附加一些功能片段来完成电子表的人性化功能设计,如电子表的校准、电子表的开始、停止、清零等功能。 在课程设计过程中,我深刻地体会到:《微机原理与接口技术》这门课程对于我们的要求不仅限于对书本知识的理解,更重要的是对书本知识的运用。除此之外,我们应该在学习过程中充分发挥自己的想象力和创新意识,将对书本知识的理解与我们的创新意识相结合,设计出实用且功能良好的实物。通过本次课程设计,也提高了我们的编程能力、协作能力和创新能力,为以后的学习打下了良好的基础。 参考文献 [1]郭兰英 赵祥模 ,《微机原理与接口技术》 清华大学出版社 [2]张荣祥,《微型计算机原理》,中国电力出版社 [3]范会敏 李晋惠,《微型计算机原理及接口技术应用》,科学出版社 评 语 评 语- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课程设计 电子表 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文