单片机接口实习指导书.docx
《单片机接口实习指导书.docx》由会员分享,可在线阅读,更多相关《单片机接口实习指导书.docx(29页珍藏版)》请在冰豆网上搜索。
单片机接口实习指导书
单片机接口技术实习指导书
一、硬件实验
实验一:
简单I/O口输入、输出扩展内容
(一)、实验内容
MCS—51外部扩展空间很大,但数据总线口和控制信号的负载能力是有限的,若需要扩展的芯片较多,则MCS—51总线口负载过重,74LS244是一个输入扩展口,同时也是一个单向驱动器,以减轻总线负担。
74LS273做为同向输出口,控制8个发光二极管的亮灭。
(二)、实验步骤
①74LS244的输入端PI0—PI7接K1—K8,74LS373的输出端PO0—PO7接L1—L8。
②在EXIC插座上插上一片74LS32,然后按图连好有关线路。
③K1—K7全拨在上面(高电平),L1—L8全亮。
④按F2键进入仿真1态,即“P.....”态。
⑤用连续方式从起始地址0600H开始运行程序。
⑥拨动K1—K8,观察L1—L8点亮情况。
(三)程序
ORG0600H
HA3S:
MOVDPTR,#0A000H
MOVXA,@DPTR
MOVDPTR,#0B000H
MOVX@DPTR,A
MOVR2,#20H
ACALLDELAY
SJMPHA3S
DELAY:
PUSH02H
DELAY1:
PUSH02H
DELAY2:
PUSH02H
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
POP02H
DJNZR2,DELAY1
POP02H
DJNZR2,DELAY
RET
END
实验二:
串并转换实验内容
(一)、实验内容
利用0831串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个数码显示器,在数码显示器上循环显示从8031串行口输出的0—9这10个数字。
(二)、实验说明
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。
在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。
由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。
待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。
(三)、实验步骤
①将S/P区DATA插孔接BUS3区P3.0(RXD)插孔。
②将S/P区CLK插孔接BUS3区P3.1(TXD)插孔。
③将S/P区CLR插孔接MP区/SP插孔,上电时对164复位。
④在DVCC系统处于仿真1态即“P.”状态下,将地址000B内容改为E1B1,作为定时器0的入口地址。
⑤将状态切换为“P.....”状态,从地址0790H开始连续执行程序。
⑥在扩展的一位数码管上循环显示0—9这10个数字。
(四)程序
TIMEREQU01H
ORG000BH
AJMPINT_T0
ORG0790H
START:
MOVSP,#53H
MOVTMOD,#01H
MOVTL0,#00H
MOVTH0,#4BH
MOVR0,#0H
MOVTIMER,#20
MOVSCON,#00H
CLRTI
CLRRI
SETBTR0
SETBET0
SETBEA
SJMP$
INT_T0:
PUSHACC
PUSHPSW
CLREA
CLRTR0
MOVTL0,#0H
MOVTH0,#4BH
SETBTR0
DJNZTIMER,EXIT
MOVTIMER,#20
MOVDPTR,#CDATA
MOVA,R0
MOVCA,@A+DPTR
CLRTI
CPLA
MOVSBUF,A
INCR0
CJNER0,#0AH,EXIT
MOVR0,#0H
EXIT:
SETBEA
POPPSW
POPACC
RETI
CDATA:
DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
END
实验三:
A/D转换0809应用内容
(一)、实验内容
利用实验仪上的0809做A/D转换实验,〖ZH(〗实验仪上的W1电位器提供模拟量输入。
编制程序,将模拟量转换成数字量,通过发光二极管L1-L8显示。
(二)、实验说明
A/D转换器大致分有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/D转换器。
每采集一次一般需100μs。
由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。
(三)、实验步骤
①把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔(0-5V)。
②0809的CLK插孔与分频输出端T4相连。
③将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。
调节W2,使VREF端为+5V。
④将A/D区的VREF连到W2的输出VREF端。
⑤EXIC1上插上74LS02芯片,将有关线路按图连好。
⑥将A/D区D0-D7用排线与BUS1区XD0-XD7相连。
⑦将BUS3区P3.0用连到数码管显示区DATA插孔。
⑧将BUS3区P3.1用连到数码管显示区CLK插孔。
⑨单脉冲发生/SP插孔连到数码管显示区CLR插孔。
⑩仿真实验系统在"P....."状态下。
⑾以连续方式从起始地址06D0运行程序,在数码管上显示当前采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,典型值为0-00H,2.5V-80H,5V-FFH。
(四)程序
ORG06D0H
START:
MOVA,#00H
MOVDPTR,#9000H
MOVX@DPTR,A
MOVA,#00H
MOVSBUF,A
MOVSBUF,A
MOVXA,@DPTR
DISP:
MOVR0,A
ANLA,#0FH
LP:
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S:
DJNZR7,H55S
MOVA,R0
SWAPA
ANLA,#0FH
MOVCA,@A+DPTR
MOVSBUF,A
MOVR7,#0FH
H55S1:
DJNZR7,H55S1
LCALLDELAY
AJMPSTART
TAB:
DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
DELAY:
MOVR6,#0FFh
DELY2:
MOVR7,#0FFh
DELY1:
DJNZR7,DELY1
DJNZR6,DELY2
RET
END
实验四:
D/A转换0832应用内容
(一)、实验内容
利用0832输出一个从-5V开始逐渐升到0V再逐渐升至5V,再从5V逐渐降至0V,再降至-5V的锯齿波电压。
(二)、实验步骤
①把D/A区0832片选CS信号线接至译码输出插孔Y0。
②将+12V插孔、—12V插孔通过导线连到外置电源上,如果电源内置时,则+12V\,-12V电源已连好。
③将D/A区WR插孔连到BUS3区XWR插孔。
④将电位器W2的输出VREF连到D/A区的VREF上,电位器W2的输VIN连到+12V插孔,调节W2使VREF为+5V。
⑤用8芯排线将D/A区D0—D7与BUS2区XD0—XD7相连。
⑥在“P.....”状态下,从起始地址0740H开始连续运行程序(输入0740后按EXEC键)。
⑦用万用表或示波器测D/A输出端AOUT,应能测出不断加大和减小的电压值。
(三)程序
ORG0740H
HA6S:
MOVSP,#53H
HA6S1:
MOVR6,#00H
HA6S2:
MOVDPTR,#8000H
MOVA,R6
MOVX@DPTR,A
MOVR2,#0BH
LCALLDELAY
INCR6
CJNER6,#0FFH,HA6S2
HA6S3:
MOVDPTR,#8000H
DECR6
MOVA,R6
MOVX@DPTR,A
MOVR2,#0BH
LCALLDELAY
CJNER6,#00H,HA6S3
SJMPHA6S1
DELAY:
PUSH02H
DELAY1:
PUSH02H
DELAY2:
PUSH02H
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
POP02H
DJNZR2,DELAY1
POP02H
DJNZR2,DELAY
RET
END
实验五:
8031串行口应用(双机通信实验)
(一)、实验内容
1利用8031单片机串行口,实现双机通信。
2本实验实现以下功能,将1号实验机键盘上键入的数字、字母显示到2号机的数码管上。
(二)、实验说明
1本实验系统中考虑用户可以方便使用串行口实现双机或和上位机通信,系统设计有用户专用串行接口,只要配上用户专用通信电缆线就可以实现和上位机通信,不影响监控系统和上位机的联机工作。
J10就是用户专用串行接口,将J10用用户专用通信线连到上位机的串口上。
注意不要和上位机系统用串行口冲突。
2实验时需将1号机8031串行接收信号线P3.0(RXD)连到2号机8031串行口发送信号线P3.1(TXD)。
(三)、实验步骤
1.按图连好线路。
2.在DVCC实验系统处于"P."状态下。
3.1号机输入四位起始地址0D00后,按EXEC键连续运行程序。
4.2号机输入四位起始地址0E30后,按EXEC键连续运行程序。
5.从1号机上的键盘输入数字键,会显示在2号机的数码管上。
(四)程序(统晶振是6.0MHz)
发送程序:
ORG0D00H
START:
MOVSP,#60H
MOVA,#01H
MOVR0,#79H
MOV@R0,A
INCR0
MOVA,#10H
MOV@R0,A
INCR0
MOVA,#01H
MOV@R0,A
INCR0
MOVA,#03H
MOV@R0,A
INCR0
MOVA,#00H
MOV@R0,A
INCR0
MOVA,#08H
MOV@R0,A
MOVA,#7EH
MOVDPTR,#1FFFH
MOVX@DPTR,A
MOVSCON,#50H;串口方式1
MOVTMOD,#20H;T1方式1
MOVTL1,#0CCH;波特率9600的常数
MOVTH1,#0CCH
SETBTR1;开中断
CLRET1
CLRES
REDIKEY:
LCALLKEYDISP;读键盘
CJNEA,#10H,SS0
SS0:
JNCREDIKEY
MOVSBUF,A;串口输出键盘输入的值
NOP
SS:
JBCTI,REDIKEY;是否发送完毕
SJMPSS
KEYDISP:
LCALLDISP
LCALLKEYSM
MOVR4,A;KEYDATA
MOVR1,#76H;DATASAMETIME
MOVA,@R1
MOVR2,A
INCR1
MOVA,@R1
MOVR3,A;LASTKEYDATA
XRLA,R4
;TWOTIMEKEYDATA
MOVR3,04H;NEWKEYDATA---R3
MOVR4,02H;TIME---R4
JZKEYDISP1
MOVR2,#88H
MOVR4,#88H
KEYDISP1:
DECR4
MOVA,R4
XRLA,#82H
JZKEYDISP2
MOVA,R4;R4=TIME
XRLA,#0EH
JZKEYDISP2
MOVA,R4
ORLA,R4
JZKEYDISP3
MOVR4,#20H;R4=20H
DECR2
LJMPKEYDISP5
KEYDISP3:
MOVR4,#0FH
KEYDISP2:
MOVR2,04H
MOVR4,03H
KEYDISP5:
MOVR1,#76H
MOVA,R2
MOV@R1,A
INCR1
MOVA,R3
MOV@R1,A
MOVA,R4;****
CJNER3,#10H,KEYDISP4
KEYDISP4:
RET
DISP:
SETB0D4H
MOVR1,#7EH
MOVR2,#20H
MOVR3,#00H
DISP1:
MOVDPTR,#DATACO
MOVA,@R1
MOVCA,@A+DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A
MOVDPTR,#0FF21H
MOVA,R2
MOVX@DPTR,A
LCALLDELAY
DECR1
CLRC
MOVA,R2
RRCA
MOVR2,A
JNZDISP1
CLR0D4H
RET
DELAY:
MOVR6,#02H
DELAY0:
MOVR7,#0FFH
DELAY1:
DJNZR7,DELAY1
DJNZR6,DELAY0
RET
DATACO:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH
KEYSM:
SETB0D4H
MOVA,#0FFH
MOVDPTR,#0FF22H
MOVX@DPTR,A;OFFDISP
KEYSM0:
MOVR2,#0FEH
MOVR3,#08H
MOVR0,#00H
KEYSM1:
MOVA,R2
MOVDPTR,#0FF21H
MOVX@DPTR,A
NOP
RLA
MOVR2,A
MOVDPTR,#0FF23H
MOVXA,@DPTR
CPLA
NOP
NOP
NOP
ANLA,#0FH
JNZKEYSM2
INCR0;NOKEY
DJNZR3,KEYSM1
SJMPKEYSM10
KEYSM2:
;YKEY
CPLA
JB0E0H,KEYSM3
MOVA,#00H
SJMPKEYSM7
KEYSM3:
JB0E1H,KEYSM4
MOVA,#08H
SJMPKEYSM7
KEYSM4:
JB0E2H,KEYSM5
MOVA,#10H
SJMPKEYSM7
KEYSM5:
JB0E3H,KEYSM10
MOVA,#18H
KEYSM7:
ADDA,R0
CLR0D4H
CJNEA,#10H,KEYSM9
KEYSM9:
JNCKEYSM10
MOVDPTR,#KEYDATA
MOVCA,@A+DPTR
KEYSM10:
RET
KEYDATA:
DB07H,04H,08H,05H,09H,06H,0AH,0BH
DB01H,00H,02H,0FH,03H,0EH,0CH,0DH
END
接收程序:
系统晶振是6.0MHz
ORG0E30H
START:
MOVSP,#60H
movA,#02H
MOVR0,#79H
MOV@R0,A
INCR0
MOVA,#10H
MOV@R0,A
INCR0
MOVA,#01H
MOV@R0,A
INCR0
MOVA,#03H
MOV@R0,A
INCR0
MOVA,#00H
MOV@R0,A
INCR0
MOVA,#08H
MOV@R0,A
MOVA,#7EH
MOVDPTR,#1FFFH
MOVX@DPTR,A
MOVSCON,#50H;串口方式1
MOVTMOD,#20H;T1方式1
MOVTL1,#0CCH;波特率9600的常数
MOVTH1,#0CCH
SETBTR1;开中断
CLRET1
CLRES
WAIT:
JBCRI,DIS_REC;是否接收到数据
LCALLDISP;
SJMPWAIT;
DIS_REC:
MOVA,SBUF;读串口接收到的数据
LCALLDATAKEY;显示输入的数字(0-F)
DB79H,7EH
AJMPWAIT
DATAKEY:
MOVR4,A
MOVDPTR,#1FFFH
MOVXA,@DPTR
MOVR1,A
MOVA,R4
MOV@R1,A
CLRA
POP83H
POP82H
MOVCA,@A+DPTR
INCDPTR
CJNEA,01H,DATAKEY2
DECR1
CLRA
MOVCA,@A+DPTR
DATAKEY1:
PUSH82H
PUSH83H
MOVDPTR,#1FFFH
MOVX@DPTR,A
POP83H
POP82H
INCDPTR
PUSH82H
PUSH83H
RET
DATAKEY2:
DECR1
MOVA,R1
SJMPDATAKEY1
DISP:
SETB0D4H
MOVR1,#7EH
MOVR2,#20H
MOVR3,#00H
DISP1:
MOVDPTR,#DATACO
MOVA,@R1
MOVCA,@A+DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A
MOVDPTR,#0FF21H
MOVA,R2
MOVX@DPTR,A
LCALLDELAY
DECR1
CLRC
MOVA,R2
RRCA
MOVR2,A
JNZDISP1
CLR0D4H
RET
DELAY:
MOVR7,#03H
DELAY0:
MOVR6,#0FFH
DELAY1:
DJNZR6,DELAY1
DJNZR7,DELAY0
RET
DATACO:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH
END
实验六:
利用8155控制数码管显示
(一)实验内容
1.请利用8155控制的显示器编写一个8字循环的程序。
2.请在显示器上静态显示“HELLO”这个英文单词。
(二)
硬件电路图
(三)程序(系统设置:
内程序,内数据)
备注:
8155控制口FF20H
8155A口(字位)FF21H
8155B口(字形)FF22H
8155C口(键扫)FF23H
1.MOVA,#80H
MOVDPTR,#0FF22H
MOVX@DPTR,A
MOVA,#01H
MOVDPTR,#0FF21H
LOOP:
MOVX@DPTR,A
LCALLDELAY
RLA
SJMPLOOP
DELAY:
MOVR6,#0FFH
D1:
MOVR7,#0FFH
DJNZR7,$
DJNZR6,D1
RET
END
2.ORG2000H
MOVR0,#22H;字形
MOVR1,#21H;字位
START:
MOVR3,#00H
MOV30H,#20H
ST:
MOVDPTR,#TAB
MOVA,R3
MOVCA,@A+DPTR
MOVX@R0,A
MOVA,30H
MOVX@R1,A
LCALLDELAY
INCR3
RRA
MOV30H,A
CJNER3,#05H,ST
SJMPSTART
DELAY:
MOVR6,#0FFH
DJNZR6,$
RET
TAB:
DB89H,86H,0C7H,0C7H,0C0H
END
硬件实习
实习一:
利用单片机控制8*8LED矩阵。
1.利用单片机机箱判断出8*8LED矩阵块的行(C1-C8)和列(R1-R8).
2.利用单片机编程实现8*8LED矩阵单列循环显示。
3.利用单片机编程实现8*8LED矩阵静态显示数字2。
4.利用单片机编程实现8*8LED矩阵动态向左移动显示数字2和3。
利用单片机P1口控制矩阵的行(字型显示),利用74ls138输出端控制列扫描(备注:
由于单片机机箱P0,P2口集成不可用;P3口不可用,因此利用8255的扩展端口PB0、PB1、PB2做译码器的输入端,PB口地址为0FF29H)
1.阵列管脚(需要学生拿到矩阵块测试,利用单片机机箱的VCC接一电阻,测试行和列)行接LED阳极,列接LED阴极
R7
R6
R4
C2
C4
C1
C3
C6
R5
R8
R3
R2
R1
C7
C5
C8
2.单列循环程序
ORG2000H
ST:
MOVR4,#8
MOVR2,#0
LOOP1:
MOVP1,#0FFH
MOVDPTR,#0FF29H
MOVA,R2
MOVX@DPTR,A
LCALLDELAY
INCA
MOVR2,A
DJNZR4,LOOP1
SJMPST
DELAY:
MOVR5,#10
D2:
MOVR6,#200
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
DJNZR5,D2
RET
END
3.显示数字“2”
ORG2000H
START:
MOVR2,#00H
MOVR3,#00H
XIAN:
MOVA,R2
MOVD