




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西 安 邮 电 大 学硬件课程设计报告系部名称:通信工程学院专业名称:电子信息科学与技术班 级:学生成员 : 时间:2011年5月23日6月3日 微机系统接口课程设计一、设计目标 基本要求:、8255基本输入输出 : 能够在自行设计的接口开发板上,实现拨动开关控制LED的亮灭。2、流水灯设计实现:能够在自行设计的接口开发板上,实现拨动不同开关控制LED灯的变化。例如,K8从左往右,K7从右往左,K6从中间向两边,K5从两边向中间依次亮灭变化。3、数码管应用能够在自行设计的接口开发板上,实现拨动不同开关,数码管显示该开关位置值(1-8);若同时拨动两个以上开关,则数码管显示“E” ,并相应的灯亮。 较高要求: 汽车速度控制系统在自行设计接口板的的按键转换汽车的档位,用发光二极管显示档位,用数码管显示汽车的速度。1 按“1”键启动系统,汽车以最低速度行驶,同时用1盏绿灯显示档位,数码管显示速度(最低速度为5Kmh)。当需要换档时,用键盘键入2、3键,并加用一盏黄灯和一盏红灯显示,同时在数码管上显示相应的速度。2 汽车慢加速时用“A”键,急加速时用“B”键。慢刹车时用“C”键,急刹车时用“D”键。加速和刹车时用数码管显示相应的速度变化。3 当汽车需紧急停车时,键入“ESC”键,所有发光二极管熄灭,同时数码管显示“0”。1、PC人机交互接口2、LED控制3、数码管显示4、8255编程 选题说明 为期两周的课程设计又开始了,这次是微机接口实验,硬件课程设计。我们都想通过课程设计学到点东西,所以就想说选择题目不要太简单应该要有点难度和挑战。题目要求里给了五个选择,也可以自己设计题目。最后决定就在给出的题目里选择,这样要求很明确便于老师检查也方便我们自己设计。经过对五个题目的衡量,交通灯和抢答器我们以前做过,虽然不是编程设计电路但是基本功能都接触过,所以就没有选。剩下三个题目就选择要求比较多的,因为汽车速度控制系统的要求里有PC人机交互接口,而且对汽车的基本功能也都挺熟悉的,所以就选择了汽车速度控制系统。其实不管选择哪一个题目,只要我们认真的做就一定会完成得很好的。二、 设计方案1、 设计方案说明(方案选择)方案一:用8255的A端口来控制数码管的显示,B端口接二极管灯,分别表示每个功能的灯,C端口的低四位来控制数码管的片选,pc7接8254的out0,来实现上升沿控制,从而实现频率选择。方案二:用8255的A端口来控制数码管的显示,B端口接开关及二极管灯,分别表示每个功能的灯,C端口的低四位来控制数码管的片选,pc7接8254的out0,来实现上升沿控制,从而实现频率选择。方案三:用8255的A端口来控制数码管的显示,B端口接开关,C端口的低四位来接二极管,分别代表一档,二档,三档和刹车的灯,C的高四位来实现数码管的片选,pB7接8254的out0,来实现上升沿控制,从而实现频率选择。第一个方案的控制完全由键盘控制,没有其他两个的功能全,而第二个那么多的灯不符合现实的要求,所以考虑再三决定选择第三个2、 系统组成框图汽车速度控制系统框图 A端口8255B端口 Pc6 Pc7C低四位Pb7 Pb7数码管显示拨动开关片选数码管十位 Out08254片选数码管个位LED灯,分别显示一档,二档,三档,刹车频率控制3、 系统组成说明(分软硬件) 1、按“1键”启动系统,汽车以最低速度行驶,同时用1盏绿灯显示档位,数码管显示速度(最低速度为5Km/h)。当需要换档时,用键盘键入2/3键,并加用一盏黄灯和一盏红灯显示,同时在数码管上显示相应的速度。2、汽车慢加速时用“A键”,急加速时用“B键”。慢刹车时用“C键”,急刹车时用“D键”。加速和刹车时用数码管显示相应的速度变化,同时用LED灯显示当前所作的操作。3、当汽车需要紧急刹车时,键入“ESC”键,所有发光二极管熄灭,同时数码管显示“0”。4、各档位车速: 1档: 5-25 Km/h 2档: 26-50 Km/h 3档:51-90 km/h4、 要求有PC 人机交互接口,LED控制,数码管显示。三、 硬件设计1、 硬件设计原理图(完整) D0-D7 PA0 PA7 PB0RD WR PB6 PB7CS 8255 PC0 A0 PC3A1 PC6 PC7a 数码管gGP数 地 控K1 开关据 据 据总 总 总线 线 线K7LED1 一档 二档三档十LED3 刹车个DO-D7 OUT0 GATE0RDWR 8254CSA0A1CLK+5V2、 硬件设计说明(含接口规范)汽车速度控制的硬件设计说明:8255和8254的数据端都接XD0-XD7,RD接XIOR, WR接XIOW,A0 A1接XA2 XA3,8255的CS接XOY3,8254的CS接XOY08255的A端口接数码管,B端口接拨动开关,前面接一个上拉电阻(用来扩展实现开关控制的功能),pb7接8254传给8255的一个脉冲信号,从而实现频率控制,8255的低四位接LED灯,并分别表示一档,二档,三档和刹车,pc6和pc7分别对个位和十位进行片选8254的GATE0接+5v CLK0接系统总线的CLK3、 焊接板实物照片四、软件设计1、 软件设计说明 主要就说明汽车速度控制系统的设计:(1)为了使汽车控制功能实现的更清晰,所以就用了PC人机交互接口界面,就进行按键选择,1键数码管显示1档并对应第一个灯亮,2键数码管显示2档并对应第二个灯亮,3键数码管显示3档并对应第三个灯亮,A或a进行慢加速没有灯,B或b进行快加速没有灯,C或c进行慢减速第四个灯亮,D或d进行快加速第四个灯亮,Esc键进行刹车并第四个灯亮,Q或q键退出;(2)慢加速和快加速是用频率控制的,频率小了就是快加速,频率大了就是慢加速,先判断是处于哪个档位再在那个档位的基础上加速,慢减速和快减速同加速一样就多加个刹车灯亮;(3)紧急刹车是直接让数码管显示为0,并刹车灯亮;(4)上升沿查询就是使上升沿有效,从0变到1尽可以进行操作了;(5)开始定义两个不同的频率,一个快一个慢,写两个模块分别是产生慢频率和快频率。2、软件流程图(完整流程和分模块流程)开始 显示系统信息是否键入1?N Y进入系统,显示系统功能信息进入一档,数码管显示一档速度5km/h是否键入1?Y N进入二档,数码管显示二档速度26km/h是否键入2?否Y N是否键入3?进入三档,数码管显示三档速度51km/h Y N进入慢加速,数码管显示慢加速后的速度是否键入A? Y N进入快加速,数码管显示快加速后的速度是否键入B? Y是否键入C? N进入慢减速,数码管显示慢减速后的速度 Y是否键入D? N进入快减速,数码管显示快减速后的速度 Y N是否键入Q?退出汽车系统 Y2、 重点模块代码注释说明上升沿查询QUIRE_UP PROC NEAR PUSH DX ;保护现场PUSH AXQUIRE1:MOV DX, MY8255_BIN AL, DXAND AL, 80H ;和10000000相与CMP AL, 0 ;判断PB7端口是否为0,如果是0,则此时是从1到0的下降沿JNZ QUIRE1QUIRE2:MOV DX, MY8255_BIN AL, DXAND AL, 80H ;和10000000相与CMP AL, 80H ;判断PB7端口是否为1,如果是1,则此时是从0到1的上升沿JNZ QUIRE2POP AX ;恢复现场POP DXRETQUIRE_UP ENDP慢加速模块,步进为1(快加速类似)SLOW_UP PROC NEAR PUSH AX PUSH DXLEA DX,INFOR71 ;显示系统进入慢加速状态MOV AH,09HINT 21HSU_CMP1:CMP CX,25 ;看当前档位是不是1档 JA SU_CMP2SU_DO1:PUSH AXCALL SPEED_FRE1 ;产生慢频率 CALL QUIRE_UPADD CX, 1CMP CX, 25JBE SU_SHOW1 ;小于等于25MOV CX, 25SU_SHOW1: CALL SHOW_NUMLED ;数码管显示速度CMP CX, 25JGE SU_END ;大于等于25MOV AH, 01H ;检查键盘是否键入字符 键入ZF=0INT 16HPOP AXJNZ SU_END ;ZF=0跳转 即键入跳转JMP SU_DO1SU_CMP2:CMP CX,50 ;看当前档位是不是2档 JA SU_CMP3SU_DO2:PUSH AXCALL SPEED_FRE1CALL QUIRE_UPADD CX, 1CMP CX, 50JBE SU_SHOW2MOV CX, 50SU_SHOW2: CALL SHOW_NUMLEDCMP CX, 50JGE SU_ENDMOV AH, 01HINT 16HPOP AXJNZ SU_ENDJMP SU_DO2SU_CMP3:CMP CX,90 ;看当前方位是不是3档JA SU_ENDSU_DO3:PUSH AXCALL SPEED_FRE1CALL QUIRE_UPADD CX, 1CMP CX, 90JBE SU_SHOW3MOV CX,90SU_SHOW3: CALL SHOW_NUMLEDCMP CX, 90JGE SU_ENDMOV AH, 01HINT 16HPOP AXJNZ SU_ENDJMP SU_DO3SU_END:POP DXPOP AXRETSLOW_UP ENDP慢刹车模块,步进为1(急刹车类似)SLOW_DOWN PROC NEARPUSH AXPUSH DXLEA DX,INFOR91 ;显示系统进入慢刹车状态MOV AH,09HINT 21HSD_REPEAT:MOV DX, MY8255_C ;控制慢刹车的指示灯亮 MOV AL, 0F7HOUT DX, ALPUSH AXCALL SPEED_FRE1CALL QUIRE_UPCMP CX,0JZ SD_ENDSUB CX, 1CALL SHOW_NUMLEDMOV AH, 01H ;判断是否有键输入INT 16HPOP AXJNZ SD_ENDJMP SD_REPEATSD_END:POP DXPOP AXRETSLOW_DOWN ENDP数码管显示程序SHOW_NUMLED PROC NEARPUSH AXPUSH BXPUSH CXPUSH DX MOV AX, CX ;CX 代表速度 MOV BL, 10 DIV BL ;AX/BX 商-AL,余数-AHPUSH AXLEA BX, NUMLEDXLATPUSH AXMOV DX, MY8255_MODE ;8255的控制寄存器地址MOV AL, 00001111B ;选中十位数码管 OUT DX, ALMOV DX, MY8255_MODEMOV AL, 00001100B OUT DX, ALPOP AXMOV DX, MY8255_AOUT DX, ALCALL DELAY ;显示十位MOV DX, MY8255_MODEMOV AL, 00001101B ;选中个位数码管OUT DX, ALMOV DX, MY8255_MODEMOV AL, 00001110B OUT DX, ALPOP AXMOV DX, MY8255_AMOV AL, AHXLATOUT DX, AL ;显示个位CALL DELAYPOP DXPOP CXPOP BXPOP AXRETSHOW_NUMLED ENDP四、 系统调试1、 软件调试过程说明基本输入输出:(a)这个基本的程序没出现什么问题,验证时就是实验箱坏了,然后换了一个程序就好了。(b)流水灯设计:这个程序是一个模块一个模块写的,出现的第一个问题是程序只能运行一次,是因为没写循环;第二个问题是从中间到两边和从两边到中间有一个左移和右移写反了;第三个问题是JOOP C1怎么都运行不对,就改成了DEC CX JNZ C1 就好了;第四个问题是每个模块运行都可以但是合在一块就不行了,寄存器混用没保存好导致结果错误。(c)数码管设计:出现的第一个问题是第一个灯对应00000001(1),第二个灯对应00000010(2),第三个灯对应00000100(4),第四个灯对应00001000(8)等等,跟后面调用数码管显示对应不上,所以数码管显示乱码。改为比较1的位置,在第一位就给AL赋值为1,第二位就给AL赋值为2,第三位就给AL赋值为3等以此类推;第二个问题是查询数码管显示对应数字的表时没有加偏移地址所以查不对,加上偏移地址后就可以了;第三个问题是数码管显示不正确原因是前面没有加延时,加了延时之后就显示正确了。(d)汽车系统调试过程:本次实习的汽车系统程序是各个模块进行编程,每编出一个程序,就进行调试,保证现有程序编译无错误。调试过程中出现了一下问题: 加速模块中要得到汽车系统目前的速度,刚开始有IN AL DX.而此时8255的A端口是输出,不能读入,所以后来改为由目前的速度来判断此时处于几档,速度存在CX中。软件与箱子连接后,数码管显示只有个位,经汇编软件一步一步调试时查出是数码管显示模块中的十位片选写的有问题,开始是从8255的C端口得到片选信号,后来改为从8255的控制端得到。以上几个问题调好后,箱子的数码管显示正确了,但十位显示的时间超短,又是就看不出显示过,然后更改了延时模块,可是,改后档位的速度显示一直跳动,不稳定。找老师帮忙,老师给了几个关于软件和硬件的建议。但对我们来说实行起来有些困难,经过一天试验,我们找到了一个相对来说较完美的延时,最后显示还算满意。(e)总结软件设计:我们设计的电路板和实验箱刚好相反,实验像是开关为1灯亮,而电路板却是开关为0时灯亮,开关为1时灯灭,所以到最后在电路板上调试时就得把程序中的0改为1,1改为0,还有其他该改的要改正,思路一样只要改开关那块就好。2、硬件调试过程说明焊接完电路板,然后便进行基本实验的测试,电路板的地线和电源线连接到了一起,可是那么多的连线到底是那个连在了一起呢,我们用肉眼看了看没有一个是连在一起的,我们也无法用万用表来测,我就看着那边尽管看起来没有连在一起,但是有点近,我便将其断开从新连接,终于好了,原来有时候我们是不能相信我们的肉眼的 3、 系统联调过程说明1、电路板得布线一定要尽量的避免两条线叠在一起,我们也是尽量避免,但是还是有线叠在了一起,以前我们没有给复位端口接地,后来补上,就将其叠在了另一条线上,就是这个不起眼的地方,又给我们造成了短路,让我们找了好久,没有找到,因为在焊接的时候不小心将其外面的表皮给弄透了却没有发现,导致芯片一会就很烫。2、现在的电路一切都看起来很完美,有时会出现结果,但是这个结构一点也不稳定,我们以为是芯片的接触不好,但是所有的地方都是接通的,我们测试了每个管脚都是接通的,然后我们就用箱子上的芯片,用我们板子上的开关和等,结果都是完美的,我们很坚定的是芯片问题,但是就是很郁闷不知道什么问题,我们又用我们的芯片,用实验箱的灯和开关,然后打开程序的调试程序,发现开关的那个端口就没有变化,原来就没有数据读进去,我们便测量B端口的每个管脚,每个都很好,顿时我们不知道出现了什么问题,突然我想到我们以前做实验的时候,焊接电路板,漏焊会使数据的传输受很大的影响,我便看每个管脚的焊接情况,突然发现读信号RD哪里接触不好,等从新焊接之后才发现原来真的好了,实验都完成了,3、搭档们说多测试几遍,可是不知道为什么,他又给坏了,有个灯一直亮,我们怎么找也找不到问题,最后老师来才给我们找到,原来使我们那个二极管的线留的太长和别处给串联了五、 设计总结1、 设计完成程度说明前三个实验完满的完成了实验要求,最后一个汽车速度控制系统只实现了键盘输入的控制,即1,2,3控制一档,二档,三档,A,B,C,D控制慢加速,急加速,慢刹车,急刹车,ESC键控制紧急刹车,而没有实现拨动开关的控制,因为这两个功能要在分别编写程序,所以没有做那个,只是硬件做了设计,作为更高的扩展要求。2、 设计总结通过整整两个星期的课程设计,在实践中我们不断地摸索、学习和编程,查资料,最后终于把三个微机原理与接口技术课程设计完成了。我们选择了汽车速度控制系统,因为觉得这个不是很难但也具有一定的挑战性,在设想,实现,调试的过程中,使我们学到了很多东西,以前很多模糊的地方这次都弄懂了,只要有不懂的就去问老师,不像以前那样羞答答了,我们对硬件知识以及汇编语言的编程能力也有所提高。通过这次实践活动我们明白了,没有量的积累是不可能有质的飞越的,往往理论的东西只有经过实践验证后才更能深记在心中,这也是学习编程,学习一门技术的最佳方法。所以不管做任何课程设计我都以认真的态度去对待,不抄袭,不走捷径,一步一个脚印的踏实完成,真正到达学以致用的目的。虽然我所设计的东西不够完美,但是最重要的是我掌握了对接口电路应用设计的一整套方法和过程,我想这便是我这两周课程设计以来最大的收获。还有就是做东西的时候不能太相信自己的感觉,什么我们都要用理论去说话,尽管这次的实验改来改去,挺曲折的,但是我觉得很成功,我们也都学到了很多的东西。附录一、PC人机交互界面如下所示:附录二:完整电路原理图附录三:完整程序代码(含详细注释) 1、8255基本输入输出 ;-; 程序说明;实现功能:通过8255A(方式0)实现开关对发光二极管的控制;按任意键时,程序退回DOS;-;开关推为0二极管亮,为1二极管灭IOY3 EQU0DCC0H ;片选IOY3对应的端口始地址MY8255_A EQU0DCC0H ;8255的A口地址MY8255_B EQU0DCC4H ;8255的B口地址MY8255_C EQU 0DCC8H ;8255的C口地址MY8255_MODE EQU 0DCCCH ;8255的控制寄存器地址CODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODE ;定义控制器端口地址 MOV AL,10000010B ;定义方式字。方式0、A口输出(接发光管D0-D7);B口输入(接开关) OUT DX,AL ;送方式字LOOP1:MOV DX,MY8255_B ;定义B口地址 IN AL,DX ;读B口数据 MOV DX,MY8255_A ;定义A口地址 OUT DX,AL ;将读到的B口数据送往A口 MOV AH,11 ;调用DOS的11号功能,判断是否有按键按下 INT 21H CMP AL,0 ;如果没按键则功能调用返回值AL=0,所以将AL和0比较一下 JE LOOP1 ;相等则循环,反之退出 MOV AH,4CH ;退回到DOS INT 21HCODE ENDSEND START2、 流水灯设计实现: ;-; 程序说明;实现功能:通过8255A(方式0)拨动开关实现流水灯;按任意键时,程序退回DOS;-;开关推为0二极管亮,为1二极管灭IOY3 EQU0DCC0H ;片选IOY3对应的端口始地址MY8255_AEQU0DCC0H ;8255的A口地址MY8255_B EQU0DCC4H ;8255的B口地址MY8255_C EQU 0DCC8H ;8255的C口地址MY8255_MODE EQU 0DCCCH ;8255的控制寄存器地址CODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODE;接IOY3 MOV AL,10000010B;方式0 A口输出(接发光二极管),B口输入(接开关) OUT DX,AL CALL DELAY K: MOV DX,MY8255_B IN AL,DX ;将B口数据输入 MOV BL,AL CMP BL,01111111B;PB7口是否有数据输入 JE A1 CMP BL,10111111B ;PB6口是否有数据输入 JE A2 CMP BL,11011111B;PB5口是否有数据输入 JE A3 CMP BL,11101111B;PB4口是否有数据输入 JE A4 CALL BREAK JMP K A1: CALL FZ1 ;初值赋为11111110B CALL DELAY MOV CX,08H C1: ROL BH,1 ;循环左移 CALL OUTPUT ;按PB7键从右向左依次亮灯 CALL DELAY DEC CX JNZ C1 CALL BREAK JMP K A2: CALL FZ1 ;初值赋为11111110B CALL DELAY MOV CX,08H C2: ROR BH,01H ;循环右移 CALL OUTPUT ;按PB6键从左向右依次亮灯 CALL DELAY DEC CX JNZ C2 CALL BREAK JMP K A3: CALL FZ3 ;初值赋为11100111B CALL DELAY ;按PB5键从中间到两边 MOV CX,04H C3: PUSH DX PUSH CX MOV DL,BH OR DL,0FH ;取高4位 ROL DL,1 ;循环左移,左侧的灯亮 MOV DH,BH OR DH,0F0H ;取低4位 ROR DH,1 ;循环右移,右侧的灯亮 AND DL,DH ;加和后看到两盏灯同时亮 MOV BH,DL POP CX POP DX CALL OUTPUT ;输出结果两盏灯同时发光 CALL DELAY DEC CX JNZ C3 CALL BREAK JMP K A4: CALL FZ2 ;初值赋为01111110B CALL DELAY ;按PB4键从两边到中间 MOV CX,04H C4: PUSH DX PUSH CX MOV DL,BH OR DL,0FH ;取高4位 ROR DL,1 ;循环右移,右侧的灯亮 MOV DH,BH OR DH,0F0H ;取低4位 ROL DH,1 ;循环左移,左侧的灯亮 AND DL,DH ;加和后两盏灯同时亮 MOV BH,DL POP CX POP DX CALL OUTPUT ;输出结果两盏灯同时发光 CALL DELAY DEC CX JNZ C4 CALL BREAK JMP K;*;对A口赋值11111110,并将值保存在BH FZ1 PROC NEAR MOV DX,MY8255_A MOV AL,0FEH MOV BH,AL OUT DX,AL RET FZ1 ENDP ;*;*;对A口赋值01111110,并将值保存在BHFZ2 PROC NEAR MOV DX,MY8255_A MOV AL,7EH MOV BH,AL OUT DX,AL RET FZ2 ENDP ;*;*;对A口赋值11100111,并将值保存在BHFZ3 PROC NEAR MOV DX,MY8255_A MOV AL,0E7H MOV BH,AL OUT DX,AL RET FZ3 ENDP ;*;*;将移位结果输出OUTPUT PROC NEAR MOV DX,MY8255_A MOV AL,BH OUT DX,AL RETOUTPUT ENDP;*;*;软件延时程序 DELAY PROC NEAR PUSH CX PUSH BX MOV CX,0FFFFHDELAY1:MOV BX,0FFFH X: DEC BX CMP BX,0 JNZ XLOOP DELAY1 POP BX POP CX RETDELAY ENDP;*;*;按任意键退出 BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21HRETURN:RETBREAK ENDP;*CODE ENDSEND START3、数码管应用;-; 程序说明;实现功能:通过8255A(方式0)实现开关对数码管(共阳型)的控制;按任意键时,程序退回DOS;-;*;开关推为0二极管亮,为1二极管灭IOY3 EQU0DCC0H ;片选IOY3对应的端口始地址MY8255_AEQU0DCC0H;8255的A口地址MY8255_B EQU0DCC4H ;8255的B口地址MY8255_C EQU 0DCC8H ;8255的C口地址MY8255_MODE EQU 0DCCCH ;8255的控制寄存器地址;*;*DATA SEGMENTLEDDB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ; 1 2 3 4 5 6 7 8DATA ENDS ;*;*CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;定义控制器端口地址 MOV AL,10000010B ;定义方式字。方式0、A口输出(接发光二极管)、C口输出(接数码管);B口输入(接开关) OUT DX,AL ;送方式字 CALL ZERO ;数码管初始显示为0 CALL DELAY LOOP1: MOV DX,MY8255_B ;定义B口地址 IN AL,DX ;读B口数据 MOV DX, MY8255_A OUT DX, AL ;将B口的数据从A口输出 MOV BL,AL CALL ONE ;计算一共波动几个开关 CMP BH,08H ;判断是不是没有波动开关 JNE CMPA CALL ZERO ;若没有拨动开关,数码管显示为0 JMP BRE CMPA: CMP BH,07H ;判断是否只波动了一个开关 JNE LOOP4 ;若不是显示字符ELOOP3: CALL COMO ;计算波动的是第几个开关 MOV BX,OFFSET LED ;BX为数码表的起始地址 XOR AH,AH MOV SI,AX MOV CL,BX+SI-1 ;根据偏移量找到相应的字符 MOV AL,CL MOV DX,MY8255_C ;定义C口地址 OUT DX,AL ;将数据从C口输出 CALL DELAY JMP BRELOOP4: MOV DX,MY8255_C ;输出显示字符E MOV AL,86H OUT DX,AL CALL DELAY JMP BRE BRE: CALL BREAK JMP LOOP1;*;输出显示字符0 ZERO PROC NEAR PUSH AX MOV DX,MY8255_C MOV AL,0C0H OUT DX,AL POP AX RETZERO ENDP;*;* ;统计1的个数保存在CH中 ONE PROC NEAR XOR BH,BH MOV CL,08HLOOP2:SHL BL,01H ADC BH,00H ;加CF LOOP LOOP2 RETONE ENDP;*;*;计算波动的是第几个开关COMO PROC NEAR MOV AH,11111110B MOV CL,00HLOOPA: INC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版室内设计师离职保密及客户信息保护合同
- 2025年二手房交易定金及房屋维修基金缴纳协议
- 2025版桩基工程劳务分包与施工进度控制合同
- 2025年防水施工质量检测与分包合同
- 2025第二行政小区居民楼道清洁与安全巡查合同
- 海南省临高县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版高端住宅售房协议范本及细则
- 2025版商业物业服务与绿色建筑认证合同
- 贵州省织金县2025年上半年公开招聘城市协管员试题含答案分析
- 2025电商运营入职合同范本:试用期规定及转正流程
- 全陪导游工作流程
- 2025年心理辅导:声音疗愈《听听声音》课件设计
- 2025年七年级上册生物知识点总结样本(2篇)
- 变化与更新-2025中国家居家装行业发展研究报告-树懒生活fine-202501
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
- 《柴油机的维护保养》课件
- 4S店企业职业卫生培训
- 石油化工设备维护与检修手册
- 拆迁工程成本控制方案
- 原发性肝癌的CT表现和诊疗
- 竞选竞选大学心理委员参考课件
评论
0/150
提交评论