单片机实验.docx

上传人:b****8 文档编号:9308875 上传时间:2023-02-04 格式:DOCX 页数:16 大小:320.32KB
下载 相关 举报
单片机实验.docx_第1页
第1页 / 共16页
单片机实验.docx_第2页
第2页 / 共16页
单片机实验.docx_第3页
第3页 / 共16页
单片机实验.docx_第4页
第4页 / 共16页
单片机实验.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机实验.docx

《单片机实验.docx》由会员分享,可在线阅读,更多相关《单片机实验.docx(16页珍藏版)》请在冰豆网上搜索。

单片机实验.docx

单片机实验

A/D转换0809应用目的

1掌握A/D转换与单片机的接口方法。

2了解A/D芯片0809转换性能及编程方法。

3通过实验了解单片机如何进行数据采集。

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

步进电机

ORG0A30H;?

MONIT:

MOVSP,#50H

MOV7EH,#00H

MOV7DH,#02H

MOVR0,#7CH

MOVA,#08H

MOVR4,#04H

MONIT1:

MOV@R0,A

DECR0

DJNZR4,MONIT1

MOVA,#7EH

MOVDPTR,#1FFFH;DISPFLAG

MOVX@DPTR,A

MOV76H,#00H

MOV77H,#00H

KEYDISP0:

LCALLKEY

JCDATAKEY

AJMPMONIT2

DATAKEY:

LCALLDATAKEY1

DB79H,7EH

SJMPKEYDISP0

MONIT2:

CJNEA,#16H,KEYDISP0

LCALLDISP

MOVA,7AH

ANLA,#0FH

SWAPA

ADDA,79H

MOVR6,A

MOVA,7CH

ANLA,#0FH

SWAPA

ADDA,7BH

MOVR7,A

MOVA,7EH

CJNEA,#00H,MONIT4

MONIT3:

MOVP1,#03H

LCALLDELAY0

LCALLMONIT5

MOVP1,#06H

LCALLDELAY0

LCALLMONIT5

MOVP1,#0CH

LCALLDELAY0

LCALLMONIT5

MOVP1,#09H

LCALLDELAY0

LCALLMONIT5

SJMPMONIT3

MONIT4:

MOVP1,#09H

LCALLDELAY0

LCALLMONIT5

MOVP1,#0CH

LCALLDELAY0

LCALLMONIT5

MOVP1,#06H

LCALLDELAY0

LCALLMONIT5

MOVP1,#03H

LCALLDELAY0

LCALLMONIT5

SJMPMONIT4

MONIT5:

DECR6

CJNER6,#0FFH,MONIT6

DECR7

CJNER7,#0FFH,MONIT6

LJMPMONIT

MONIT6:

LCALLMONIT7

RET

MONIT7:

MOVR0,#79H

MOVA,R6

LCALLMONIT8

MOVA,R7

LCALLMONIT8

LCALLDISP

RET

MONIT8:

MOVR1,A

ACALLMONIT9

MOVA,R1

SWAPA

MONIT9:

ANLA,#0FH

MOV@R0,A

INCR0

RET

DELAY0:

MOVR0,#7DH

MOVA,@R0

SWAPA

MOVR4,A

DELAY1:

MOVR5,#80H

DELAY2:

DJNZR5,DELAY2

LCALLDISP

DJNZR4,DELAY1;***

RET

DATAKEY1:

MOVR4,A

MOVDPTR,#1FFFH

MOVXA,@DPTR

MOVR1,A

MOVA,R4

MOV@R1,A

CLRA

POP83H

POP82H

MOVCA,@A+DPTR

INCDPTR

CJNEA,01H,DATAKEY3

DECR1

CLRA

MOVCA,@A+DPTR

DATAKEY2:

PUSH82H

PUSH83H

MOVDPTR,#1FFFH

MOVX@DPTR,A

POP83H

POP82H

INCDPTR

PUSH82H

PUSH83H

RET

DATAKEY3:

DECR1

MOVA,R1

SJMPDATAKEY2

KEY0:

MOVR6,#20H

MOVDPTR,#1FFFH

MOVXA,@DPTR

MOVR0,A

MOVA,@R0

MOVR7,A

MOVA,#10H

MOV@R0,A

KEY3:

LCALLKEYDISP

JNB0E5H,KEY2

DJNZR6,KEY3

MOVDPTR,#1FFFH;***

MOVXA,@DPTR

MOVR0,A;***

MOVA,R7

MOV@R0,A

KEY:

MOVR6,#50H

KEY1:

LCALLKEYDISP

JNB0E5H,KEY2;***

DJNZR6,KEY1

SJMPKEY0

KEY2:

MOVR6,A

MOVA,R7

MOV@R0,A

MOVA,R6;A=KEYDATA

KEYEND:

RET

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,#0FF21H

MOVA,R2

MOVX@DPTR,A

MOVDPTR,#DATA1

MOVA,@R1

MOVCA,@A+DPTR

MOVDPTR,#0FF22H

MOVX@DPTR,A

DISP2:

DJNZR3,DISP2

DECR1

CLRC

MOVA,R2

RRCA

MOVR2,A

JNZDISP1

MOVA,#0FFH

MOVDPTR,#0FF22H

MOVX@DPTR,A

CLR0D4H

RET

DATA1:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,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:

CPLA;YKEY

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,#DATA2

MOVCA,@A+DPTR

KEYSM10:

RET

DATA2:

DB07H,04H,08H,05H,09H,06H,0AH,0BH

DB01H,00H,02H,0FH,03H,0EH,0CH,0DH

END

步机电机控制内容

一、实验内容

从键盘上输入正、反转命令,转速参数和转动步数显示在显示器上,CPU再读取显示器上显示的正、反转命令,转速级数(16级)和转动步数后执行。

转动步数减为零时停止转动。

二、实验预备知识

步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。

三、实验步骤

1步进电机插头插到实验系统J3插座中,P10—P13接到BA—BD插孔。

2在“P.”状态下,从起始地址开始(0A30H)连续执行程序。

输入起始地址后按EXEC键。

3在键盘上输入数字在显示器上显示,第一位为0表示正转,为1表示反转,第二位0—F为转速等级,第三到第六位设定步数,设定完按EXEC键,步进电机开始旋转。

步机电机控制目的

1了解步进电机控制的基本原理。

2掌握步进电机转动编程方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1