微机课程设计(模拟计数器设运算)_第1页
微机课程设计(模拟计数器设运算)_第2页
微机课程设计(模拟计数器设运算)_第3页
微机课程设计(模拟计数器设运算)_第4页
微机课程设计(模拟计数器设运算)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、合肥工业大学 宣城校区信息工程系课程设计课 程:微机原理与接口技术设计专业班级: 学 号:xxxxxx姓 名: xx一、 设计题目及要求 模拟计算器运算(加,减,乘,括号)1通过小键盘做加、减、乘、括号运算。七段数码管显示器作输入数据和结果数据的显示。 2按键规定: (1)数字用小键盘09输入。 (2)功能按键设定: “A”“+” “B”“-” “D”“*” “E”“括号” “F”“=” “C”开始运算(包括撤消运算),屏幕显示“0”。 3运算要求: (1)输入一原始数据,显示器跟随显示。 (2)按“+”、“-”、“*”或“括号”时,显示器内容不变。 (3)再输入数据时,显示器跟随显示。 (4

2、)按“=”时,显示器显示最终结果数据。 (5)按“C”时,屏幕显示“0”。 (6)需要考虑运算的优先级问题。 (7)可以只考虑正整数运算,不考虑负数和实数运算。 注:输入数据时,若超出显示范围则不响应超出部分。在计算结果超出显示范围时,则显示“F”。2、 设计思想调用键盘扫描子程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,并将输入的数字通过调用显示子程序显示到LED显示器上。利用汇编的程序核对输入键的数值,通过调用加,减,乘,括号,子程序实现一位十进制数以内的及加、减、乘以及括号法运算。运算完成后将运算的结果储存并显示到LED显示器上。3、 功能流程图开始825

3、5初始化扫描有无按键 N Y数字键 Y N加保存数据调用加法子程序 Y调用减法子程序减 N显示 Y N乘调用乘法子程序 Y 括号 N调用括号子程序 Y N清除标志及数据清零 Y N进行加减乘运算并存结果显示等号 Y4、 结果讨论及心得分到这个课设题目第一反应是比较简单,但仔细一思考有没多大头绪,又感觉挺复杂,尤其是实现括号运算一点思路都没有。后来经过网上找相关资料和队友讨论渐渐有了思路。经过一个星期的反复实验终于完成了这次课设,在实验箱上可以完成一位数的加减乘以及括号运算。这次课设中遇到很多问题,让我看到了自己的很多不足比如汇编能力不足,对芯片不了解等等。同时这次课设让我巩固了所学的课本知识,

4、提高了动手实践能力和团队合作能力,自己感觉收获还是很大的。附录:实验代码(完整的源程序).MODELTINYCOM_8255EQU0273H;8255控制口PA_8255EQU0270HPB_8255EQU0271HPC_8255EQU0272H.STACK100.DATAZ1 DB 8 DUP(?)bufferDB8 DUP(?);8个字节显示缓冲区SEG_TABDB0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8HDB080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH,0FFH.CODESTART:MOVAX,DATAMOVDS,AX

5、MOVES,AXNOPCLD;0->DF, 地址自动递增MOVDX,COM_8255MOVAL,89Hgg:OUTDX,AL;PA、PB输出,PC输入LEADI,bufferMOVAL,10HMOVCX,08HREPSTOSBCALLDIRMAIN3:LEADI,bufferMAIN2:CALLkeyi CMP AL,0AH ;+ JZ e3 CMP AL,0DH ;* JZ Q3 CMP AL,0CH ;= JZ gg CMP AL,0BH ;- JZ E4 CMP AL,0EH ;() JZ E5QQ:STOSBQQQ: CALLDIRCMPDI,offset buffer+8JNZ

6、MAIN2JMPMAIN3e3:JMP Q1E4:JMP Q6E5:JMP Q7Q3:CALL KEYI CMP AL,0AH JZ Q1 CMP AL,0DH JZ Q3 CMP AL,0CH JZ gg CMP AL,0BH JZ E7 CMP AL,0EH JZ Q5B STOSB CALL DIR CMP DI,OFFSET BUFFER+8 MOV BL,AL LEA SI,BUFFER LODSB MUL BL LEA DI,BUFFER STOSB MOV BL,AL CALL KEYI JMP FE8:JMP ggE7:JMP Q6Q5B:JMP Q5AQx:CALL KEYI

7、 CMP AL,0AH JZ Q1 CMP AL,0DH JZ Q3 CMP AL,0CH JZ E8 CMP AL,0BH JZ Q6 CMP AL,0EH JZ M3 STOSB CALL DIR CMP DI,OFFSET BUFFER+8 MOV BL,AL LEA SI,BUFFER+4 LODSB MUL BL LEA DI,BUFFER STOSB MOV BL,AL CALL KEYI JMP FM3:JMP Q5ASA:JMP S9Q1:CALLkeyi STOSB CALLDIR CMPDI,offset buffer+8S1:CALL KEYI CMP AL,0EH JZ

8、 R CMP AL,0DH JZ S LEA DI,BUFFER+3 STOSB LEA SI,BUFFER LODSB MOV BL,AL LEA SI,BUFFER+1 LODSB ADD AL,BL LEA DI,BUFFER STOSB MOV BL,AL JMP DYQC:JMP Q3Q6:JMP Q2Q7:JMP Q5S:CALL KEYI MOV BL,AL LEA SI,BUFFER+1 LODSB MUL BL LEA DI,BUFFER+1 STOSB JMP S1DY:LEA SI,BUFFER+3 LODSBF:CMP AL,0AH JZ Q1 CMP AL,0BH J

9、Z Q2 CMP AL,0DH JZ QC JMP QQ2M1:JMP e3M2:JMP QxQ5A:JMP Q56M4:JMP ggM5:JMP E4M6:JMP E5R: LEA DI,BUFFER+3 STOSB LEA SI,BUFFER LODSB MOV BL,AL LEA SI,BUFFER+1 LODSB ADD AL,BL LEA DI,BUFFER STOSB MOV BL,AL LEA DI,BUFFER+4 STOSB CALLkeyi CMP AL,0AH JZ M1 CMP AL,0DH JZ M2 CMP AL,0CH JZ M4 CMP AL,0BH JZ M5

10、 CMP AL,0EH JZ M6Q2:CALLkeyi STOSB CALLDIR CMPDI,offset buffer+8S3:CALLkeyi CMP AL,0EH JZ R2 CMP AL,0DH JZ S2 LEA DI,BUFFER+3 STOSB LEA SI,BUFFER+1 LODSB MOV BL,AL LEA SI,BUFFER LODSB SUB AL,BL LEA DI,BUFFER STOSB MOV BL,AL JMP DYS2:CALL KEYI MOV BL,AL LEA SI,BUFFER+1 LODSB MUL BL LEA DI,BUFFER+1 ST

11、OSB JMP S3SH:JMP SASC:JMP SSB:JMP RQ8:JMP Q1Q9:JMP Q3QA:JMP ggQB:JMP Q2SJ:JMP SBR2:LEA DI,BUFFER+3 STOSB LEA SI,BUFFER+1 LODSB MOV BL,AL LEA SI,BUFFER LODSB SUB AL,BL LEA DI,BUFFER STOSB MOV BL,AL JMP DY JMP MAIN3QQ2: MOV AL,BL MOV AL,10H LEA DI,BUFFER+1 STOSB MOV AL,10H LEA DI,BUFFER+2 STOSB MOV AL

12、,10H LEA DI,BUFFER+3 STOSB MOV AL,10H LEA DI,BUFFER+4 STOSB MOV AL,10H LEA DI,BUFFER+5 STOSB MOV AL,10H LEA DI,BUFFER+6 STOSB MOV AL,10H LEA DI,BUFFER+7 STOSB JMP QQQSF:JMP SCSW:JMP SHQ5:CALL KEYI STOSB CALLDIR CMPDI,offset buffer+8 CALLkeyi CMP AL,0AH JZ Q8 CMP AL,0DH JZ Q9 CMP AL,0CH JZ QA CMP AL,

13、0BH JZ QB CMP AL,0EH JZ Q5 SE:JMP SJ RT:JMP gg V1:JMP Q9 V2:JMP QB V3:JMP QA Q56:CALL KEYI STOSB CALLDIR CMPDI,offset buffer+8 LEA DI,BUFFER+5 STOSB CALLkeyi CMP AL,0AH JZ SW CMP AL,0DH JZ V1 CMP AL,0CH JZ V3 CMP AL,0BH JZ V2 CMP AL,0EH JZ Q56QU:JMP Q6QP:JMP Q3S9:CALL KEYI CALLDIR CMPDI,offset buffe

14、r+8 STOSB CALL KEYI CMP AL,0EH JZ SQ CMP AL,0DH JZ SF STOSB CALLDIR CMPDI,offset buffer+8 LEA DI,BUFFER+7 STOSB LODSB MOV BL,AL LEA SI,BUFFER+5 LODSB ADD AL,BL LEA DI,BUFFER+4 STOSB MOV BL,ALSQ: LEA SI,BUFFER+6 LODSB MOV BL,AL LEA SI,BUFFER+1 LODSB ADD AL,BL LEA DI,BUFFER+4 STOSB MOV BL,AL JMP DZPP:

15、JMP FDZ:LEA SI,BUFFER LODSB MOV BL,AL LEA SI,BUFFER+4 LODSB MUL BL LEA DI,BUFFER STOSB CALL KEYI CMP AL,0FH JZ PPDIRPROCNEARPUSHAXPUSHBXPUSHDXLEASI,buffer;置显示缓冲器初值MOVAH,0FEHLEABX,SEG_TABLD0:MOVDX,PA_8255LODSBXLAT;取显示数据OUTDX,AL;段数据->8255 PA口INCDX;扫描模式->8255 PB口MOVAL,AHOUTDX,ALCALLDL1;延迟1msMOVDX

16、,PB_8255MOVAL,0FFHOUTDX,ALTESTAH,80HJZLD1ROLAH,01HJMPLD0LD1:POPDXPOPBXPOPAXRETDIRENDPDL1PROCNEAR;延迟子程序PUSHCXMOVCX,500LOOP$POPCXRETDL1ENDPKEYIPROCNEARPUSHBXPUSHDXLK:CALLAllKey;调用判有无闭合键子程序JNZLK1CALLDIRCALLDIR;调用显示子程序,延迟6msJMPLKLK1:CALLDIRCALLDIRCALLAllKey;调用判有无闭合键子程序JNZLK2CALLDIRJMPLKLK2:MOVBL,0FEH;R2MOVBH,0;R4LK4:MOVDX,PB_8255MOVAL,BLOUTDX,ALINCDXINAL,DXTESTAL,01HJNZLONEXORAL,AL;0行有键闭合JMPLKPLONE:TESTAL,02HJNZNEXTMOVAL,08H;1行有键闭合LKP:ADDBH,ALLK

温馨提示

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

评论

0/150

提交评论