资源描述:
《微机原理课程设计---投票仪设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、北京信息科技大学信息管理学院实验报告课程名称微机原理课程设计实验项目实验2-(4)投票仪设计实验仪器PC、TDN86/88教学实验系统、Wmd86联机软件专业班级/学号学生姓名实验日期实验地点成绩指导教师一、实验目的1.熟练掌握8253、8255、8259和其他设备的连线,同时考察程序整体思路的严谨性二、实验内容设计四人投票仪,按下复位键后开始投票,每人用两个开关表示赞成和反对,投票时间为1秒,到时间两开关都未动作表示弃权,统计赞成、反对和弃权的人数并在数码管上显示出来。三、流程图是否投票结束时间到是否K0=K1=
2、1读取开关状态,进行投票统计,显示结果开始是开关状态全0并且KK1按下否设置中断向量,设置7波段码值四、连线及设计思路要实现投票仪,需要四个步骤1、按复位键2、开始投票3、统计结果4、显示结果我通过8255的B口显示LED灯,A口读取开关状态,K0,K2,K4,K6为赞成,K1,K3,K5,K7为反对,C口的高四位用来控制LED灯的显示顺序,C口的低四位连接8253的OUT口,达到定时的效果。8253的CLK连接CPU时钟。KK1连接8259的7号中断,起到复位键的作用。四、实验过程CODESEGMENTASSUM
3、ECS:CODESTART:MOVAX,0000H;初始化DS段MOVDS,AXMOVAX,OFFSETIRQ7;设置中断向量表MOVSI,003CH;设置偏移地址MOV[SI],AXMOVAX,CSMOVSI,003EH;设置CS段地址MOV[SI],AXCLI;关中断MOVAL,10010001B;8255控制字,A口输入,B口输出,C口高四位输出,低四位输入OUT63H,ALMOVSI,3008H;设置7波段码值MOV[SI],3FHMOV[SI+1],06HMOV[SI+2],5BHMOV[SI+3],4F
4、HMOV[SI+4],66HSTI;开中断AA:MOVAL,0FFH;屏蔽中断OUT21H,ALINAL,60H;判断开关是否都为0TESTAL,0FFHJNZAA;如果不为0,循环检测MOVAL,7FH;如果为0,取消7号中断屏蔽OUT21H,ALJMPAA;继续循环检测IRQ7:MOVDI,3000H;设置投票结果存储地址MOV[DI],0MOVCX,64H;设置投票时间MOVAL,0FFH;LED灯全开OUT61H,ALARR:MOVAL,10110110B;8253延时OUT43H,ALMOVAL,0HOU
5、T42H,ALMOVAL,0HOUT42H,ALAR:INAL,62HMOVBL,00HANDAL,0CHSUBBL,ALJNZARLOOPARRMOVDL,04H;设置循环次数,因为有四个人MOVDH,01H;设置判断赞成人数向量RESULT:INAL,60H;读取A口状态,即投票结果,存入内存MOV[DI],ALINCDI;指针加一,用来存放赞成人数MOV[DI],0;赞成人数清零PDZC:TESTAL,DH;判断是否赞成JNZZCGOON1:ROLDH,2;判断向量循环左移2位DECDL;循环次数减一JNZP
6、DZC;不为0,检测下一个人是否赞成INCDI;指针加一,用来存放反对人数MOV[DI],0;反对人数清零MOVDH,02H;设置判断反对人数向量MOVDL,04H;设置循环次数JMPPDFDZC:INC[DI];赞成人数加一JMPGOON1;继续检测PDFD:TESTAL,DH;同上JNZFDGOON2:ROLDH,2DECDLJNZPDFDMOVAL,0JMPQQFD:INC[DI]JMPGOON2QQ:MOVAL,[DI];取反对人数ADDAL,[DI-1];加上赞成人数MOVAH,4HSUBAH,AL;用总
7、人数减去反对加赞成,即为弃权人数MOV[DI+1],AH;把弃权人数存到内存DECDILED:MOVCX,2H;设置时间向量MOVAL,70H;设置亮第一盏灯OUT62H,ALMOVBX,[DI-1];取出赞成人数MOVBL,BHANDBX,0FH;BX存赞成人数MOVAL,[SI+BX];从内存取7波段码值OUT61H,ALMOVAH,01HWAI1:MOVAL,10110110B;8253计时OUT43H,ALMOVAL,0FHOUT42H,ALMOVAL,0FHOUT42H,ALWAIT1:INAL,62HM
8、OVBL,00HANDAL,0CHSUBBL,ALJNZWAIT1LOOPWAI1CMPAH,01HJEFLA2CMPAH,02HJEFLA3JMPFIFLA2:MOVAL,0B0H;亮第二盏灯OUT62H,ALMOVBX,[DI]MOVBL,BHANDBX,0FH;BX存反对人数MOVAL,[SI+BX];从内存取7波段码值OUT61H,ALMOVCX,2