1、单片机实验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转换器,速度快,价格也昂贵。
2、实验用ADC0809属第二类,是8位A/ D转换器。每采集一次一般需100s。由于ADC0809 A/ D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/ D转换结果。三、实验步骤 把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔(0-5V)。 0809的CLK插孔与分频输出端T4相连。 将W2的输入VIN接+12V插孔,+12V插孔再连到外置电源的+12上(电源内置时,该线已连好)。调节W2,使V REF 端为+5V。 将A/D区的VREF 连到W2的输出VREF 端。 EXIC1上插上74LS02芯片,将有关线
3、路按图连好。 将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。 ORG 06D0H ;?START: MOV A,#00H MOV DPTR,#9000H MOVX DPTR,A MOV A,#00H MOV SBUF,A
4、MOV SBUF,A MOVX A,DPTR DISP: MOV R0,A ANL A,#0FH LP: MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A MOV R7,#0FH H55S: DJNZ R7,H55S MOV A,R0 SWAP A ANL A,#0FH MOVC A,A+DPTR MOV SBUF,A MOV R7,#0FHH55S1: DJNZ R7,H55S1 LCALL DELAY AJMP STARTTAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h DB 0feh,0f6h,0eeh,3eh,9ch,
5、7ah,9eh,8eh DELAY:MOV R6,#0FFh DELY2:MOV R7,#0FFh DELY1:DJNZ R7,DELY1 DJNZ R6,DELY2 RETEND步进电机 ORG 0A30H ;?MONIT: MOV SP,#50H MOV 7EH,#00H MOV 7DH,#02H MOV R0,#7CH MOV A,#08H MOV R4,#04HMONIT1: MOV R0,A DEC R0 DJNZ R4,MONIT1 MOV A,#7EH MOV DPTR,#1FFFH ;DISPFLAG MOVX DPTR,A MOV 76H,#00H MOV 77H,#00HK
6、EYDISP0:LCALL KEY JC DATAKEY AJMP MONIT2DATAKEY:LCALL DATAKEY1 DB 79H,7EH SJMP KEYDISP0MONIT2: CJNE A,#16H,KEYDISP0 LCALL DISP MOV A,7AH ANL A,#0FH SWAP A ADD A,79H MOV R6,A MOV A,7CH ANL A,#0FH SWAP A ADD A,7BH MOV R7,A MOV A,7EH CJNE A,#00H,MONIT4MONIT3: MOV P1,#03H LCALL DELAY0 LCALL MONIT5 MOV P
7、1,#06H LCALL DELAY0 LCALL MONIT5 MOV P1,#0CH LCALL DELAY0 LCALL MONIT5 MOV P1,#09H LCALL DELAY0 LCALL MONIT5 SJMP MONIT3MONIT4: MOV P1,#09H LCALL DELAY0 LCALL MONIT5 MOV P1,#0CH LCALL DELAY0 LCALL MONIT5 MOV P1,#06H LCALL DELAY0 LCALL MONIT5 MOV P1,#03H LCALL DELAY0 LCALL MONIT5 SJMP MONIT4MONIT5: D
8、EC R6 CJNE R6,#0FFH,MONIT6 DEC R7 CJNE R7,#0FFH,MONIT6 LJMP MONITMONIT6: LCALL MONIT7 RETMONIT7: MOV R0,#79H MOV A,R6 LCALL MONIT8 MOV A,R7 LCALL MONIT8 LCALL DISP RETMONIT8: MOV R1,A ACALL MONIT9 MOV A,R1 SWAP AMONIT9: ANL A,#0FH MOV R0,A INC R0 RETDELAY0: MOV R0,#7DH MOV A,R0 SWAP A MOV R4,ADELAY1
9、: MOV R5,#80HDELAY2: DJNZ R5,DELAY2 LCALL DISP DJNZ R4,DELAY1 ;* RETDATAKEY1:MOV R4,A MOV DPTR,#1FFFH MOVX A,DPTR MOV R1,A MOV A,R4 MOV R1,A CLR A POP 83H POP 82H MOVC A,A+DPTR INC DPTR CJNE A,01H,DATAKEY3 DEC R1 CLR A MOVC A,A+DPTRDATAKEY2:PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX DPTR,A POP 83H POP 8
10、2H INC DPTR PUSH 82H PUSH 83H RETDATAKEY3:DEC R1 MOV A,R1 SJMP DATAKEY2KEY0: MOV R6,#20H MOV DPTR,#1FFFH MOVX A,DPTR MOV R0,A MOV A,R0 MOV R7,A MOV A,#10H MOV R0,AKEY3: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY3 MOV DPTR,#1FFFH ;* MOVX A,DPTR MOV R0,A ;* MOV A,R7 MOV R0,AKEY: MOV R6,#50HKEY1: LCALL KE
11、YDISP JNB 0E5H,KEY2 ;* DJNZ R6,KEY1 SJMP KEY0KEY2: MOV R6,A MOV A,R7 MOV R0,A MOV A,R6 ;A=KEYDATAKEYEND: RETKEYDISP:LCALL DISP LCALL KEYSM MOV R4,A ;KEYDATA MOV R1,#76H ;DATASAME TIME MOV A,R1 MOV R2,A INC R1 MOV A,R1 MOV R3,A ;LAST KEYDATA XRL A,R4 ;TWO TIME KEYDATA MOV R3,04H ;NEW KEYDATA-R3 MOV R
12、4,02H ;TIME-R4 JZ KEYDISP1 MOV R2,#88H MOV R4,#88HKEYDISP1:DEC R4 MOV A,R4 XRL A,#82H JZ KEYDISP2 MOV A,R4 ;R4=TIME XRL A,#0EH JZ KEYDISP2 MOV A,R4 ORL A,R4 JZ KEYDISP3 MOV R4,#20H ;R4=20H DEC R2 LJMP KEYDISP5KEYDISP3:MOV R4,#0FHKEYDISP2:MOV R2,04H MOV R4,03HKEYDISP5:MOV R1,#76H MOV A,R2 MOV R1,A IN
13、C R1 MOV A,R3 MOV R1,A MOV A,R4 ;* CJNE R3,#10H,KEYDISP4KEYDISP4:RETDISP: SETB 0D4H MOV R1,#7EH MOV R2,#20H MOV R3,#00HDISP1: MOV DPTR,#0FF21H MOV A,R2 MOVX DPTR,A MOV DPTR,#DATA1 MOV A,R1 MOVC A,A+DPTR MOV DPTR,#0FF22H MOVX DPTR,ADISP2: DJNZ R3,DISP2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A JNZ DISP1 M
14、OV A,#0FFH MOV DPTR,#0FF22H MOVX DPTR,A CLR 0D4H RETDATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHKEYSM: SETB 0D4H MOV A,#0FFH MOV DPTR,#0FF22H MOVX DPTR,A ;OFF DISPKEYSM0: MOV R2,#0FEH MOV R3,#08H MOV R0,#00HKEYSM1: MOV A,R2 MOV DPTR,#0FF21H MO
15、VX DPTR,A NOP RL A MOV R2,A MOV DPTR,#0FF23H MOVX A,DPTR CPL A NOP NOP NOP ANL A,#0FH JNZ KEYSM2 INC R0 ;NOKEY DJNZ R3,KEYSM1 SJMP KEYSM10KEYSM2: CPL A ;YKEY JB 0E0H,KEYSM3 MOV A,#00H SJMP KEYSM7KEYSM3: JB 0E1H,KEYSM4 MOV A,#08H SJMP KEYSM7KEYSM4: JB 0E2H,KEYSM5 MOV A,#10H SJMP KEYSM7KEYSM5: JB 0E3H
16、,KEYSM10 MOV A,#18HKEYSM7: ADD A,R0 CLR 0D4H CJNE A,#10H,KEYSM9KEYSM9: JNC KEYSM10 MOV DPTR,#DATA2 MOVC A,A+DPTRKEYSM10:RETDATA2: DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH END步 机 电 机 控 制 内 容一、实验内容 从键盘上输入正、反转命令,转速参数和转动步数显示在显示器上,CPU再读取显示器上显示的正、反转命令,转速级数(16级)和转动步数后执行。转动步数减为零
17、时停止转动。 二、实验预备知识 步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。 三、实验步骤 1 步进电机插头插到实验系统J3插座中,P1 0P1 3接到BABD插孔。 2 在“P.”状态下,从起始地址开始(0A30H)连续执行程序。输入起始地址后按EXEC键。 3 在键盘上输入数字在显示器上显示,第一位为0表示正转,为1表示反转,第二位0F为转速等级,第三到第六位设定步数,设定完按EXEC键,步进电机开始旋转。步 机 电 机 控 制 目 的 1 了解步进电机控制的基本原理。 2 掌握步进电机转动编程方法。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1