首页 位微机原理实验西工大

位微机原理实验西工大

举报
开通vip

位微机原理实验西工大微机原理实验课内蒙古民族大学物理与电子信息学院实验教学中心可编辑pptMASM使用简要说明程序设计者完成在纸上的程序编写工作还无法确定程序是否正确,因此下一步就是要对程序进行测试和调试,使它能正确运行。为了方便和有效的进行调试常常借助一些软件开发工具。使用这些软件开发工具,对一个汇编语言程序的开发全过程如下图所示:程序正确?可编辑ppt进入方法开始/程序/附件/c:命令提示符C:>e:E:>cdmasm5E:>masm5>edit文件存储时一定要用.asm为扩展名E:>masm5>masmE:>masm5>link...

位微机原理实验西工大
微机原理实验课内蒙古民族大学物理与电子信息学院实验教学中心可编辑 ppt 关于艾滋病ppt课件精益管理ppt下载地图下载ppt可编辑假如ppt教学课件下载triz基础知识ppt MASM使用简要说明程序设计者完成在纸上的程序编写工作还无法确定程序是否正确,因此下一步就是要对程序进行测试和调试,使它能正确运行。为了方便和有效的进行调试常常借助一些软件开发工具。使用这些软件开发工具,对一个汇编语言程序的开发全过程如下图所示:程序正确?可编辑ppt进入方法开始/程序/附件/c:命令提示符C:>e:E:>cdmasm5E:>masm5>edit文件存储时一定要用.asm为扩展名E:>masm5>masmE:>masm5>link连接结束以后即可使用debug命令可编辑pptDEBUG的使用方法进入与退出:出现提示符”-”直接输入DEBUG进入,退出则输入Q显示命令:显示内存单元 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 ---D命令显示寄存器内容---R命令显示源程序指令(反汇编)---U命令程序运行:连续运行方式---G命令跟踪运行方式---T命令◆◆◆可编辑ppt软件实验部分本部分共进行6次实验,实验内容如下:1实验一BCD码的运算2实验二循环结构程序3实验三排序程序4实验四分支程序5实验五数据区移动6实验六找“零”个数可编辑ppt实验一BCD码的运算一.实验目的1.熟悉在MASM集成环境下建立、汇编、链接、调试和运行汇编语言程序的全过程。2.掌握汇编语言程序结构中数据段、堆栈段、代码段定义及内存分配方法。3.学会DEBUG调试程序主要命令的使用方法。4.掌握用组合BCD码 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示数据的方法,并熟悉其加、减、乘、除运算。二.实验内容1.多位十进制数加法。2.两位十进制数乘法。三.实验要求1.多位十进制数加法:在内存中以DATA1和DATA2为首址,各分配5个字节单元,分别存入两个8位组合BCD码数据(低位在前),将两数相加,结果送回到DATA2处。2.两位十进制数乘法:将被乘数和乘数以组合BCD码形式分别存放于DATA1和DATA2定义的节单元中,经乘法运算,乘积存入DATA3定义的两个内存单元中。3.用DEBUG调试程序、查看运算结果,进行手工验证;并且用DEBUG修改数据,重新执行。可编辑pptBCD码用4位二进制编码表示一个十进制数,又称二—十进制数,由于这四位二进制数的权值为8421,故也称BCD码为8421码。在计算机里,用一个字节的低四位表示一位十进制数—非组合BCD码;用一个字节表示两位十进制数—组合BCD。非组合BCD码uuuu1001例:计算机里79d非组合BCD码:uuuu0111uuuu1001组合BCD码01111001例:计算机里79d组合BCD码:01111001在计算机里,所有的运算都是按二进制进行的,运算结果是二进制数(即十六进制数)为了把十六进制运算结果转换成十进制,汇编语言中引进了组合BCD码加法调整指令DAA和减法调整指令DAS。DAA加法十进制调整指令ALAL中的十六进制数转为BCD形式该指令之前要执行ADD或ADC。调整方法:若AF=1,或AL中的低四位是十六进制的A~F,则AL内容加06h,AF置1;若CF为1,或AL中的高四位是十六进制的A~F,则AL内容加60h,CF置1可编辑ppt多位十进制数加法.modelsmall.datadata1db11h,22h,33h,44h,00hdata2db99h,88h,77h,66h,00h.codestartupmovsi,offsetdata1;设指针movdi,offsetdata2clc;清进位movcx,5;设加法次数lop:moval,[si];取第一加数adcal,[di];取第二加数daa;十进制调整mov[di],al;结果存入指定单元incsi;指针加1incdilooplop;循环.exit流程图:开始清进位设加法次数十进制调整;部分和回送指向下单元数ALAL+第二加数CX-1=0?结束YN可编辑ppt两位十进制数乘法.modelsmall.datadata1db34hdata2db56hdata3dw1dup(?).code.startupmovbl,data1;第一乘数转换成16进制数movbh,blandbh,0fhandbl,0f0hmovcL,4shrbl,cLmoval,10mulbladdal,bhmovzxcx,al;置加法次数计数器movbl,data2;第二乘数做BCD加法,加第一乘数次movax,0clclop:addal,bldaaxchgah,aladcal,0daaxchgah,allooplopmovdata3,ax;积送乘积存储单元nopnopnop.exitend可编辑ppt两位十进制数乘法流程图:开始分离出第一乘数的“个位”分离出第一乘数的“十位”第一乘数的“十位”移到“个位”后,再乘10合成得到16进制的第一乘数BCD码转换成16进制数11清进位第二乘数做加法次数十进制调整AL与AH内容交换AL与AH内容交换十进制调整CX-1=0?NY存储结果结束可编辑ppt一、实验目的掌握循环结构程序的设计、调试。二、实验内容1.多字节无符号数加法。2.设计一软件延时器,并在屏幕上显示软件延时倒计时过程。三、实验要求1.多字节无符号加法:在DATAS中存放10个双字节无符号数,用循环结构设计程序,通过程序运算,把这10个双字节无符号数相加,其和存入紧邻加数之后的四个单元中。2.软件延时器:做一延时约1秒的软件延时器,在屏幕上按9、8、…0顺序显示软件延时倒计时过程。实验二循环结构程序可编辑ppt有关问题的说明循环程序的三个组成部分:⑴循环初始状态设置。设置循环次数、为循环体正常工作建立初始状态等。⑵循环体。循环工作的主体,包含循环的工作部分和修改部分。循环的工作部分是为完成程序功能而设计的程序段;循环的修改部分是为保证每一次重复时,参加执行的信息能发生有规律的变化而建立的程序段。⑶循环控制部分。选择一个循环控制条件来控制循环的运行和结束。循环程序的结构:循环初始状态循环控制条件循环体YN循环初始状态循环体循环控制条件YNDO-WHILE结构DO-UNTIL结构可编辑ppt子程序结构:procedurenamePROCAttributeRETprocedurenameENDPAttribute…NEAR调用程序和过程在同一个代码段中FAR调用程序和过程不在同一个代码段中系统功能调用:系统功能调用是DOS为方便汇编语言编写而提供的一组约80个功能调用的常用子程序,它分为设备管理、文件管理和目录管理等几类。DOS规定用软中断指令INT21H进入各功能调用子程序的总入口,再为每个功能调用规定一个功能号,以便进入相应各自子程序的入口。系统功能调用的使用方法:可编辑pptEX1:从键盘输入单字符MOVAH,01H;1号功能调用INT21H将键盘输入字符的ASCII码送到AL。EX2:从键盘输入字符串BUFDB10DUP(?)LEADX,BUFMOVAH,0AH;0A号功能调用INT21H将键盘输入的字符串写到RAM中去,击回车键表示字符串结束。字符数与予留空间的关系为:少补零多丢失。EX3:输出单字符MOVDL,’M’MOVAH,02H;2号功能调用INT21H将DL中字符从屏幕上显示出来。EX4:输出字符串BUFDB‘Thankyou$’MOVDX,OFFSETBUFMOVAH,09H;9号功能调用INT21H将指定RAM缓冲区中的字符串从屏幕上显示出来。‘$’为字符串结束符。EX5:直接控制台输入/输出单字符MOVDL,0FFH;DL=0FFH时,MOVAH,06H;6号功能调用INT21H;将键盘输入字符送到AL中。MOVDL,’M’;DL≠0FFH时,MOVAH,06H;6号功能调用INT21H;将DL中字符送到屏幕上显示。…………可编辑ppt多字节无符号数加法.MODELSMALL.586.DATADATASDW1111H,2222H,3333H,4444H,5555HDW6666H,7777H,8888H,9999H,0AAAAHRESULTDD1DUP(?).CODE.STARTUPMOVSI,OFFSETDATAS;设指针MOVCX,10;累加次数MOVEAX,0;清累加器CLC;清进位LOP:MOVBX,[SI];取加数到BXMOVZXEBX,BX;将BX扩展成32位ADCEAX,EBX;带进位加INCSI;改指针INCSILOOPLOP;循环加MOVRESULT,EAX;存结果.EXITEND开始清进位将BX扩展为32位SI指向下一加数CX-1=0?NY存结果结束可编辑ppt软件延时器.modelsmall.datadatadb20h,20h,20h,20h,20h,39h,0dh,'$'.code.startupmovcx,09h;设循环次数lop:movah,09h;显示功能调用leadx,dataint21hcallnearptrdelay;调用延时子程序decdata+5;修改显示数字looplop.exitDelayprocnearusescx;延时子程序movbx,06ffh;设第二时常数Delay1:movcx,0hloop$;自身循环CX次decbx;第二时常数减1jnzdelay1;不为零循环retDelayendpend开始字符串显示功能调用延时子程序调用显示数字修改CX-1=0?NY结束主程序流程:延时子程序流程:可编辑ppt实验三排序程序一.实验目的1.学习无符号数比较大小指令;2.掌握多重循环编程方法;3.掌握汇编语言编写排序程序的思路和方法。二.实验内容1.单字节无符号数排序。2.去极值滤波。三.实验要求1.单字节无符号数排序:DATANUM单元开始存放双字节无符号数,表示要排序数据的个数,DATAS单元开始存放要排序的数据,数据个数至少10个,程序运行之后,这些数据按照由小到大的顺序仍然存放于DATAS单元开始的位置。2.去极值滤波:某控制系统为了抗干扰,采用去极值滤波法处理采集数据,取连续6个A/D采样值(12位——双字节,低12位),要求去掉最大值和最小值,将余下4个数求平均值,用该平均值代表当前时刻系统状态的真值。试编一程序完成这个滤波过程。可编辑ppt单字节无符号数排序流程图:开始数据指针SI置0前数与后数比较前数﹥后数前、后数交换数据指针SI指向下一数数据指针SI指向下一数YNBL-1CX-1=0?CX-1=0?NNYYZF=1?N结束Y可编辑ppt.modelsmall.586.datadatanumdb10datasdb21h,13h,4h,5h,7hdb6h,8h,20h,9h,11h.code.startupmovbl,datanumdecbllop0:movzxcx,blmovsi,0lop:moval,datas[si]cmpal,datas[si+1]jajhincsilooplopjmpnextjh:xchgal,datas[si+1]movdatas[si],alincsilooplopnext:decbljzfinishjmplop0finish:nop.exitend可编辑ppt去极值滤波可编辑ppt.modelsmall.586.datadatanumdb6datasdw0123h,0abch,0234hdw0345h,0456h,0567h.code.startupcallpx;排序movsi,offsetdatas+2;掐头去尾送指针movcx,4;送累加次数clc;清进位movax,0;取首数qh:adcax,[si];累加incsiincsiloopqhshrax,2;除4mov[datas],ax;存结果到DATAS首位.exitpxprocnearmovbl,datanum;取字长decbllop0:movzxcx,bl;送比较次数movsi,0lop:movax,datas[si];送前数cmpax,datas[si+2];与后数比较jajh;前大于后,转交换incsiincsi;指针加1looplop;循环比较jmpnext;一轮排序完jh:xchgax,datas[si+2];交换movdatas[si],axincsiincsilooplopnext:decbl;修改比较次数jzfinishjmplop0finish:nop;结束retpxendpend可编辑ppt实验四分支程序一、实验目的掌握分支程序编程方法,复杂分支程序的查表法等。二、实验内容1、学生课程成绩分段统计。2、键盘及屏幕显示功能调用。三、实验要求1、学生课程成绩分段统计:用单字节表示每个学生的学号,学生的课程成绩用两位十进制数表示(最低0分,最高99分),规定0F0H表示作弊,0F1H表示缺考,0FFH为一组学生成绩的结束符。学生成绩在内存的存放形式为“学号,成绩”,每个学生占两个字节,从内存SCORE为首址开始存放。要求学生人数不少于10个,试编程序,按0~9、10~19、20~29、……、80~89、90~99及作弊、缺考等12种情况把学生的课程成绩进行分段统计,将统计结果存入以COUNT为首址的12个单元中。2、试编一程序扫描键盘,当B键按下时,在屏幕上显示0~9循环计数;S键按下时停止计数;再按B键继续计数过程。E键按下时退出程序。3、用DEBUG调试程序预置数据和查看程序运行结果,以验证程序正确性。可编辑ppt学生课程成绩分段统计开始设置学号、成绩指针取学号取成绩是结束标志?取十分位,并将十分值扩展为16位送DI,对DI所指统计区段统计值加1是作弊?是缺考?修改指针CX-1=0?作弊统计区段统计值加1缺考统计区段统计值加1结束YYYYNNNN可编辑ppt.modelsmall.586.datascoredb1,10h,2,20h,3,30h,4,40h,5,50h,6,77h,7,70hdb8,80h,9,90h,10h,08,11h,0f0h,12h,0f1h,0ffhcountdb12dup(?).code.startupmovcx,20;送统计上限movsi,0;SCORE统计指针statistic:moval,score[si];取学号cmpal,0ffh;判是否为结束jesta_end;转统计结束movbl,score[si+1];取成绩cmpbl,0f0h;是否作弊jefake;是,转作弊处理cmpbl,0f1h;是否缺考jemiss;是,转缺考处理shrbl,4;取十分位movzxdi,bl;将十分值扩展为16位送DIinccount[di];相应区段统计值加1down:incsi;改指针incsiloopstatistic;循环sta_end:nop;结束.exitfake:movdi,10;作弊处理inccount[di]jmpdownmiss:movdi,11;缺考处理inccount[di]jmpdownend可编辑ppt键盘及屏幕显示功能调用开始显示提示信息置处理指针为“停止”调延时、键盘扫描程序有键动?转处理指针处B键?S键?E键?转处理指针处结束置处理指针为“计数”置处理指针为“停止”NYYYYNNN处理指针为“计数”处理指针为“停止”计数显示可编辑ppt延时、键盘扫描程序子程序定义CX-1=0?NY监测键动有键动?做键动标志BX=1NY可编辑ppt.modelsmall.dataMess1db'pressbbutton---count',0dh,0ahmess2db'presssbutton---stop',0dh,0ahMess3db'pressebutton---exit',0dh,0ah,'$'countdb20h,20h,20h,20h,20h,30h,0dh,'$'.code.startupmovah,09h;显示提示信息movdx,offsetmess1int21hmovsi,stop;设处理指针scan:callnearptrdelay;调延时、键扫程序orbx,bx;判有无键动jnzscan1;有键动,转键处理jmpsi;无键动,转当前处理程序scan1:cmpal,'b‘;键处理程序jeb_proccmpal,'s'jes_proccmpal,'e'jee_proccalldelayjmpsib_proc:movsi,count_;B键处理jmpscans_proc:movsi,stop;S键处理jmpscane_proc:nop;E键处理nop.exitcount_:inccount+5;修改显示数字moval,3ah;比较超限cmpal,count+5jadown;若不超限,调显示movcount+5,30h;超限,设启始值down:movah,09h;显示功能调用leadx,countint21hjmpscanstop:jmpscannopDelayprocnearusescx;延时子程序movbx,380h;设第二时常数delay1:movcx,0hloop$;自身循环CX次movdl,0ffh;监测键动movah,06hint21hjnzkey_ret;若有键动,延时终止,转键处理decbx;第二时常数减1jnzdelay1;不为零循环jmpdelay_retkey_ret:movbx,1;做键动标志delay_ret:retDelayendpend可编辑ppt实验五数据区移动一.实验目的掌握RAM中的数据操作。二.实验内容把4100H源RAM区首址内的16字节数据传送到4200H目标RAM区。三.实验步骤调试运行该程序,检查4100~410FH中内容是否与4200~420FH中内容完全一致。可编辑ppt实验六找“零”个数一.实验目的熟悉汇编语言编程,掌握串操作指令的使用。二.实验内容在4000H~400FH中查出有几个字节是零,把计数个数放在4100H中。可编辑ppt硬件实验部分本部分共进行3次实验,实验内容如下:1实验七并行接口技术实验2实验八8254定时/计数器实验3实验九A/D转换实验(下面根据实验台实物介绍实验台)可编辑ppt特别说明:为了方便实验,实验台设计时已将实验用相关器件的地址线、数据总线及除片选(CS)外的控制线连接到位,并在每一个实验电路附近予留有若干信号连线插孔(或插针排)。实验时只要将相应插孔用单股导线(或相应插针排用扁平电缆)对应相连即可组成完整的实验电路。在给出的实验电路图中,线路所带小圆圈即表示连线插孔。各芯片的片选(CS)可用单股导线连接,也可通过将8位铅笔开关的对应位置ON连接。硬件实验注意事项:1.在实验台断电条件下,才能用单股导线(或扁平电缆)连接电路;2.线路连接完成、检查确认没有错误后,再开通实验台电源;3.用单股导线连接电路时,要将单股导线线头整直,并确认线头没有断裂;4.实验完成后,关断实验台电源,再抓住导线(或扁平电缆)的根部,一根一根垂直拔掉连接导线(或扁平电缆),并把连接导线、电缆整好放入线盒。可编辑ppt实验七并行接口技术实验一.实验目的1.掌握8255A并行接口的基本使用方法。2.理解数码管扫描显示原理,学习数码管扫描显示方法。二.实验内容1.用8255A作为并行接口,从8255A的一个端口输入开关量到CPU或内存,再将这一数据通过数据总线和8255A的另一个端口扫描输出到数码管。设8255A的A口为输入方式,接逻辑电平开关;8255A的B口为输出方式,通过MC1413驱动器接数码管的位选端;数码管的字划端通过74HC573与数据总线相连;逻辑电平开关K1~K6按1~6编号。试编一程序,用一位数码管指示出逻辑电平开关为“0”状态的开关编号,即当1号逻辑电平开关为“0”时,所选数码管显示“1”,2号逻辑电平开关为“0”时,数码管显示“2”,…,6号逻辑电平开关为“0”时,数码管显示“6”。2.设8255A的B口为输出方式,通过MC1413驱动器接数码管的位选端;数码管的字划端通过74HC573与数据总线相连。试编一动态扫描程序,让6个数码管“同时”点亮,显示“1、2、3、4、5、6”。三.实验电路及设计1.实验电路图可编辑ppt可编辑ppt可编辑ppt可编辑ppt2.实验连线(1)逻辑电平开关输出孔K1~K6对应连接到8255A的PA0~PA5;(2)8255A的PB0~PB5对应连接到数码管的位选端SM0~SM5;(3)数据总线D0、D1、D2、D3、D4、D5、D6、D7对应连接到数码管的字划端a、b、c、d、e、f、g、dp;(4)8255A的片选端CS8255连到译码控制单元的CS1(E200H);(5)74HC573的使能端SMGLT连到译码控制单元的SMGLT(E220H)。3.8255A的端口地址PA口:E200H,PB口:E201H,PC口:E202H,控制寄存器:E203H。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”-71H可编辑ppt有关问题的说明数码管(共阴):ABCDEFGDPABCDEFGDP共阴地KK不闭合,数码管就点不亮数字DPGFEDCBA字型码0001111113FH10000011006H2010110115BH……可编辑ppt多个数码管扫描显示:可编辑ppt多个数码管扫描显示:限流电阻锁存器JM3、JM2、JM1谁为‘1’,谁连接的数码管就显示锁存器当前锁存的值所谓扫描显示是:对N个数码管:1.给锁存器送第1个数码管显示内容,而后第1个数码管公共端接低,延时2.给锁存器送第2个数码管显示内容,而后第2个数码管公共端接低,延时…N.给锁存器送第N个数码管显示内容,而后第N个数码管公共端接低,延时   第N步后,再从1开始,周而复始。那么,JM3、JM2、JM1是互斥的了!连接数据总线D7~D0驱动器可编辑ppt实验7.174HC573锁存器A口K6K5K4K3K2K1开关ABCDEFGDPA口可编辑ppt开始初始化8255点亮一位数码管读键盘有E键?读开关量,并取反位扫描,确定‘开关’号取对应‘开关’号的字型码输出对应的数字结束YN可编辑ppt;CS8255-------CS1;SMGLT--------SMGLT;k1...k6------PA0...PA5;SM0...SM5------PB0...PB5;D0...D7--------A.B....DP.modelsmall.586p8255equ0E200h;片选地址p_ctlequ90h;8255控制字s_l_aequ0E220h;573锁存地址.datatabledb3fh,06h,5bh,4fh,66h;0,1,2,3,4字型db6dh,7dh,07h,7fh,6fh;5,6,7,8,9.code.startupmovdx,p8255+3;8255初始化moval,p_ctloutdx,almovdx,p8255+1;点亮数码管SM0mov al,01h outdx,allop:movah,06h;键入“e”结束执行movdl,0ffhint21hcmpal,'e'jescan_endmovdx,p8255;读开关inal,dxnotalmovzxax,albsfbx,ax;从ax低位起扫描,将第一个;为1的位号存BXxchgal,blmovbx,offsettable;读字型码xlat;查表,[BX+AL]送ALmovdx,s_l_a;输出对应的数字outdx,aljmplop;循环扫描scan_end:.exitend可编辑ppt实验7.2限流电阻DbusD7…D08255MC1413驱动器B口DbusD7…D0SMGLTCS825574HC573锁存器ABCDEFGDP可编辑ppt开始初始化8255查表取显示数字字型码显示字型码送锁存器(输出)取对应数码管字位、并输出CL+1(下一扫描位置)扫描位数≥6?调延时读键盘有键动?结束NYYN延时程序流程见前可编辑ppt;CS8255-------CS1;SMGLT--------SMGLT;SM0...SM5------PB0...PB5;D0...D7--------A.B....DP; .modelsmallp8255equ0E200H ;片选地址p_ctlequ10010000B ;8255控制字s_l_aequ0E220H;573锁存地址.datatabledb3FH,06H,5BH,4FH,66H;0,1,2,3,4 db6DH,7DH,07H,7FH,6FH;5,6,7,8,9.code.startupmovdx,p8255+3  ;发控制字moval,p_ctloutdx,almovcl,1      ;设扫描位置lop:moval,cl  ;取显示数字movbx,offsettable  ;读字型码xlatmovdx,s_l_a  ;输出字型码outdx,almoval,10000000Brolal,cl   ;左循环移位 movdx,p8255+1outdx,al;送B口控制的数码管位incclcmpcl,6jbedown;若显示位置大于等于6,         ;返回启始位置1movcl,1down: calldelaymovah,06;判有键动,跳出循环movdl,0ffhint21hjnzscan_endjmplop;循环扫描scan_end:nop.exit可编辑pptdelayprocnearusescx;延时子程序movbx,02hdelay1:movcx,0hloop$decbxjnzdelay1retdelayendpend可编辑ppt实验八8254定时/计数器实验一.实验目的1.掌握8254定时/计数器的基本使用方法。2.了解8254定时/计数器利用级连扩大计数范围的方法。3.了解多I/O芯片协同工作的原理和方法。二.实验内容1.将8254定时器0设置为方式2(分频),定时器1设置为方式3(方波),定时器0的CLK0端接1M时钟,定时器0的输出脉冲作为定时器1的时钟输入。将定时器1的输出脉冲接在一个LED灯上或风鸣器上。编程使8254工作,观察灯的状态或风鸣器声响。2.用8254做秒信号源,用8255A控制交通灯的红绿变化,完成一交通灯控制系统,使每10秒切换一次通行方向。三.实验电路及设计1.实验电路图可编辑ppt可编辑ppt可编辑ppt可编辑ppt可编辑ppt可编辑ppt2.“实验内容1”实验连线(1)8254的GATE0、GATE1接高电平;(2)8254T0的CLK0接1M时钟孔;(3)8254T1的CLK1接T0的OUT0;(4)8254的片选端CS8254连到译码控制单元的CS2;(5)8254T1的OUT1接LED灯或风鸣器的输入端BJ孔。3.“实验内容2”实验连线以下连线假设8255A的A口为输入方式、B口为输出方式,8255A的PA1连接8254T1的OUT1,8255A的B口控制交通灯的八只LED灯。(1)连线同“实验内容1”的(1)~(4);(2)8254T1的OUT1接8255A的PA1孔;(3)8255A的PB7~PB0对应连接到交通灯的RW、GW、RN、GN、RE、GE、RS、GS;(4)8255A的片选端CS8255连到译码控制单元的CS1;可编辑ppt4.8254和8255A的端口地址8254的端口地址:定时器0分频系数寄存器0E204H,定时器1分频系数寄存器0E205H,定时器2分频系数寄存器0E206H,控制寄存器0E207H。8255A的端口地址:PA口:0E200H,PB口:0E201H,PC口:0E202H,控制寄存器:0E203H。可编辑ppt实验8.1可编辑ppt;cs8254----CS2;clk0---1M;out0-----CLK1;out1----BJ或L1;gate0---K1,令k1="1";gate1---K2,令k2="1".MODELSMALLCS8254EQU0E204HT0_CTLEQU00110100B;对T0两次读写,先低后           ;高。T0为方式2(分频)T1_CTLEQU01110110B;对T1两次读写,先低          ;后高。T1为方式3(方波).DATAT0_DATA DB 0FFH,040HT1_DATA DB 0FFH,0 .CODE .STARTUPMOVDX,CS8254+3;初始化T0MOVAL,T0_CTLOUTDX,ALMOVDX,CS8254 ;给T0低字节装计数初值MOVAL,T0_DATAOUTDX,ALMOVAL,T0_DATA+1;给T0高字节装计数初值OUTDX,ALMOVDX,CS8254+3 ;初始化T1MOVAL,T1_CTLOUTDX,ALMOVDX,CS8254+1MOVAL,T1_DATA ;给T1低字节装计数初值OUTDX,ALMOVAL,T1_DATA+1;给T1高字节装计数初值OUTDX,AL.EXITEND可编辑ppt实验8.2开始8254T0初始化给8254T0装初值8254T1初始化给8254T1装初值8255初始化为A口入、B口出8255B口输出方向初值读8255PA口、测试8255PA1PA1=0?读8255PA口、测试8255PA1PA1=1控制换向8255B口输出方向值检查键盘有键盘动?结束YYYNNNOUT1------PA1可编辑ppt;cs8254----CS2;clk0---1M;out0----clk1;out1----8255的PA1;gate0---k1,令k1="1";gate1---k2,令k2="1";JTDCS------k3,令k3="1";cs8255---CS1;8255(PB7...PB0)----(RW、GW、RN、GN、;RE、GE、RS、GS).MODELSMALLT8254EQU0E204HT0_CTLEQU00110100BT1_CTLEQU01110110Bp8255equ0E200H  ;片选地址p_ctlequ10010000B  ;8255控制字.DATAT0_DATADB0FFH,040HT1_DATADB0FFH,0dir_dataDB00111100B  .CODE.STARTUPMOVDX,T8254+3  ;8254T0初始化MOVAL,T0_CTLOUTDX,ALMOVDX,T8254;给8254T0装初值MOVAL,T0_DATAOUTDX,ALMOVAL,T0_DATA+1OUTDX,ALMOVDX,T8254+3;8254T1初始化MOVAL,T1_CTLOUTDX,ALMOVDX,T8254+1;给8254T1装初值MOVAL,T1_DATAOUTDX,ALMOVAL,T1_DATA+1OUTDX,AL可编辑ppt  movdx,p8255+3  ;8255为A口入,B口出moval,p_ctloutdx,almovdx,p8255+1 ;8255B口输出方向初值moval,dir_dataoutdx,albit_test0:;扫描上升沿movdx,p8255inal,dxtestal,2;测试8255PA1,等待PA1=0jzbit_test1 ;PA1=0转jmpbit_test0;PA1=1再测bit_test1:movdx,p8255inal,dxtestal,2 ;测试8255PA1,等待PA1=1jnzdir_ctl;有上升沿转jmpbit_test1;上升沿没到再测dir_ctl:  moval,dir_data;方向控制notal  ;换向movdir_data,almovdx,p8255+1;8255B口输出方向值outdx,alMOVDL,0FFHmovah,06h;检查键盘int21horal,al ;有键盘输入转jnzdir_endjmpbit_test0dir_end:.EXITEND可编辑ppt实验九A/D转换实验一.实验目的学习模/数转换器使用方法,理解模/数转换原理。二.实验内容1.给A/D转换器输入一可调节的电压信号,假设该输入信号为一水塔的水位高度信号,请结合应用8255A接口芯片,编程完成以下功能:当水位低于PL时开报警、并打开水泵(点亮一指示灯),水位在PL~PH之间时关闭报警,水位高于PH时开报警、并关闭水泵(指示灯熄灭)。设PH=0B4H(约3.5V),PL=66H(约2.0V)。2.用A/D转换器对电压信号Vdc连续采集4次,求出均值,放入指定单元;并把采集均值转换为电压,通过8255在数码管上显示。三.实验电路及设计1.实验电路图可编辑ppt可编辑ppt可编辑ppt可编辑ppt可编辑ppt可编辑ppt 2.“实验内容1”实验连线  以下连线假设8255A的A口为输出方式,8255A的PA6控制一LED灯、8255A的 PA7控制报警风鸣器。  (1)A/D转换单元的AD_S连接译码控制单元的AD_S(E228H~E22FH);  (2)A/D转换单元的AD_OE连接译码控制单元的AD_OE(E228H~E22FH);  (3)A/D转换器的IN0输入端连接到直流电压单元的Vdc孔。直流电压单元的旋钮WA顺时针旋转Vdc输出增大,逆时针旋转减小;  (4)8255A的片选端CS8255连到译码控制单元的CS1;  (5)8255A的PA6连接到逻辑电平指示单元的L3孔;  (6)8255A的PA7连接到BJ孔。 3.“实验内容2”实验连线   以下连线假设8255A的A口、B口均为输出方式,8255A的A口连接数码管的 字划端,8255A的B口连接数码管的位选端。(1)连线同“实验内容1”的(1)~(4);(2)8255A的PA7~PA0对应连接到A、B、C、D、E、F、G、DP;(3)8255A的PB2~PB0对应连接到数码管的位选端SM3~SM1。 4.ADC0809和8255A的端口地址 ADC0809的端口地址:通道选择及启动转换:0E228H~0E22FH,读结果:0E228H~0E22FH。 8255A的端口地址:   PA口:0E200H,PB口:0E201H,PC口:0E202H,控制寄存器:0E203H。可编辑ppt实验9.1开始初始化8255读键盘有E键?设置采集次数、存储指针调采集程序采集数据求和、并求均值采集均值﹤PL?采集均值﹤PH?结束YNYYNN开泵、开报警开泵、关报警关泵、开报警调采集程序:子程定义启动A/D等待转换完成读转换结果保存转换结果子程结束可编辑ppt;CS8255---------CS1;8255的PA6------L3;8255的PA7------BJ;AD_S-----------译码控制单元的AD_S;AD_OE----------译码控制单元的AD_OE;IN0-----------直流电压单元的Vdc;PL=66h;PH=0B4h.modelsmall.586p8255equ0E200H;8255片选地址p_ctlequ80h   ;8255控制字AD_Sequ0E228H;A/D片选地址AD_OEEQU0E228HPHequ0B4HPLequ66HBJLEDKEQU11000000BBJGLEDKEQU01000000BBJKLEDGEQU10000000B.dataVADDB5dup(?).code.startupmovdx,p8255+3;发控制字moval,p_ctloutdx,alstart: movah,06h ;判结束 movdl,0ffh int21h cmpal,'e‘  jescan_end movdi,offsetVAD movcx,4cv:callad_cv;调采集程序loopcvmovdi,offsetVADmovcx,4movax,0clcqzhzh: MOVBL,[DI]  MOVZXBX,BL  ADCAX,BX  incdiloopqzhzh MOVCL,2 SHRAX,CL MOV[DI+1],AL cmpAL,PL JBLK cmpAL,PH JBLEDK JMPHG jmpstart可编辑pptLK: movdx,p8255 moval,BJLEDK outdx,al jmpstartLEDK:movdx,p8255   moval,BJGLEDK   outdx,al   jmpstartHG: movdx,p8255 moval,BJKLEDG outdx,al jmpstartscan_end: nop.exitad_cv  procnearusescxmovdx,AD_Soutdx,ALmovcx,05000hloop$inAL,dxmov[di],ALincdiretad_cvendpend可编辑ppt计算结果:111111110数据及地址:2175:00081011111101计算结果:1904数据及地址:2188:000A34560419可编辑ppt
本文档为【位微机原理实验西工大】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
爱赢
公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)
格式:ppt
大小:414KB
软件:PowerPoint
页数:0
分类:教育学
上传时间:2021-02-19
浏览量:5