资源描述:
《微原实验5updata2008-11-11》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验58255并行接口技术实验9/4/20211西北工业大学计算机实验教学中心王毅航限流电阻锁存器驱动器数码管正常的必要条件573锁存正确的字型码数码管对应1413相应的输入端为高电平动态扫描分时送字型码轮流把1413输入置‘1’控制刷新频率使之不闪烁显示乱码时检查数据线对应关系9/4/20212西北工业大学计算机实验教学中心王毅航8255使用要点口地址(连接CS1时):PA:0C800HPB:0C801HPC:0C802H控制口:0C803H实验中不能按复位要先开电,再执行程序,不能颠倒次序9/4
2、/20213西北工业大学计算机实验教学中心王毅航9/4/20214西北工业大学计算机实验教学中心王毅航4.数码管编码表“0”-3FH“1”-06H“2”-5BH“3”-4FH“4”-66H“5”-6DH“6”-7DH“7”-07H“8”-7FH“9”-6FH“A”-77H“B”-7CH“C”-39H“D”-3EH“E”-79H“F”-71H9/4/20215西北工业大学计算机实验教学中心王毅航有关问题的说明数码管(共阴):ABCDEFGDPABCDEFGDP共阴地K数字DPGFEDCBA字型码000
3、1111113FH10000011006H2010110115BH……K不闭合,数码管就点不亮9/4/20216西北工业大学计算机实验教学中心王毅航实验6.1锁存器A口K4K3K2K1开关ABCDEFGDP限流电阻数据总线8255MC1413驱动器B口COM数据总线SMGLTCS8255A口连线说明排线3根:数据总线<=>A..dpK1-K8<=>PASM0-SM5<=>PB单根2根:CS1<>CS8255SMGLT<>SMGLT9/4/20217西北工业大学计算机实验教学中心王毅航开始初始化825
4、5点亮一位数码管读键盘有E键?读开关量屏蔽掉高4位,保留低4位取对应‘开关’号的字型码输出对应的数字的字型码结束YN9/4/20218西北工业大学计算机实验教学中心王毅航.modelsmallp8255equ0C800h;片选地址p_ctlequ_?_;8255控制字s_l_aequ0C820h;573锁存地址.datatabledb3fh,06h,5bh,4fh,db66h,6dh,7dh,07h,db7fh,6fh_?_;补充字型表.code.startup;8255初始化movdx,p8255
5、+3moval,p_ctloutdx,al;点亮数码管SM0movdx,p8255+1moval,01houtdx,allop:movah,06h;键入“e”结束执行movdl,0ffhint21hcmpal,'e'jescan_endmovdx,p8255;读开关inal,dxandal,0fh_xlat;查表,[BX+AL]送ALmovdx,s_l_a;输出对应的数字outdx,aljmplop;循环扫描scan_end:.exitend9/4/20219西北工业大学计算机实验教学中心王毅航实验
6、6.2限流电阻DbusD7…D08255MC1413驱动器B口COMDbusD7…D0SMGLTCS825574HC573锁存器COMCOMCOMCOMCOMABCDEFGDP连线说明同前,不用变更9/4/202110西北工业大学计算机实验教学中心王毅航开始初始化8255查表取显示数字字型码显示字型码送锁存器(输出)取对应数码管字位、并输出CL+1(下一扫描位置)扫描位数≥6?调延时CL 初始扫描位置AL CL(显示数字)CL 初始扫描位置11读键盘有键动?结束NYYN延时程序流程见前9/4/
7、202111西北工业大学计算机实验教学中心王毅航.modelsmallp8255equ0c800H ;片选地址p_ctlequ10010000B;8255控制字s_l_aequ0c820H;573锁存地址.datatabledb3FH,06H,5BH,4FH,66H;0,1,2,3,4db6DH,7DH,07H,7FH,6FH;5,6,7,8,9.code.startupmovdx,p8255+3;发控制字moval,p_ctloutdx,almovcl,1 ;设扫描位置lop:moval,
8、cl;取显示数字movbx,offsettable;读字型码xlatmovdx,s_l_a;输出字型码outdx,almoveal,10000000Brolal,cl;左循环移位movdx,p8255+1outdx,al;送B口控制的数码管位incclcmpcl,6jbedown;若显示位置大于等于6,;返回启始位置1movcl,1down: calldelaymovah,06;判有键动,跳出循环movdl,0ffhint21hjnzscan_endjmplop;循环