过控单片机原理与接口技术.docx
- 文档编号:26199745
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:20
- 大小:172KB
过控单片机原理与接口技术.docx
《过控单片机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《过控单片机原理与接口技术.docx(20页珍藏版)》请在冰豆网上搜索。
过控单片机原理与接口技术
目录
实验一数据排序实验………………………………………………………………1
实验二工业顺序控制………………………………………………………………2
实验三A/D转换(0809应用)实验………………………………………………5
实验四并行I/O口8255扩展实验…………………………………………………7
实验一、数据排序实验
一、实验目的
熟悉8031指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。
三、实验程序框图
N
N
N
四、实验步骤
1把8032片内RAM区50H—5AH中放入不等的数据(用寄存器读写方法)。
2用连续运行方式从起始地址0100H开始运行程序(输入0100后按EXEC键)。
3排序结束,显示“P.”。
4用寄存器读写方法检查50—5AH中内容应从小到大排列。
五、参考程序
DORDE:
MOVSP,#60H;设置栈指针
MOVR3,#50H
DORDE1:
MOVA,R3
MOVR0,A;数据指针传送到R0
MOVR7,#0AH;长度送到R7
CLR00H;清零标志位
MOVA,@R0
DORDE2:
INCR0
MOVR2,A
CLRC;清零进位标志
MOV22H,@R0
CJNEA,22H,DORDE3;是否相等
SETBC
DORDE3:
MOVA,R2
JCDORDE4;小于或等于不交换
SETB00H
XCHA,@R0
DECR0
XCHA,@R0;大于交换位置
INCR0
DORDE4:
MOVA,@R0
DJNZR7,DORDE2
JB00H,DORDE1;未完继续
MOVR0,#7EH;完,关显示器前三位
MOVA,#0FFH
MOVR4,#06H
DORDE5:
MOV@RO,A
DECR0
DJNZR4,DORDE5
MOV7EH,#0CH;“P.”显示代码送显示缓冲区最后一位
DORDE6:
LCALLDISPD;循环调显示子程序
SJMPDORDE6
DISPD:
SETB0D4H;显示子程序
MOVR1,#7EH
MOVR2,#20H
MOVR3,#00H
DISPD1:
MOVDPTR,#0FF21H
MOVA,R2
MOVX@DPTR,A
MOVA,@R1
MOVDPTR,#0FF22H
MOVX@DPTR,A
DISPD2:
DJNZR3,DISPD2
DECR1
CLRC
MOVA,R2
RRCA
MOVR2,A
JNZDISPD1
MOVA,#0FFH
MOVDPTR,#0FF22H
MOVX@DPTR,A
CLR0D4H
RET
END
六、思考题
编一程序把50H—5AH中内容按从大到小排列。
实验二、工业顺序控制
一、实验目的
掌握工业顺序控制程序的简单编程,中断的使用。
二、实验预备知识
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。
三、实验内容
8032的P1.0—P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。
P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
四、实验说明
实验中用外部中断0,编中断服务程序的关键是:
1.保护进入中断时的状态,并在退出中断之前恢复进入的状态。
2.必须在中断程序中设定是否允许中断重入,即设置EX0位。
一般中断程序进入时应保护PSW、ACC以及中断程序使用但非其专用的寄存器,本实验中未涉及。
五、实验程序框图
五、参考程序
ORG0013H
LJMPHA2S3
ORG0580H
HA2S:
MOVP1,#00H;关各道工序
ORLP3,#00H
HA2S1:
JBP3.4,HA2S1;开始工作
ORLIE,#84H;初始化中断寄存器
ORLIP,#04H
MOVPSW,#00H
MOVSP,#53H
HA2S2:
MOVP1,#01H;第一道工序
ACALLHA2S7
MOVP1,#02H;第二道工序
ACALLHA2S7
MOVP1,#04H;第三道工序
ACALLHA2S7
MOVP1,#08H;第四道工序
ACALLHA2S7
MOVP1,#10H;第五道工序
ACALLHA2S7
MOVP1,#20H;第六道工序
ACALLHA2S7
MOVP1,#40H;第七道工序
ACALLHA2S7
SJMPHA2S2;循环
HA2S3:
MOVB,R2;外部中断服务程序
HA2S4:
MOVP1,#00H;关各道工序
MOV20H,#0A0H
HA2S5:
SETBP1.7;声音报警
ACALLHA2S6
CLRP1.7
ACALLHA2S6
DJNZ20H,HA2S5
CLRP1.7
ACALLHA2S6
JNBP3.3,HA2S4;判断故障是否排除
MOVR2,B
RETI;排除后中断返回
HA2S6:
MOVR2,#06H;延时子程序1
ACALLDELAY
RET
HA2S7:
MOVR2,#30H;延时子程序2
ACALLDELAY
RET
DELAY:
PUSH02H;延时子程序
DELAY1:
PUSH02H
DELAY2:
PUSH02H
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
POP02H
DJNZR2,DELAY1
POP02H
DJNZR2,DELAY
RET
END
六、实验原理图
七、实验步骤
①P3.4连K1,P3.3连K2,P1.0—P1.6分别连到L1—L7,P1.7连SIN(电子音响输入端)。
K1开关拨在上面,K2拨在上面。
③用连续方式从起始地址0580H开始运行程序(输入0580后按EXEC键),此时应在等待开工状态。
④K1拨至下面(显低电平),各道工序应正常运行。
⑤K2拨至下面(低电平),应有声音报警(人为设置故障)。
⑥K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。
八、思考
修改程序,使每道工序中有多位输出。
实验三、A/D转换(0809应用)实验
一、实验目的
1.掌握A/D转换与单片机的接口方法。
2.了解A/D芯片0809转换性能及编程方法。
3.通过实验了解单片机如何进行数据采集。
二、实验内容
利用实验仪上的0809做A/D转换实验,实验仪上的W1电位器提供模拟量输入。
编制程序,将模拟量转换成数字量,通过二位七段数码管显示器显示。
三、实验说明
A/D转换器大致分有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用ADC0809属第二类,是8位A/D转换器。
每采集一次一般需100μs。
由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。
四、实验原理图
五、实验程序框图
ORG06D0H
START:
MOVA,#00H
MOVDPTR,#9000H
MOVX@DPTR,A
MOVR7,#0FFH
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
六、实验步骤
1.把A/D区0809的0通道IN0用插针线接至W1的中心抽头V01插孔
(0—5V)。
2.0809的CLK插孔与分频输出端T4相连。
3.将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。
调节W2,使VREF端为+5V。
4.将A/D区的VREF连到W2的输出VREF端。
(如果精度要求不高的话,A/D区的VREF直接连到VCC插孔,这样步骤③可以去掉)。
5.EXIC1上插上74LS02芯片,将有关线路按图连好。
6.将A/D区D0—D7用排线与BUS2区XD0—XD7相连。
7.BUS3区P3.0插孔连到数码管显示区DATA插孔。
8.BUS3区P3.1插孔连到数码管显示区CLK插孔。
9.单脉冲发生/SP插孔连到数码管显示区CLR插孔。
10.按实验系统上的F2键,仿真实验仪进入仿真状态(内程序,外数据),显示器显示“P……”。
11.以连续方式从起始地址06D0运行程序,在数码管上显示当前采集的电压值转换后的数字量,调节W1数码管显示将随着电压变化而相应变化,典型值为0V—00H,2.5V—80H,5V—FFH。
实验四、并行I/O口8255扩展实验
一、实验目的
了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。
二、实验内容
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
三、实验说明
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯。
过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯,最后循环至状态1。
四、实验程序框图
参考程序:
ORG0630H
HA4S:
MOVSP,#60H;设栈指针
MOVDPTR,#0FF2BH
MOVA,#80H;设PCPB口为输出口,工作在方式0
MOVX@DPTR,A
MOVDPTR,#0FF29H
MOVA,#49H
MOVX@DPTR,A
INCDPTR
MOVA,#49H
MOVX@DPTR,A;点亮四个红灯
MOVR2,#25H
LCALLDELAY;延时
HA4S3:
MOVDPTR,#0FF29H
MOVA,#08H
MOVX@DPTR,A
INCDPTR
MOVA,#61H
MOVX@DPTR,A;东西绿灯亮,南北红灯亮
MOVR2,#55H
LCALLDELAY;延时
MOVR7,#05H;黄灯闪烁次数为05H
HA4S1:
MOVDPTR,#0FF29H
MOVA,#04H
MOVX@DPTR,A
INCDPTR
MOVA,#51H;东西黄灯亮,南北红灯亮
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY;延时
MOVDPTR,#0FF29H
MOVA,#00H
MOVX@DPTR,A
INCDPTR
MOVA,#41H;南北红灯亮
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY;延时
DJNZR7,HA4S1;闪烁次数未到继续
MOVDPTR,#0FF29H
MOVA,#03H
MOVX@DPTR,A
INCDPTR
MOVA,#0CH;东西红灯亮,南北绿灯亮
MOVX@DPTR,A
MOVR2,#55H
LCALLDELAY;延时
MOVR7,#05H;置黄灯闪烁次数
HA4S2:
MOVDPTR,#0FF29H
MOVA,#02H
MOVX@DPTR,A
INCDPTR
MOVA,#8AH
MOVX@DPTR,A;东西绿灯亮,南北黄灯亮
MOVR2,#20H
LCALLDELAY;延时
MOVDPTR,#0FF29H
MOVA,#02H
MOVX@DPTR,A
INCDPTR
MOVA,#08H;东西绿灯亮
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY;延时
DJNZR7,HA4S2;闪烁次数未到继续
LJMPHA4S3;循环
DELAY:
PUSH02H;延时子程序
DELAY1:
PUSH02H
DELAY2:
PUSH02H
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
POP02H
DJNZR2,DELAY1
POP02H
DJNZR2,DELAY
RET
END
五、实验原理图
六、实验步骤
18255PC0—PC7、PB0—PB3依次接发光二极管L1—L12。
②以连续方式从0630H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。
延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
.
附:
实验位置图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术