单片机实验教案_单片机实验实例

教案模板 时间:2020-02-27 03:57:45 收藏本文下载本文
【www.daodoc.com - 教案模板】

单片机实验教案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机实验实例”。

单片机技术实验

实验一(1)顺序结构程序设计

一、实验目的掌握汇编语言设计和调试方法。熟悉KeilC和Protus仿真软件的使用。

二、实验内容

1、电路如图一所示。将A的内容通过P2口送LED发光二极管显示。

2、修改程序,实现跑马灯的显示效果。

四、实验步骤

1、在计算机某个硬盘中建立项目文件夹。例如“shiyan1”或者“ex1”。

2、启动KEILC程序。

3、打开主菜单中的“project”下的“new project”建立新的项目。按照要求输入项目文件名,例如“shiyan1.prj”。注意:项目应该建立在第一部的文件夹中。

4、打开主菜单中的“file”下的“new file”,建立新的汇编语言文件。录入程序,并将文件命名为“ex1.asm”,存入项目文件夹中。

5、将第四步建立的文件加入到项目中。

6、编译项目文件,查错。

7、启动protus软件,将电路图一输入计算机,并存到项目文件夹中。

8、在protus软件中,使用鼠标左键双击,将第六步编译后所产生的“shiyan1.hex”文件写入到单片机中。

9、在protus软件中运行程序。

10、将A中的内容修改为“0AAH”,重新编译程序,并运行,观察结果。

五、思考

如何用断点方式调试本程序。

ORG 0000H

LJMP START

ORG 0030H START: MOV A,#55H

MOV P1,A

SJMP $ END

实验一(2)循环结构程序设计

一、实验目的熟悉MCS-51指令系统,掌握程序设计方法。

二、实验内容

编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。

三、程序框图

四、实验步骤

1、LED环境

⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。⑵对片内RAM地址50h~5AH进行不规则置数。

⑶在“P.”状态下键入0000,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

2、PC环境

在与PC联机状态下,编译、连接、下载PH51se05.asm,用连续或单步方式运行程序。

3、运行结果检查

⑴在单步运行时每走一步可观察其运行结果。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查片内50~5Ah中内容是否按从小到大排列。

五、思考:修改程序把50~5Ah中内容按从小到大排列。

ORG 0000H LJMP START ORG 0030H

START:

MOV R7,#09H MOV R6,#00H;清除标志 CLR C MOV A,@R0 INC R0 SUBB A,@R0 JC LOOP1 MOV R6,#01H DEC R0 MOV A,@R0 INC R0 XCH A,@R0 MOV @R0,A DJNZ R7,START1 CJNE R6,#00H,START SJMP $ END

MOV R0,#50H START1:

DEC R0

INC R0 LOOP1:

实验一(3)选择结构程序设计

一、实验目的掌握汇编语言的编程。

二、实验内容

编写程序,根据送入的数据转移运行。

三、程序框图

四、实验步骤

ORG 0000H

LJMP START

ORG 0030H START: MOV 20H,#00H MOV A,20H

MOV B,#03H

MUL AB

MOV DPTR,#TAB

JMP @A+DPTR

SJMP $ ORG 3000H TAB:

LOOPA: MOV A,#01H LOOPA1:

LOOPB: MOV A,#03H LOOPB1:

LOOPC: MOV A,#07H LOOPC1:

DELAY1S: DELAY1S3: DELAY1S2: DELAY1S1:

LJMP LOOPA LJMP LOOPB LJMP LOOPC MOV P1,A LCALL DELAY1S RL A LJMP LOOPA1 MOV P1,A LCALL DELAY1S RL A LJMP LOOPB1 MOV P1,A LCALL DELAY1S RL A LJMP LOOPC1 MOV R7,#5 MOV R6,#200 MOV R5,#250 DJNZ R5,DELAY1S1 DJNZ R6,DELAY1S2 DJNZ R7,DELAY1S3 RET END

实验二 中断实验

一、实验目的熟悉单片机中断概念及中断编程方法。

二、实验内容

编写程序,从P3.3输入脉冲,记录输入脉冲个数,并用P1口外部链接的发光二极管显示计数结果。

二、参考程序

ORG 0000H

LJMP START

ORG 0013H

LJMP INT1_COUNT

ORG 0030H START:

MOV SP,#60H

MOV A,#00H

SETB IT1;下降边沿触发方式

SETB EX1;开启INT1中断

SETB EA

SJMP $ INT1_COUNT:

INC A

MOV P1,A

RETI

END

实验三 LED显示实验

一、实验要求

利用实验系统提供的显示设备,动态显示一行数据。

二、实验目的⑴了解数码管动态显示的原理; ⑵了解用总线方式控制数码管显示。

三、实验说明

UN2003芯片,是7个带驱动的反相器。8个数码管均为共阴极接法。

四、程序框图

汇编语言参考程序:

ORG 0000H LJMP START ORG 0030H START: MOV SP,#60H MOV 50H,#8CH;显示字符P.MOV 51H,#40H MOV 52H,#79H MOV 53H,#24H MOV 54H,#30H MOV 55H,#19H MOV 56H,#12H MOV 57H,#02H

LOOP1: LCALL DISPLAY

LJMP LOOP1

DISPLAY: MOV P2,#0FH MOV P0,50H LCALL DELAY20MS

MOV P2,#1FH MOV P0,51H LCALL DELAY20MS

MOV P2,#2FH MOV P0,52H LCALL DELAY20MS

MOV P2,#3FH MOV P0,53H LCALL DELAY20MS

MOV P2,#4FH MOV P0,54H LCALL DELAY20MS

MOV P2,#5FH MOV P0,55H LCALL DELAY20MS

MOV P2,#6FH MOV P0,56H LCALL DELAY20MS

MOV P2,#7FH MOV P0,57H LCALL DELAY20MS

LJMP DISPLAY

DELAY20MS: MOV R7,#20 DELAY1: MOV R6,#100 DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET

TAB: DB 40H,79H,24H,30H,19H,12H,02H;0 1 2 3 4 5 6 DB 78H,00H,10H,08H,03H,46H,21H,06H,0EH;7 8 9 A B C D E F的字符码

TAB1: DB 8CH;P.TAB2: DB 7FH;END 的字符码的字符码

空,不显示的字符

键盘电路实验

电路图:

程序:

;用int1中断实现按键功能,键值存放在4fh单元中;通过P1口输出按键值,用发光二极管显示按键值;通过P2.4--P2.6和三八译码器输出八列按键扫描码;通过P2.0---P2.3读入按键的行值;行列值组合,就是按键的键值 ORG 0000H LJMP START ORG 0013H LJMP key_value ORG 0030H START: MOV 4fH,#00h;存放按键键值单元 MOV P1,#00H MOV P2,#0FFH setb ex1 setb it1 setb ea KEY_SCAN: MOV P2,#0FH LCALL DELAY5MS

MOV P2,#1FH LCALL DELAY5MS

MOV P2,#2FH

LCALL DELAY5MS

MOV P2,#3FH LCALL DELAY5MS

MOV P2,#4FH LCALL DELAY5MS

MOV P2,#5FH LCALL DELAY5MS

MOV P2,#6FH LCALL DELAY5MS

MOV P2,#7FH LCALL DELAY5MS

LJMP KEY_SCAN

DELAY5MS: MOV R7,#40 DELAY1: MOV R6,#100 DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET

KEY_VALUE: PUSH ACC PUSH PSW MOV A,P2 MOV 4FH,A MOV P1,A POP PSW POP ACC RETI END

LED和键盘综合实验

电路图:

参考程序:

ORG 0000H LJMP START ORG 0013H LJMP KEY_VALUE ORG 0030H START: MOV SP,#60H

MOV 4fH,#00h;存放按键键值单元 MOV P2,#0FFH setb ex1 setb it1 setb ea

MOV 50H,#0CH;显示字符P.MOV 51H,#0CH MOV 52H,#7FH MOV 53H,#7FH MOV 54H,#7FH MOV 55H,#7FH MOV 56H,#7FH

MOV 57H,#0CH

LOOP1: LCALL DISPLAY

LJMP LOOP1

DISPLAY: MOV P2,#0FH MOV P0,50H LCALL DELAY20MS

MOV P2,#1FH MOV P0,51H LCALL DELAY20MS

MOV P2,#2FH MOV P0,52H LCALL DELAY20MS

MOV P2,#3FH MOV P0,53H LCALL DELAY20MS

MOV P2,#4FH MOV P0,54H LCALL DELAY20MS

MOV P2,#5FH MOV P0,55H LCALL DELAY20MS

MOV P2,#6FH MOV P0,56H LCALL DELAY20MS

MOV P2,#7FH MOV P0,57H LCALL DELAY20MS

LJMP DISPLAY

DELAY20MS: MOV R7,#20 DELAY1: MOV R6,#100 DELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1

RET

KEY_VALUE: PUSH ACC PUSH PSW MOV 4FH,P2 LCALL KEY_VALUE_DISP POP PSW POP ACC RETI

KEY_VALUE_DISP: MOV A,4FH ANL A,#0F0H SWAP A MOV DPTR,#TAB MOVC A,@A+DPTR MOV 56H,A MOV A,4FH ANL A,#0FH MOVC A,@A+DPTR MOV 57H,A RET

TAB: DB 40H,79H,24H,30H,19H,12H,02H;0 1 2 3 4 5 6的字符码 DB 78H,00H,10H,08H,03H,46H,21H,06H,0EH;7 8 9 A B C D E F的字符码

TAB1: DB 8CH;P.的字符码

TAB2: DB 7FH;空,不显示的字符 END

实验四 A/D转换实验

一、实验目的(1)掌握A/D转换与单片机接口的方法;(2)了解A/D芯片0809转换性能及编程方法;(3)通过实验了解单片机如何进行数据采集。

二、实验内容

利用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。

三、程序框图

四、实验电路

五、实验步骤

把0809的零通道INT0用插针接至AINl孔,0809CS位FFE0孔,运行程序,数码管显示0809.XX,后二位显示当前采集的电压转换的数字量,调节W1,该二位将随着电压变化而相应变化。

六、思考

修改程序,用其它通道轮流采样显示。

实验五 电脑时钟(定时器、中断综合实验)

一、实验目的熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。

二、实验内容

编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

三、程序框图

四、实验步骤

连续运行程序,在键盘上输入时间初值,按执行键EXEC执行,数码管上实时显示时间值。

五、思考

(1)电子钟走时精度和程序中那些常数有关?

(2)修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。

六、参考程序

ORG 0000H LJMP START ORG 000BH LJMP T0_INT ORG 0030H START: MOV 50H,#00H;时的低位字符码 MOV 51H,#00H;时的高位字符码 MOV 52H,#00H;“-”的字符码 MOV 53H,#00H;分的低位字符码 MOV 54H,#00H;分的高位字符码 MOV 55H,#00H;“-”的字符码 MOV 56H,#00H;秒的低位字符码 MOV 57H,#00H;秒的高位字符码 MOV 5FH,#00H;存放小时的单元 MOV 5EH,#00H;存放分钟的单元 MOV 5DH,#00H;存放秒的单元 MOV 5CH,#00H;存放T0中断次数,50次为1秒

MOV SP,#60H;设置堆栈栈顶 MOV TH0,#???;设置T0定时器初值 MOV TL0,#??? MOV TMOD,#00000001H;T0工作在定时方式,工作方式0

SETB ET0;开放T0中断 SETB EA;开放总中断 SETB TR0;启动定时器T0 LOOP: mov P2,#11111110H MOV R0,#50H loop1: MOV R7,#08H LOOP2: MOV A,@R0 MOV P1,A LCALL DELAY INC R0 MOV A,P2 RL A MOV P2,A

DJNZ R7, LOOP2 LJMP LOOP SJMP $

DELAY: MOV R6,#2;延时程序 DELAY1: MOV R5,#10 DELAY2: MOV R4,#100 DELAY3: DJNZ R4,DELAY3 DJNZ R5,DELAY2 DJNZ R6,DELAY1 RET 16

T0_INT: CLR TR0 PUSH ACC MOV A,5CH CJNE A,#50H,T0_INT1 MOV 5CH,#00H MOV A,5DH CJNE A,#59H,T0_INT2 MOV 5DH,#00H MOV A,5EH CJNE A,#59H,T0_INT3 MOV 5EH,#00H MOV A,5FH CJNE A,#23H,T0_INT4 MOV 5FH,#00H LJMP T0_END T0_INT1: INC 5CH LJMP T0_END T0_INT2: INC 5DH LJMP T0_END T0_INT3: INC 5EH LJMP T0_END T0_INT4: INC 5FH T0_END: MOV A,5FH

MOV B,#10 DIV AB MOV 51H,A MOV A,B MOV 50H,A MOV A,5EH MOV B,#10 DIV AB MOV 54H,A MOV A,B MOV 53H,A MOV A,5DH MOV B,#10 DIV AB MOV 57H,A MOV A,B MOV 56H,A POP ACC

MOV TH0,#??? MOV TL0,#??? SETB TR0 RETI

实验六 LCD液晶显示屏实验

一、实验目的⑴掌握单片机扩展液晶显示接口的设计与编程。⑵利用字符式液晶显示器显示字符。

二、实验内容

编制程序,在液晶显示器上显示:

学生所在的院系的汉语拼音字母和学生的名字。分两行显示。

三、实验电路

四、参考程序

DAT1 EQU 30H;第一参数单元 DAT2 EQU 31H;第二参数单元 COM EQU 32H;指令代码单元 C_ADD EQU 0100H;指令通道地址 D_ADD EQU 0000H;数据通道地址

org 0000h ljmp main org 0030h;主程序

MAIN: MOV SP,#60H;

lcall delay;上电延时

LCALL INT;初始化

LCALL CLEAR;清缓冲区

TEST: LCALL hgnu_disp;显示“WELCOM TO HGNU” LCALL PL_XW_ZKB;显示 “P_L :”

“X_W :”

“ZKB:” sjmp test

;上电延时子程序

delay: MOV R6,#50H;MOV R7,#00H;DELY1: NOP

DJNZ R7,DELY1;上电延时

DJNZ R6,DELY1;ret;读状态字子程序

R_ST: MOV DPTR,#C_ADD;设置指令通道

MOVX A,@DPTR;RET;判断状态位STA1,STA0子程序(读写指令和数据),在指令的读,写

;数据之前这两个标志必须同时为“1” ST01: LCALL R_ST;JNB ACC.0,ST01;JNB ACC.1,ST01;RET;判断状位STA2子程序(数据自动读状态),该位

;在数据自动操作过程中取代STA0和STA1有效。在连续读过程中每读一次;之前都要确认STA2=1 ST2: LCALL R_ST;JNB ACC.2,ST2;RET;判断STA3子程序(数据自动写状态)ST3: LCALL R_ST;JNB ACC.3,ST3;RET;判断状态位STA6子程序(屏读/屏拷贝状态)ST6: LCALL R_ST;JB ACC.6,ERR;RET ERR: LJMP ST6;;出错处理

;写指令和写数据子程序..;双字节参数指令写入入口

PR1: LCALL ST01;判断状态位STA1,STA0 MOV A,DAT1;取第一参数单元数据

LCALL PR13;写入参数;单字节参数指令写入入口

PR11: LCALL ST01;判断状态位STA1,STA0 MOV A,DAT2;取第二参数单元数据

LCALL PR13;写入参数;无参数指令写入入口

PR12: LCALL ST01;无参数指令写入入口

MOV A,COM;取指令代码单元数据

MOV DPTR,#c_ADD;设置指令通道地址/数据写入入口

LJMP PR14;写入指令代码

PR13: MOV DPTR,#D_ADD;设置数据通道地址/数据写入入口 PR14: MOVX @DPTR,A;写入操作

RET;读数据子程序 PR2: LCALL ST01;判断状态位

MOV DPTR,#D_ADD;设置数据通道地址

MOVX A,@DPTR;读数据操作

MOV DAT2,A;数据存入第二参数/数据单元

RET;初始化子程序

INT:

;显示区域设置

MOV DAT1,#00H;设置文本显示区首地址

MOV DAT2,#00h;

MOV COM,#40H;LCALL PR1;双字节参数指令写入入口

MOV DAT1,#16;设置文本显示区域宽度

MOV DAT2,#00H;即一行显示所占字节数

MOV COM,#41H;LCALL PR1;双字节参数指令写入入口

MOV DAT1,#00H;设置显示区域首地址

MOV DAT2,#00H;或文本属性区域首地址

MOV COM,#42H;LCALL PR1;双字节参数指令写入入口

MOV DAT1,#10H;设置图形显示区域宽度

MOV DAT2,#00H;或为文本属性区域狂宽度

MOV COM,#43H;即一行显示所占字节数

LCALL PR1;双字节参数指令写入入口

;显示光标设置

MOV COM,#0A1H;光标形状设置

LCALL PR12;

;设置光标初始位置,是字符行和字符列,第0行第15列

MOV DAT1,#0;光标行位置

MOV DAT2,#0;光标列位置

MOV COM,#21H;LCALL PR1;双字节参数指令写入入口

;显示方式设置,使用内部字符发生器

MOV COM,#80H;显示方式设置,逻辑“或”合成LCALL PR12;无参数指令写入入口+

;显示开关方式

MOV COM,#97H;仅用文本显示

LCALL PR12;无参数指令写入入口

RET

;写数据子程序,8*8点阵

;R6中装入显示位置的列数(字符的个数),每行16个字符,R7中装入显示位置距左上角的字符行数

;5FH单元中装入待显示的字符码

DISP: mov b,r7

mov a,#16 mul ab mov r7,a CLR C mov a,R6

ADD A,R7 MOV R6,A;R7*16+R6

MOV DAT1,R6;设置显示RAM首地址,水平方向字符数

MOV DAT2,#00H;固定送00H MOV COM,#24H;地址指针指令

LCALL PR1;MOV

dat2,5fH;取要显示的字符

MOV COM,#0c4H;数据写,地址不变

LCALL PR11;写入数据

RET;清显示缓冲区(16*8单元)clear: MOV 5FH,#00H

MOV R5,#0 CLEAR0: MOV R4,#0 CLEAR1: MOV A,R5

MOV R7,A MOV A,R4 MOV R6,A CLEAR2: LCALL DISP

INC R4 CJNE R4,#16,CLEAR1

mov r4,#00h

INC R5

CJNE R5,#8,CLEAR0 CLEAR9: RET;显示频率、相位、占空比、相位差等字符。(P_L :;PL_XW_ZKB:MOV R7,#3 MOV R6,#0 MOV

5fh,#30H;“P” LCALL DISP MOV R7,#3 MOV R6,#1 MOV

5fh,#3FH;“_” LCALL DISP MOV R7,#3 MOV R6,#2 MOV

5fh,#2CH;“L”

X_W :

ZKB:)

LCALL DISP MOV R7,#3 MOV R6,#3 MOV

5fh,#1AH;“: ” LCALL DISP

MOV R7,#5 MOV R6,#0 MOV

5fh,#38H;“X” LCALL DISP MOV R7,#5 MOV R6,#1 MOV

5fh,#3FH;“_” LCALL DISP MOV R7,#5 MOV R6,#2 MOV

5fh,#37H;“W” LCALL DISP MOV R7,#5 MOV R6,#3 MOV

5fh,#1AH;“: ” LCALL DISP

MOV R7,#7 MOV R6,#0 MOV

5fh,#3AH;“Z” LCALL DISP MOV R7,#7 MOV R6,#1 MOV

5fh,#2BH;“K” LCALL DISP MOV R7,#7 MOV R6,#2 MOV

5fh,#22H;“B ” LCALL DISP MOV R7,#7 MOV R6,#3 MOV

5fh,#1AH;“: ” LCALL DISP RET;顶行显示“黄冈师院物科院“的英文名称。;”welcome to hgnu!“ hgnu_DISP:

MOV R7,#0;显示位置的行列数

MOV R6,#0 MOV

5fh,#37H;”W“ LCALL DISP MOV R7,#0 MOV R6,#1 MOV

5fh,#25H;”E“ LCALL DISP MOV R7,#0 MOV R6,#2 MOV

5fh,#2CH;”L“ LCALL DISP MOV R7,#0 MOV R6,#3 MOV

5fh,#23H;”C“ LCALL DISP MOV R7,#0 MOV R6,#4 MOV

5fh,#2FH;”0“ LCALL DISP MOV R7,#0 MOV R6,#5 MOV

5fh,#2DH;”M“ LCALL DISP MOV R7,#0 MOV R6,#6 MOV

5fh,#25H;”E“ LCALL DISP MOV R7,#0 MOV R6,#7 MOV

5fh,#00H;” “ LCALL DISP MOV R7,#0 MOV R6,#8 MOV

5fh,#34H;”T“ LCALL DISP MOV R7,#0 MOV R6,#9 MOV

5fh,#2FH;”O“ LCALL DISP MOV R7,#0 MOV R6,#10 MOV

5fh,#00H;” “ LCALL DISP MOV R7,#0 MOV R6,#11 MOV

5fh,#28H;”H“ LCALL DISP

MOV R7,#0 MOV R6,#12 MOV

5fh,#27H;”G“ LCALL DISP MOV R7,#0 MOV R6,#13 MOV

5fh,#2EH;”N“ LCALL DISP MOV R7,#0 MOV R6,#14 MOV

5fh,#35H;”U“ LCALL DISP RET tab: db 10h,11h,12h,13h,14h,15h,16h,17h,18h,19h;”0-----9“

db 21h,22h,23h,24h,25h,26h;”A-----F“ end

实验七 直流电机转速测量与控制实验

一、实验目的1.掌握直流电机的驱动原理。2.了解直流电机调速的方法。

二、实验内容

1.用0832 D/A转换电路后的输出经放大后驱动直流电机。

2.编制程序改变0832输出经放大后的方波信号的占空比来控制电机转速。本实验中 D/A输出为双极性输出,因此电机可以正反向旋转。

三、程序流程

三、实验电路

五、参考程序

DATA_TH0 EQU 00H DATA_TL0 EQU 00H;信号周期为130ms DATA_TH1 EQU 20H DATA_TL1 EQU 00H;高电平时间65ms ORG 0000H LJMP MAIN ORG 0003H LJMP INT_0;启动电机按键

ORG 000BH LJMP T_0;T0确定输出信号的周期(或者频率)

ORG 0013H LJMP INT_1;电机转动方向控制按键

ORG 001BH LJMP T_1;T1确定输出信号高电平的时间期

ORG 0030H MAIN: MOV SP,#60H CLR P1.0 CLR P1.1;关闭电机

setb 20h.0;初始化电机正转

clr 20h.1;初始状态时,电机停止转动

MOV TMOD,#11H SETB IT0 SETB EX0 SETB IT1 SETB EX1 SETB ET0 SETB ET1 SETB EA

SJMP $

T_0: JNB 20H.1,T_01;

MOV TH1,#DATA_TH1

MOV TL1,#DATA_TL1 SETB TR1

MOV TH0,#DATA_TH0

MOV TL0,#DATA_TL0

SETB TR0

JNB 20H.0,T_02

setb P1.0

clr P1.1

LJMP T_05 T_02: clr P1.0

setb P1.1

LJMP T_05

T_01: CLR P1.0

CLR P1.1

CLR TR0

CLR TR1 T_05: RETI T_1: CLR TR1

clr p1.0

clr p1.1

RETI int_1: CPL 20H.1;电机启动标志求反,开启电机或者关闭电机

JNB 20H.1,INT_11;启动标志不为1,则停止电机,关闭定时器

MOV TH1,#DATA_TH1;启动标志为1,则开启定时器1和定时器2,输出PWM波

MOV TL1,#DATA_TL1 SETB TR1

MOV TH0,#DATA_TH0

MOV TL0,#DATA_TL0

SETB TR0

JNB 20H.0,INT_12;转动方向标志不为1,则反转,否则正转

setb P1.0

clr P1.1

LJMP INT_19 INT_12: clr P1.0

setb P1.1

LJMP INT_19 INT_11: CLR P1.0

CLR P1.1

CLR TR0

CLR TR1 INT_19: RETI 26

INT_0: CPL 20H.0 RETI END

实验八 步进电机控制实验

一、实验目的1.了解步进电机控制的基本原理。2.掌握步进电机转动编程方法。

二、实验内容

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

三、实验电路图

四、参考程序

ORG 0000H

ljmp main ORG 000BH LJMP COUNT0

ORG 001BH LJMP COUNT1 ORG 0100H MAIN: MOV P0,#0FFH;输送脉冲口,SETB P1.2;MOV R0,#1;延时变化变量 LOOP1: MOV P0,#0FCH LCALL DELAY MOV P0,#0F6H LCALL DELAY MOV P0,#0F3H LCALL DELAY MOV P0,#0F9H LCALL DELAY JNB P1.2,LOOP2 MOV TMOD,#01010101B MOV TH0,#0FFH MOV TL0,#0FFH MOV TH1,#0FFH MOV TL1,#0FFH SETB TR0 SETB TR1 SETB ET0 SETB ET1 SETB EA MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR MOV P2,A JMP LOOP1 LOOP2: MOV P0,#0FCH LCALL DELAY MOV P0,#0F9H LCALL DELAY MOV P0,#0F3H LCALL DELAY MOV P0,#0F6H LCALL DELAY JB P1.2,LOOP1 MOV TMOD,#01010101B MOV TH0,#0FFH MOV TL0,#0FFH MOV TH1,#0FFH MOV TL1,#0FFH 28

SETB TR0 SETB TR1 SETB ET0 SETB ET1 SETB EA MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR MOV P2,A JMP LOOP2 SJMP $ COUNT0: MOV TH0,#0FFH;减速中断 MOV TL0,#0FFH CJNE R0,#9,L4 JMP L5 L4: INC R0

L5: setb TR0 RETI COUNT1: MOV TH1,#0FFH;加速中断 MOV TL1,#0FFH CJNE R0,#1,L6 JMP L7 L6: DEC R0 L7: setb TR1 RETI DELAY: MOV A,R0;延时 MOV R1,A L1: MOV R2,#50 L2: MOV R3,#250 L3: DJNZ R3,L3 DJNZ R2,L2 DJNZ R1,L1 RET TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;显示程序查表,共阴 END

单片机实验教案

单片机技术实验教案冯杰1 实验一(1) 顺序结构程序设计一、实验目的掌握汇编语言设计和调试方法。二、实验内容把外部RAM中2000h单元的内容拆开,高位送2001h单元,低位送2002h单......

单片机实验教案

实验一 集成开发环境keil c51的使用与调试Keil C51 u Vision2 是德国Keil公司开发的基于Windows环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强......

单片机实验教案

实验一数据传送一、实验目的1、熟悉单片机指令系统,掌握单片机循环程序设计方法2、掌握单片机数据排序方法. 二.实验内容:预先向单片机内部RAM 50H 开始填入一批数据,以00H......

单片机实验

实验一清0、移数将片内20H~2FH及片外0010H~001FH单元清0;然后将片内30H~3FH的数据移到片外0000H~000FH中;判断:若(30H)≤10,则求其平方存到31H中,并将位00H置1(其它位清0) 若(30H)=10,......

单片机实验

实验一、MCS51单片机基本开发环境1. 实验目的:1) 熟悉软件的集成开发环境 2) 掌握单片机软件设计流程3) 掌握单片机存贮器结构及各窗口之间的联系 2. 实验内容:1) 用三种方法实......

下载单片机实验教案word格式文档
下载单片机实验教案.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文