ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:131.60KB ,
资源ID:21606375      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21606375.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮微机原理与接口技术2Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮微机原理与接口技术2Word下载.docx

1、11110100F4311110001F140011100139511011001D9611011101DD70110000161811111101FD911111001F9A011111017Db100111019DC11001100CCd10110101B5E11011100DCF010111005CH001111013DL100011008C多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率足够大,将看不到闪烁现象。实验证明,在扫描显示过程中,每一位显示延迟1ms是最佳选择。在代

2、码中,Show这个过程是来显示数码管的。主程序流程图:图 7 主程序流程图源代码:CODE (070141.asm); FILENAME : 070141.asm AUTHOR : XIAO, Zhiqing ( No. 13, Cl. 07105 ) DATE : 20091216 DESCRIPTION : display 070141 on seven tubes array macro : myOut ( WARNING : it may change the value of AL ) its strongly recommended that data be ALmyOut MAC

3、RO portAddr, data PUSH DX MOV DX, portAddr MOV AL, data OUT DX, AL POP DXENDM myDigitOut ( WARNING :myDigitOut MACRO portAddr, data PUSH BX MOV BX , OFFSET SegLut MOV AL , data XLAT SegLut POP BX myIn ( WARNING :myIn MACRO portAddr, data IN AL, DX MOV data, ALData SEGMENT Segment Lookup TableSegLut

4、DB 0EDH , 21H , 0F5H , 0F1H , 39H ; 01234 DB 0D9H , 0DDH , 61H , 0FDH , 0F9H ;56789 DB 7DH , 9DH , 0CDH , 0D5H , 0DCH ;ABCDEF DB 3DH , 8CH ;HL Content index array to printContent DB 00H , 07H , 00H , 01H , 04H , 01H 8255PortA EQU 0E800HPortB EQU 0E801HPortC EQU 0E802HPortControl EQU 0E803HData ENDSS

5、tack SEGMENT STACK STACK DB 100H DUP ( ? )Stack ENDSCode SEGMENTASSUME CS : Code , DS: Data , SS : StackMain PROC PUSH DS XOR AX, AX PUSH AX MOV AX, Data MOV DS, AX myOut PortControl, 80H ; 1 000 0 00 0B means : ; A - mode 0 , output B - mode 0 , output C High - output C Low - output view : CALL Sho

6、w JMP view RET ; unreachable instructionMain ENDP proc Show input argument lists : POINTShow PROC PUSH CX PUSH SI MOV BX, OFFSET Content MOV CL, 01H ; initialize make CL = 00000001B , which means enable the left most digit MOV SI, 0nextDigit : myOut PortB, CL ; select tubes MOV AL, BYTE PTR BX + SI

7、; myDigitOut PortA, AL ; select segments POP CX ROL CL, 1 ; display the left digit next to current one INC SI ; next letter CALL Delay CALL CheckAndQuit CMP SI, 6 JNZ nextDigit POP SI RETShow ENDPDelay PROC MOV CX, 0F000HloopLabel: NOP LOOP loopLabelDelay ENDPcheckAndQuit PROC MOV AH, 0BH ; check wh

8、ether user input something from keyboard INT 21H OR AL, AL ; if he does, then return to Dos JZ exitCheckAndQuit myOut PortA, 0 ; myOut PortB, 0 ; MOV AX, 4C00HexitCheckAndQuit : POP AXcheckAndQuit ENDPCode ENDSEND Main经编译、连接、运行,显示正常,且能够成功返回DOS。图 8 静态显示学号2.2.2. 动态显示HELLO要求在数码管电路16位数码管上按下图所示的规律,动态显示字符

9、串HELLO,当主机键盘按下任意键时结束。利用实验一读入端口的功能,控制动态显示的速度。第一屏第二屏第三屏第四屏第五屏O第六屏图 9 HELLO显示次序按照我的设计,该程序要像上一个程序(070141.asm)一样,通过更新显示的下标数组Content来改变数码管显示。但是,实验指导要求使用以下方法:REQUIREMENT (实验二 8255A并行接口应用.pdf)在数据段,按下列规律设置12个字型码:MESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0 POINT DW MESG POINT单元存放MESG单元的有效地址,程序取出POINT单元的内容BX,然

10、后用BX间址取数送数码管电路,扫描显示6个字符。每过0.5s将POINT单元的内容加1,再将POINT单元的内容BX,。POINT单元内容加1,使字符串显示的首地址向高地址移动一个单元,从而使6位字符串向“左”移动一位,实现动态显示。为了满足实验指导书的要求,我改动了程序的结构,不再使用查表的方法。图 10 动态显示HELLO流程图在本程序中,拨码开关S0控制是否移动。拨码开关往上拨,移动停止在第五屏;否则移动。拨码开关S1控制移动速度。拨码开关往上拨,移动变慢;拨码开关往下拨,移动变快。源代码如下:CODE (hello.asm) Hello.asm display Hello on sev

11、en tubes array USAGE : S0 : UP still , DOWN move S1 : UP slow , DOWN fastMESG DB 0, 0, 0, 0, 0, 0, 3DH, 0DCH, 8CH, 8CH, 0EDH, 0 ;HELLOPOINT DW MESG XUE 9 MODEPortSw EQU 0E8E0H JIAO 2 MODE PortSw EQU 0EEE0HSwState DB 0 switchers : 01H - 1 still, 0 move 02H - slow, fastViewIndex DB 0animation : CALL R

12、eadSwState TEST SwState , 02H JZ fast MOV CX, 0500Hfast : MOV CX, 0200H LOOP view CALL UpdateViewIndex JMP animation MOV BX, POINT make CL = 00000001B , which means enable the right most digit MOV CL, BYTE PTR BX + SI ; myOut PortA, CL ; MOV CX, 2000H myOut PortA , 00H myOut PortB , 00HUpdateViewInd

13、ex PROC TEST SwState, 01H JNZ stillMode INC POINT INC ViewIndex CMP ViewIndex, 7 JNZ exitUpdateViewIndex MOV POINT, OFFSET MESG MOV ViewIndex, 0 JMP exitUpdateViewIndexstillMode : MOV ViewIndex , 5 ADD POINT, 5exitUpdateViewIndex : RETUpdateViewIndex ENDPReadSwState PROC myIn PortSw, SwState POP AXR

14、eadSwState ENDP经过编译、连接、运行,可以正常运行。图 11 HELLO显示2.2.3. 回显小键盘输入检测行时,往控制口(0EE03H)写控制字88H,使C口(0EE02H)低八位(列)输出,高八位(行)输入。检测列时,往控制口(0EE03H)写控制字81H,使C口(0EE02H)高八位(行)输出,低八位(列)输入。首先,我利用debug,获得了每个按键对应的比特,制成了下表。根据下表,综合行值和列值,就可以知道按下了哪个键。表 3 检测到的二进制数与按钮值对应表测得键值*0111*1011*1101*11101110*1101*1011*B0111*D在本程序中,设置了防抖动

15、功能和防重复识别功能。当按下一个键后,一般情况下只会接收到一个值。但是,如果长按一个键,就会收到下一个值。这和普通PC键盘的体验相同,贴近广大用户的使用习惯。CODE (recur.asm) recur.asm display seven tubes array according to input testAndSet ( WARNING : refNum and incNum should be INSTANT number )testAndSet MACRO srcData , refNum , incNum LOCAL exitTestAndSet TEST srcData , ref

16、Num JNZ exitTestAndSet OR buttonIndex , incNum OR buttonPressed , 0FFHexitTestAndSet: NOPSegLut DB 0EDH , 21H , 0F4H , 0F1H , 39H ; DB 7DH , 9DH , 0CCH , 0B5H , 0DCH , 5CH ; DB 3DH , 8CH , 00H ; H ( 10H ) L ( 11H ) ( 12H )Content DB 12H , 12H , 12H , 12H , 12H , 12HbuttonPressed DB 0 ; 0FFH for pressed , 00H for not.buttonRow DB 0buttonCol DB 0buttonIndex DB 0buttonEnable DW 0000H C High - o

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1