《微型计算机原理及应用实验指导.doc》由会员分享,可在线阅读,更多相关《微型计算机原理及应用实验指导.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流微型计算机原理及应用实验指导.精品文档.实验一 数据查找实验一、实验目的熟悉汇编语言编程。二、实验内容在7000H700FH中查出有几个字节是零,统计“00”的个数再显示在数码管上。三、实验程序框图四、实验步骤(1)在7000H700FH单元中放入随机数,其中几个单元中输入零。(2)用连续方式从起始地址0160H开始运行程序(输入0160后按EXEC键)。(3)观察显示器上的内容,应显示内容为“00”的单元的个数。五、思考修改程序,查找其它内容。实验程序1ORG 0160H2FIND:MOV SP,#60H;设栈指针3MOV R0,#10H;
2、查找16个字节4MOV R1,#00H5MOV DPTR,#7000H6FIND1:MOVX A,DPTR7CJNE A,#00H,FIND2;取出的内容与00H相等吗?8INC R1;计数值加1,指针加19FIND2:INC DPTR10DJNZ R0,FIND1;未完继续11MOV A,R112MOV R0,#79H;个数送显示缓冲区13ANL A,#0FH14MOV R0,A15INC R016MOV A,R117SWAP A18ANL A,#0FH19MOV R0,A20INC R021MOV A,#10H22MOV R4,#04H23FIND3:MOV R0,A24INC R025D
3、JNZ R4,FIND326FIND4:LCALL DISP;循环调显示程序27SJMP FIND428DISP:SETB 0D4H;显示子程序29MOV R1,#7EH30MOV R2,#20H31MOV R3,#00H32DISP1:MOV DPTR,#0FF21H33MOV A,R234MOVX DPTR,A35MOV DPTR,#DATA136MOV A,R137MOVC A,A+DPTR38MOV DPTR,#0FF22H39MOVX DPTR,A40DISP2:DJNZ R3,DISP241DEC R142CLR C43MOV A,R244RRC A45MOV R2,A46JNZ
4、DISP147MOV A,#0FFH48MOV DPTR,#0FF22H49MOVX DPTR,A50CLR 0D4H51RET52DATA1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;显示代码53DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH54END实验二 工业顺序控制模拟实验一、实验目的掌握工业顺序控制程序的简单编程和中断的使用。二、实验预备知识在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,例如注塑机工艺过程大致按“合模注射延时开
5、模产伸产退”顺序动作。对这类断续生产过程的控制称为顺序控制,可用单片机控制实现。三、实验内容8032的P1.0-P1.6控制注塑机的七道工序,模拟控制七只发光二极管的亮灭,高电平时发光二极管点亮。设定每道工序时间转换为延时,P3.4为启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警。P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。四、实验说明实验中使用外部中断0,编中断服务程序的关键是:1. 保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2. 必须在中断服务程序中设定是否允许中断重入,即设置EX0位。一般在进入中断服务程序时应保护PS
6、W、ACC以及中断服务程序使用但非其专用的寄存器,本实验未涉及。五、实验程序框图六、实验接线图七、实验步骤(1)P3.4连K1,P3.3连K2,P1.0-P1.6分别连到L1-L7,P1.7连SIN(电子音响输入端)。(2)K1开关拨在上面,K2开关拨在上面。(3)用连续方式从起始地址0580H开始运行程序(输入0580后按EXEC键),此时应处于等待启动状态。(4)K1拨至下面(低电平),各道工序应正常运行。(5)K2拨至下面(低电平),应有声音报警(人为设置故障)。(6)K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。八、思考修改程序,使每道工序中有多位输出。实验程
7、序1ORG 0013H2LJMP HA2S33ORG 0580H4HA2S:MOV P1,#00H;关各道工序5ORL P3,#00H6HA2S1:JB P3.4,HA2S1;是否开始工作7ORL IE,#84H;初始化中断寄存器8ORL IP,#04H9MOV PSW,#00H10MOV SP,#53H11HA2S2:MOV P1,#01H;第一道工序12ACALL HA2S713MOV P1,#02H;第二道工序14ACALL HA2S715MOV P1,#04H;第三道工序16ACALL HA2S717MOV P1,#08H;第四道工序18ACALL HA2S719MOV P1,#10H
8、;第五道工序20ACALL HA2S721MOV P1,#20H;第六道工序22ACALL HA2S723MOV P1,#40H;第七道工序24ACALL HA2S725SJMP HA2S2;循环26HA2S3:MOV B,R2;外部中断服务程序27HA2S4:MOV P1,#00H;关各道工序28MOV 20H,#0A0H29HA2S5:SETB P1.7;声音报警30ACALL HA2S631CLR P1.732ACALL HA2S633DJNZ 20H,HA2S534CLR P1.735ACALL HA2S636JNB P3.3,HA2S4;判断故障是否已经排除37MOV R2,B38R
9、ETI;排除故障后中断返回39HA2S6:MOV R2,#06H;延时子程序140ACALL DELAY41RET42HA2S7:MOV R2,#30H;延时子程序243ACALL DELAY44RET45DELAY:PUSH 02H;延时子程序46DELAY1:PUSH 02H47DELAY2:PUSH 02H48DELAY3:DJNZ R2,DELAY349POP 02H50DJNZ R2,DELAY251POP 02H52DJNZ R2,DELAY153POP 02H54DJNZ R2,DELAY55RET56END实验三 交通灯控制模拟实验一、实验目的1掌握用8255A芯片扩展8051
10、的输入输出接口的方法;2掌握8051内部定时器的使用方法;3掌握8051中断功能的使用方法;4熟悉8051汇编程序的设计方法。二、实验设备DVCC-598JH单片机、微机仿真实验系统三、实验内容用8255A芯片扩展单片机的I/O口,用作输出口,控制发光二极管的亮灭,模拟交通灯管理。编程实现各个状态的转换。每个状态的持续时间用8051单片机的内部定时器和中断实现。四、实验要求因为本实验是交通灯控制模拟实验,所以要先了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍
11、然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。然后回到状态1。状态1至状态4为一个循环;循环不断重复,直到断电。在本实验中,用十二个发光二极管代表十二盏交通灯,要求发光二极管的亮灭状态转换与交通灯相同。各状态的持续时间和黄灯闪烁次数要求如表1所示。要求用8051内部定时器和中断功能实现各个状态的延时。表1 各状态的持续时间状态要求0仅在系统复位后执行一次,持续10S。1每个循环执行一次,持续20S。2每个循环执行一次,黄灯闪烁5次;每次闪烁,黄灯亮和灭均持续0.5S。3每个循环执行一次,持续20S。4每个循环执行一次,黄灯闪烁5
12、次;每次闪烁,黄灯亮和灭均持续0.5S。做实验前要完成如下准备工作:1确定各个状态对应的8255A的输出数据。2根据8051内部定时器和中断的特点设计定时方式。3绘制程序的流程图。4编制控制程序。五、实验程序框图图1 状态转换六、实验接线图及说明图2 实验接线十二个发光二极管L1-L12的亮灭由8255A的输出口线控制,其对应关系如表2所示。表2 发光二极管与8255A输出口线的对应关系方向东南西北颜色绿黄红绿黄红绿黄红绿黄红灯序号L12L11L10L9L8L7L6L5L4L3L2L1控制口线PB3PB2PB1PB0PC7PC6PC5PC4PC3PC2PC1PC0控制逻辑为:控制口线输出高电平
13、时,对应的发光二极管亮;控制口线输出低电平时,对应的发光二极管灭。七、实验步骤1按接线图,连接8255A的输出口线和发光二极管。2输入程序。3调试程序,检验状态的转换和持续的时间。实验程序1ORG 0630H2HA4S:MOV SP,#60H;设栈指针3MOV DPTR,#0FF2BH4MOV A,#80H;设置PC、PB口为输出口,工作在方式05MOVX DPTR,A6MOV DPTR,#0FF29H7MOV A,#02H8MOVX DPTR,A9INC DPTR10MOV A,#49H11MOVX DPTR,A;点亮四个红灯12MOV R2,#25H13LCALL DELAY;延时14HA
14、4S3:MOV DPTR,#0FF29H15MOV A,#08H16MOVX DPTR,A17INC DPTR18MOV A,#61H19MOVX DPTR,A;东西绿灯亮,南北红灯亮20MOV R2,#55H21LCALL DELAY;延时22MOV R7,#05H;黄灯闪烁次数为05H23HA4S1:MOV DPTR,#0FF29H24MOV A,#04H25MOVX DPTR,A26INC DPTR27MOV A,#51H;东西黄灯亮,南北红灯亮28MOVX DPTR,A29MOV R2,#20H30LCALL DELAY;延时31MOV DPTR,#0FF29H32MOV A,#00H
15、33MOVX DPTR,A34INC DPTR35MOV A,#41H;南北红灯亮36MOVX DPTR,A37MOV R2,#20H38LCALL DELAY;延时39DJNZ R7,HA4S1;闪烁次数未到继续40MOV DPTR,#0FF29H41MOV A,#03H42MOVX DPTR,A43INC DPTR44MOV A,#0cH45MOVX DPTR,A;东西红灯亮,南北绿灯亮46MOV R2,#55H47LCALL DELAY;延时48MOV R7,#05H;置黄灯闪烁次数49HA4S2:MOV DPTR,#0FF29H50MOV A,#02H51MOVX DPTR,A52IN
16、C DPTR53MOV A,#8aH54MOVX DPTR,A;东西红灯亮,南北黄灯亮55MOV R2,#20H56LCALL DELAY;延时57MOV DPTR,#0FF29H58MOV A,#02H59MOVX DPTR,A60INC DPTR61MOV A,#08H;东西红灯亮62MOVX DPTR,A63MOV R2,#20H64LCALL DELAY;延时65DJNZ R7,HA4S2;闪烁次数未到继续66LJMP HA4S3;循环67DELAY:PUSH 02H;延时子程序68DELAY1:PUSH 02H69DELAY2:PUSH 02H70DELAY3:DJNZ R2,DEL
17、AY371POP 02H72DJNZ R2,DELAY273POP 02H74DJNZ R2,DELAY175POP 02H76DJNZ R2,DELAY77RET78END实验四 A/D转换实验一、实验目的1. 掌握A/D转换与单片机的接口方法。2. 了解A/D芯片0809转换性能及编程方法。3. 通过实验了解单片机如何进行数据采集。二、实验内容利用实验仪上的0809做A/D转换实验,实验仪上的W1电位器提供模拟量输入。编制程序,将模拟量转换成数字量,通过两位七段数码管显示器显示。三、实验说明A/D转换器大致分有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是
18、逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用ADC0809属第二类,是8位A/D转换器。每采集一次一般需100s。由于ADC0809 A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。四、实验接线图五、实验程序框图六、实验步骤(1)把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔(05V)。(2)0809的CLK插孔与分频输出端T4相连。(3)将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。调节W2,
19、使VREF端为+5V。(4)将A/D区的VREF连到W2的输出VREF端。(若精度要求不高,A/D区的VREF直接连到VCC插孔,这样可以去掉步骤(3))(5)EXIC1上插上74LS02芯片,将有关线路按图连好。(6)将A/D区D0D7用排线与BUS1区XD0XD7相连。(7)将BUS3区P3.0插孔连到数码管显示区DATA插孔。(8)将BUS3区P3.1插孔连到数码管显示区CLK插孔。(9)单脉冲发生/SP插孔连到数码管显示区CLR插孔。(10)按实验系统的F2键,仿真实验仪进入仿真状态(内程序、外数据),显示器显示“P.”。(11)以连续方式从起始地址06D0运行程序,在数码管上显示当前
20、采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,典型值为0V00H,2.5V80H,5VFFH。实验程序1ORG 06D0H2START:MOV A,#00H3MOV DPTR,#9000H4MOVX DPTR,A5MOV R7,#0FFH6MOV SBUF,A7MOV SBUF,A;清显示8MOVX A,DPTR9DISP:MOV R0,A;显示转换数据10ANL A,#0FH11LP:MOV DPTR,#TAB12MOVC A,A+DPTR13MOV SBUF,A14MOV R7,#0FH15H55S:DJNZ R7,H55S16MOV A,R017SWAP A18ANL A,#0FH19MOVC A,A+DPTR20MOV SBUF,A21MOV R7,#0FH22H55S1:DJNZ R7,H55S123LCALL DELAY24AJMP START25TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h26DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh27DELAY:MOV R6,#0FFh28DELY2:MOV R7,#0FFh29DELY1:DJNZ R7,DELY130DJNZ R6,DELY231RET32END