文档库 最新最全的文档下载
当前位置:文档库 › 单片机实验指导

单片机实验指导

单片机实验指导
单片机实验指导

51系列单片机

原理与应用实验

实验1 简单汇编语言实验

一、实验目的:掌握汇编语言设计和调试方法,熟悉键盘操作。熟悉汇编语言编程。

二、实验内容:

1.查找相同数据个数:在2000H~200FH的N个单元中填入零,运行本程序后检查2100H中是否为N;

2.清零:把2000H~20FFH的内容清零。

三、实验程序框图:

查找相同数据个数程序实验框图清零程序框图

四、实验步骤:

1、在2000H~200FH的几个单元中填入零,运行查找相同数据个数程序后检查2100H中是否是几个单元数。

2、用连续或单步方式运行清零程序,检查2000~20FF中执行程序前后的内容变化。

五.思考:

1、修改程序,查找其它内容。

2、修改清零程序,假使把2000H~20FFH中的内容改成FF,如何修改程序。

1/ 查找相同数据个数程序程序清单:

ORG 0000H

LJMP L5800

ORG 0AA0H

L5800: MOV R0,#10H ;查找16个字节

MOV R1,#00H

MOV DPTR,#2000H

L5811: MOVX A,@DPTR

CJNE A,#00H,L5816 ;取出内容与00H相等吗?

INC R1 ;取出个数加1

L5816: INC DPTR

DJNZ R0,L5811 ;未完继续

MOV DPTR,#2100H

MOV A,R1

MOVX @DPTR,A ;相同数的个数送2100H

L581E: SJMP L581E

END

2/ 清零程序清单:

ORG 0000H

LJMP SE01

ORG 0640H

SE01: MOV R0,#00H

MOV DPTR,#2000H ;(0000H)送DPTR

LOO1: CLR A

MOVX @DPTR,A ;0送(DPTR)

INC DPTR ;DPTR+1

INC R0 ;字节数加1

CJNE R0,#00H,LOO1 ;不到FF个字节再清

LOOP: SJMP LOOP

END

实验2 拆字和拼字程序

一、实验目的:掌握汇编语言设计和调试方法。

二、实验内容:

1、把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用;

2、把2000H.2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一字节。

三、实验程序框图:

拆字程序框图拼字程序框图

四、实验步骤:用连续或单步方式运行程序,检查2000H~2002H中内容变化情况。

五、思考:如何用断点方式调试本程序。

1/拆字程序清单:

ORG 0000H

LJMP SE02

ORG 0660H

SE02: MOV DPTR,#2000H

MOVX A,@DPTR

MOV B,A ;(2000)→A→B

SW AP A ;交换

ANL A,#0FH ;屏蔽高位

INC DPTR

MOVX @DPTR,A ;送2001H

INC DPTR

MOV A,B

ANL A,#0FH ;(2000)内容屏蔽高位

MOVX @DPTR,A ;送2002H

LOOP: SJMP LOOP

END

2/拼字程序清单:

ORG 0000H

LJMP START

ORG 0680H

START: MOV DPTR,#2000H

MOVX A,@DPTR

ANL A,#0FH ;(2000H)内容屏蔽高位

SW AP A ;交换

MOV B,A ;保存

INC DPTR

MOVX A,@DPTR ;(2000H)内容送A

ANL A,#0FH ;屏蔽高位

ORL A,B ;或

INC DPTR

MOVX @DPTR,A ;送2002H

SJMP $

END

实验3 数据排序实验

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

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

三、程序框图:

开始

清标志位

DPTR取数送A

(DPTR+1)送DPTR

(A)<((DPTR))?

置标志位,内容交换

长度-1=0?

标志位=0?

结束

四、实验步骤:将RAM 1000H~100FH 中放入不等的数据,用断点方法运行本实验程序后检查1000H~100FH中的内容是否按从小到大的次序排列。

五、思考:修改程序把1000H~100FH中内容从大到小排列。

1/程序清单:

ORG 0000H

LJMP SE01

ORG 0640H

SE01: CLR 00H ;标志位

MOV DPTR,#1000H ;起始地址

MOVX A,@DPTR

MOV R7,#04H ;要排序的数据个数

LOOP: MOV 22H,A ;第一个数送22h

INC DPTR

MOVX A,@DPTR ;第二个数送A

CLR C ;清零C

CJNE A,22H,LOOP5 ;判断是哪个数大

LOOP5: JNC LOOP1 ;前面的数小则不作处理,否则交换位置

LOOP2: DEC DPL ;交换位置

MOV R5,DPL

CJNE R5,#0FFH,LOOP4

DEC DPH

LOOP4: MOVX @DPTR,A

MOV A,22H

INC DPTR

MOVX @DPTR,A

SETB 00H

LOOP1: DJNZ R7,LOOP;;;;;不交换位置

JB 00H,SE01 ;判断此次循环有无交换发生

LOOP3:SJMP LOOP3

END

例4-1 有一变量在片内RAM的20H单元,取值范围:00H~05H。编制一段程序,根据变量值求其平方值,并存入片内RAM的21H单元。

ORG 0000H

LJMP SE01

ORG 0640H

SE01:MOV DPTR,#2000H

MOV A,20H

MOVC A,@A+DPTR

MOV 21H,A

SJMP $

ORG 2000H

TABLE:DB 01,01,04,09,16,25

END

例4-2 设变量x 以补码的形式存放在片内RAM的30H单元,变量y 与x 的关系是:当x 大于0时,y =x;当x =0时,y =20H;当x 小于0时,y =x+5。编制程序,根据x 的大小求y并送回原单元。

ORG 0000H

LJMP START

ORG 0640H

START:MOV A,30H

JZ NEXT

ANL A,#80H ;判断符号位

JZ LP

MOV A,#05H

ADD A,30H

MOV 30H,A

SJMP LP

NEXT:MOV 30H,#20H

LP:SJMP $

END

例4-3 编写程序,将内部RAM的30H至3FH单元初始化为00H。

ORG 0000H

LJMP MAIN

ORG 0040H

MAIN:MOV R0,#30H

MOV A,#00H

MOV R7,#16

LOOP:MOV @R0,A

INC R0

DJNZ R7,LOOP

SJMP $

END

例4-4 将内部RAM中起始地址为60H的数据串传送到外部RAM中起始地址为1000H的存储区域内,直到发现’ $’字符停止传送。由于循环次数事先不知道,但循环条件可以测试到。该程序采用先判断后执行的结构。

ORG 0000H

LJMP MAIN

ORG 0040H

MAIN: MOV R0,#60H

MOV DPTR,#1000H

LOOP0: MOV A,@R0

CJNE A,#24H,LOOP1

SJMP DONE

LOOP1: MOVX @DPTR,A

INC R0

INC DPTR

SJMP LOOP0

DONE: SJMP DONE

END

实验4-1 P1口亮灯实验

一、实验目的:

l)学习P1口的使用方法;

2)学习延时子程序的编写。

二、实验顶备知识:

(l).Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

(2).本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

三、实验内容:P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

四、实验程序框图:

五、实验步骤:P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。

六、思考:改变延时常数,使发光二极管闪亮时间改变。

修改程序,使发光二极管闪亮移位方向改变

程序清单

ORG 0000H

LJMP SE18

ORG 0790H

SE18: MOV P1,#0FFH ;送P1口

LO34: MOV A,#0FEH ;L1发光二极管点亮

LO33: MOV P1,A

LCALL SE19 ;延时

RL A ;左移位

SJMP LO33 ;循环

ORG 07A0H

SE19: MOV R6,#0A0H

LO36: MOV R7,#0FFH

LO35: DJNZ R7,LO35

DJNZ R6,LO36 ;延时

RET

END

实验4-2 P1口转弯灯实验

一、实验目的:进一步了解P1口的使用,学习汇编语言编程方法及调试技巧。

二、实验内容:P1.0 开关接5V,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮,P1.0,P1.1

开关同时接5V或接地时,转弯灯均不闪亮。

三、实验程序框图:

四、实验接线图:

五、实验步骤:P1.0 接K1,P1.1接K2,P1.4~P1.7接L1、L5、L9、L13,连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,(例可把延时程序第一个字节改成返回指令22H),以便观察。

程序清单:

ORG 0000H

LJMP PX00

ORG 0C30H

PX00: MOV P1,#0FFH ;初始化

PX03: MOV A,P1

MOV B,A

ANL A,#03H

CJNE A,#01H,PX01 ;满足只是P1.0为高条件?

JB 00H,PX04 ;闪烁标志位

CLR P1.4

CLR P1.5 ;开右灯

SETB P1.6

SETB P1.7 ;关左灯

MOV R2,#20H

LCALL DEL Y ;延时

SETB 00H ;置标志位

LJMP PX03 ;继续查找状态

PX04: SETB P1.4

SETB P1.5

SETB P1.6 ;关灯

SETB P1.7

MOV R2,#20H

LCALL DEL Y ;延时

CLR 00H ;清标志位

AJMP PX03 ;继续查找状态

PX01: CJNE A,#02H,PX02 ;满足只是P1.1为高条件吗?

JB 01H,PX05 ;判标志位

SETB P1.4

SETB P1.5 ;开左灯

CLR P1.6

CLR P1.7 ;关右灯

MOV R2,#20H

LCALL DEL Y ;延时

SETB 01H ;置标志位

LJMP PX03 ;继续查找

PX05: SETB P1.4

SETB P1.5

SETB P1.6 ;关灯

SETB P1.7

MOV R2,#20H

LCALL DEL Y ;延时

CLR 01H ;清标志位

LJMP PX03 ;继续查找状态

QPX02: SETB P1.4

SETB P1.5

SETB P1.6 ;关灯

SETB P1.7

LJMP PX03 ;继续

DELY: PUSH 02H

DEL2: PUSH 02H

DEL3: PUSH 02H ;延时

DEL4: DJNZ R2,DEL4

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DEL Y

RET

END

实验5-1 P3口输入,P1口输出

一、实验目的:掌握P3口P1口简单使用。

二、实验内容:P3.3口输入一脉冲,P1口按16进制加一方式点亮发光二极管。

三、实验程序框图:

四、实验步骤:P3.3用接针连至K1 P1.0~P1.7插针连至L1~L8,K1拨动一次,L1~L8发光二极管按16进制方式加一点亮。

五、思考:修改程序,使发光二极管左移方式点亮。

程序清单:

ORG 0000H

LJMP J100

ORG 0810H

J100: MOV A,#00H

J101: JB P3.3,J101

MOV R2,#10H

LCALL DEL Y

JB P3.3,J101 ;P3.3电平为低吗?

J102: JNB P3.3,J102

MOV R2,#10H

LCALL DEL Y

JNB P3.3,J102 ;P3.3电平为高吗?

INC A ;加1

PUSH ACC

CPL A ;取反

MOV P1,A ;驱动发光二极管

POP ACC

AJMP J101 ;循环

DELY: PUSH 02H

DEL2: PUSH 02H

DEL3: PUSH 02H

DEL4: DJNZ R2,DEL4 ;延时

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DEL Y

RET

END

实验5-2 简单I/O口扩展

一、实验目的:

(1)学习单片机系统中扩展简单I/O口的方法。

(2)学习数据输入输出程序的编制方法。

二、实验内容: 利用74LS244作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。

三、实验程序框图:

四、实验步骤:Y0~Y7接K1~K8,Q0~Q7接L1~L8,CS1接8000孔,CS2接9000孔,JX0接JX7,执行程序,按动K1~K8,观察L1~L8是否对应点亮。

五、思考:可否用273输入,244输出。

程序清单:

ORG 0000H

LJMP GOD0

ORG 0B80H

GOD0: MOV DPTR,#8000H

MOVX A,@DPTR ;取出244状态

MOV DPTR,#9000H

MOVX @DPTR,A ;送273驱动发光二极管

SJMP GOD0

END

实验6 继电器控制

一、实验目的掌握用继电器的基本方法和编程。

二、实验内容利用P1口输出高低电平,控制继电器的开合,以实现对外部装置的控制。

三、实验预备知识现代自动控制设备中都存在一个电子与电气电路的互相联结问题,一方

面要使电子电路的控制信号能够控制电气电路,提供良好的电隔离,以保护电子电路和人身的安全,继电器便能完成这一桥梁作用。

四、实验接线图:

五、实验步骤:把Pl.0接JIN端,继电器的JZ通过K1接地。JK接L1,JB接L2。编制程序,使P1.0电平变化,高电平时继电器吸合,常开触点接上Ll点亮,L2熄灭,低电平时继电器不工作,常闭触点闭合,Ll熄灭,L2点亮。

程序清单:

ORG 0000H

LJMP LOOP

ORG 0F00H

LOOP: CLR P1.0

MOV R2,#30H

LCALL DEL Y

SETB P1.0

MOV R2,#30H

LCALL DELY

SJMP LOOP

DELY: PUSH 02H

DEL2: PUSH 02H

DEL3: PUSH 02H

DEL4: DJNZ R2,DEL4

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DEL Y

RET

END

实验7-1 8255A.B.C口输出方波

一、实验目的:掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入/输出软件的设计为法。

二、实验内容:在8255的A.B.C口用万用表可测出每个口线的高低电平变化。

三、实验程序框图:

四、实验步骤:执行程序,用万用表测量8255A.B.C口应有高低电平变化(或用8255A.B.C口分别用插针连至Ll~L8,观察发光二极管变化情况)。

程序清单:

ORG 0000H

LJMP SE09

ORG 0580H

SE09: MOV DPTR,#0FF2BH

MOV A,#80H

MOVX @DPTR,A ;8255初始化

MOV A,#55H ;一位隔一位高电平

LO15: MOV DPTR,#0FF28H

MOVX @DPTR,A

INC DPTR

MOVX @DPTR,A

INC DPTR

MOVX @DPTR,A ;A、B、C口送入

MOV R2,#10H ;延时

LCALL DEL Y

CPL A ;取反

SJMP LO15 ;循环

ORG 05A0

DELY: PUSH 02H

DEL2: PUSH 02H

DEL3: PUSH 02H ;延时

DEL4: DJNZ R2,DEL4

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DEL Y

RET

END

实验7-2 8255PA口控制PB口

一、实验目的:掌握单片机系统中扩展外围芯片的方法,了解8255芯片的结构及编程方法。

二、实验内容:用8255PA口作开关量输入口,PB口作输出口。

三、实验程序框图:

四、实验接线图:

五、实验步骤:8255PA口接Kl~K8,PB口接L1~L8运行程序,按K1~K8,观察L1~L8发光二极管是否对应点亮。

程序清单:

ORG 0000h

LJMP SE17

ORG 0770H

SE17: MOV DPTR,#0FF2BH

MOV A,#90H

MOVX @DPTR,A ;8255初始化

LO32: MOV DPTR,#0FF28H

MOVX A,@DPTR ;PA口状态读出

INC DPTR

MOVX @DPTR,A ;送PB口

SJMP LO32

END

实验7-3 8255控制交通灯

一、实验目的:进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法。

二、实验内容:用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

三、实验程序框图:

四、实验接线图:

五、实验步骤:8255 PA0~PA7PB0~PB3接发光二极管L15~L13、L11~L9、L7~L5、L3~L1。执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程

ORG 0000H

LJMP JOD0

ORG 0BB0H

JOD0: MOV SP,#60H

MOV DPTR,#0FF2BH

MOV A,#88H

MOVX @DPTR,A ;8255初始化

MOV DPTR,#0FF28H

MOV A,#0B6H

MOVX @DPTR,A

INC DPTR

MOV A,#0DH

MOVX @DPTR,A ;点亮4个红灯

MOV R2,#25H ;延时

LCALL DEL Y

JOD3: MOV DPTR,#0FF28H

MOV A,#75H

MOVX @DPTR,A

INC DPTR

MOV A,#0DH

MOVX @DPTR,A ;东西绿灯亮,南北红灯亮

MOV R2,#55H

LCALL DEL Y ;延时

MOV R7,#05H ;闪烁次数

JOD1: MOV DPTR,#0FF28H

MOV A,#0F3H

MOVX @DPTR,A

INC DPTR

MOV A,#0CH

MOVX @DPTR,A ;东西黄灯亮,南北红灯亮

MOV R2,#20H

LCALL DEL Y ;延时

MOV DPTR,#0FF28H

MOV A,#0F7H

MOVX @DPTR,A

INC DPTR

MOV A,#0DH

MOVX @DPTR,A ;南北红灯亮

MOV R2,#20H

LCALL DEL Y ;延时

DJNZ R7,JOD1 ;闪烁次数未到继续

MOV DPTR,#0FF28H

MOV A,#0AEH

MOVX @DPTR,A

INC DPTR

MOV A,#0BH

MOVX @DPTR,A ;东西红灯亮,南北绿灯亮

MOV R2,#55H

LCALL DEL Y ;延时

MOV R7,#05H ;闪烁次数

JOD2: MOV DPTR,#0FF28H

MOV A,#9EH

MOVX @DPTR,A

INC DPTR

MOV A,#07H

MOVX @DPTR,A ;东西红灯亮,南北黄灯亮

MOV R2,#20H

LCALL DEL Y ;延时

MOV DPTR,#0FF28H

MOV A,#0BEH

MOVX @DPTR,A

INC DPTR

MOV A,#0FH

MOVX @DPTR,A ;东西红灯亮

MOV R2,#20H

LCALL DEL Y ;延时

DJNZ R7,JOD2 ;闪烁次数未到继续

LJMP JOD3 ;循环

ORG 0C30H

DELY: PUSH 02H

DEL2: PUSH 02H

DEL3: PUSH 02H ;延时

DEL4: DJNZ R2,DEL4

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DEL Y

RET

END

实验8 A/D转换实验

一、实验目的:(1)掌握A/D转换与单片机接口的方法;

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

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

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

三、实验接线图:

四、实验程序框图:

五、实验步骤:把0809的零通道INT0用插针接至AOUT1孔,CS4接8000H孔,JX0接JX6,运行程序,数码管上显示0809.XX,,后二位显示当前采集的电压转换的数字量,调节W1,该二位将随着电压变化而相应变化。

六、思考:修改程序,用其它通道轮流采样显示。

程序清单:正确的程序

程序清单:

ORG 0000H

LJMP SE11

ORG 05A0H

SE11: MOV A,#43H

MOV DPTR,#0FF20H

MOVX @DPTR,A

MOV 7EH,#00H

MOV 7DH,#08H

MOV 7CH,#00H

MOV 7BH,#09H

MOV 7AH,#10H

MOV 79H,#10H ;显示缓冲区初值

LO18: LCALL SSEE ;显示

MOV A,#00H

MOV DPTR,#8000H

MOVX @DPTR,A ;0809的0通道采样

MOV R7,#0FFH ;延时

LO17: DJNZ R7,LO17

MOVX A,@DPTR ;取出采样值

MOV R0,#79H

LCALL PTDS

SJMP LO18 ;采样值送显示缓冲区

ORG 05D0H

PTDS: MOV R1,A ;拆送显示缓冲区

ACALL PTDS1

MOV A,R1

SWAP A

PTDS1: ANL A,#0FH

MOV @R0,A

INC R0

RET

ORG 0D50H

SSEE: MOV 30H,#20H ;位选信息给30H

MOV 31H,#7EH ;数据缓冲器首地址给31H

MOV R7,#06H ;位选次数给R7

SSE1: MOV DPTR,#0FF21H ;8155的A口

MOV A,30H

CPL A

MOVX @DPTR,A ;字位送入

MOV R0,31H

MOV A,@R0 ;要显示的内容给A

MOV DPTR,#DDFF

MOVC A,@A+DPTR ;取字形代码

MOV DPTR,#0FF22H ;8155的B口

MOVX @DPTR,A ;字形送入

MOV R2,#08H

LCALL DELY

MOV A,30H

RR A ;位选右移

MOV 30H,A

DEC 31H ;数据缓冲器地址减一

MOV A,#0FFH

MOVX @DPTR,A ;关显示

DJNZ R7,SSE1 ;六位显示完了吗?

RET

DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH

DELY: PUSH 02H

DEL2: PUSH 02H

DEL3: PUSH 02H ;延时

DEL4: DJNZ R2,DEL4

POP 02H

DJNZ R2,DEL3

POP 02H

DJNZ R2,DEL2

POP 02H

DJNZ R2,DELY

RET

END

实验9 小直流电机调速实验

一、实验目的:掌握用单片机数控直流电机的速度。

二、实验内容:利用DAC0832芯片进行数/模控制,输出的电压经放大后驱动小直流电机的

速度进行数字量调节。

三、实验接线图:

单片机实验指导书

《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 理工大学 自动化学院自动化系

实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行 [主菜单?文件?新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本实 例文件名为xunhuan.asm 。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。 .专业DOC.

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单?项目?编译、连接 ]或[主菜单?项目?重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单?运行?进入调试状态] b)点击工具条的进入后的窗口如下:

《单片机原理及应用》实验指导

《单片机原理及应用》实验指导 控制技术实验室

实验一 熟悉 Keil c51 集成开发环境及常用指令实验 (2 课时,验证型) 一、实验目的 1) 了解 8051 典型应用系统的开发过程,熟悉 Keil C51集成开发环境。 2) 掌握单步执行程序,查看专用寄存器和单片机 RAM 的执行结果。 3) 掌握 8051 的寻址方式及常用指令的使用方法。 二、实验内容 1) 基本指令练习。 2) 数据传送(循环方式) 。 3) 位操作指令。 4) 8051 内部 RAM 的 40H~4FH 置初值 A0H~AFH,然后将 40H~4FH 的内容 传送到外部 RAM 中的 C000H~C00FH 单元,再把外部数据 RAM 中的 C000H~C00FH 单元的内容传送到 8051 内部 RAM 中的 50H~5FH 单元。 5) 调试下列程序,熟悉程序调试手段,观测程序运行结果。 ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV SP,#6FH MOV R0,#40H MOV R1,#30H MOV 30H,#40H MOV A,#40H MOV @R0,A ?哪一个存储单元的内容与 A 中内容相等 INC A MOV A,@R1 ?A 中的内容?哪一个存储单元的内容传给 A PUSH ACC POP 32H ?SP 指针的变化?32H 中的内容 MOV A,#5FH SWAP A ?A 中的内容 ?上面程序为顺序执行的程序 XUNHUAN1: MOV R0,#30H MOV R7,#10H CLR A ?这 3 条指令的作用 LOOP1: MOV @R0,A INC A INC R0 DJNZ R7,LOOP1 ?R7 的作用 ?循环程序执行完之后,指出 32H,37H,3BH, 3FH 存储单元中的值,为什么? XUNHUAN2: MOV R0,#30H MOV R1,#40H

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支

持所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的AT89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

单片机原理及应用实验指导书

单片机原理及应用实验指导书 湖南人文科技学院 二00一年三月

实验一I /O口输出实验—LED流水灯实验 一、实验目的 1、掌握单片机最小系统的构成; 2、掌握I/O口的使用及驱动能力的概念; 3、熟悉移位指令和软件延时程序。 二、实验设备与器件 1、计算机1台 2、PROTEUS单片机教学实验箱FB-EDU-P51A 三、实验原理 如下图所示,用单片机控制LED的亮与灭,在实验图中将MCU的P1口与LED的阴极相连,当P1口给低电平时,LED发亮,当P1口给高电平时,

四、实验内容 1、利用51单片机及8个发光二级管等器件,构成一个流水灯单片机系统。 2、用Keil C51软件创建程序 3、对程序进行编译与链接,建立实验程序并编译,加载hex文件,仿真; 4、实验板验证 (1)用ISP下载hex程序到CPU (2)按连接表连接电路 (3)检查验证结果 五、实验报告 在预习报告的基础上写出详细实验过程;画出实验原理图,写出单片机控制程序,写出调试步骤与仿真方法,观察实验现象,得出实验结果,并分析实验结果的正确性。 六、预习要求 1、单片机最小系统的构成 2、单片机I/O口的使用以及软件延时程序的编写。 七、实验参考程序 ORG 00H START: MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A ;循环左移 DJNZ R2,LOOP ;判断移动是否超过8 位, 未超过继续循环 LJMP START DELAY: MOV R5,#20 ;延时程序,延时0.2s D1: MOV R6,#20

Freescale单片机实验指导书2016

Freescale单片机实验指导书 物理与电子工程学院

目录 实验一飞思卡尔嵌入式实验系统入门—GPIO控制实验 (3) 实验二串口通信(SCI)实验 (6) 实验三键盘中断及LED数码块实验 (11) 实验四定时器输入捕捉与输出比较功能实验............................................. 错误!未定义书签。实验五AD转换与PWM综合实验 .............................................................. 错误!未定义书签。

实验一飞思卡尔嵌入式实验系统入门—GPIO控制实验 一、实验目的: 熟悉CodeWarrior集成开发环境及飞思卡尔嵌入式实验开发系统 掌握AW60的GPIO结构及控制方法 掌握CodeWarrior工程结构及创建汇编工程 熟悉汇编指令及应用汇编语言编程方法 二、实验内容 1.运用CodeWarrior新建工程,进行工程程序编辑、编译、下载、调试 2.利用飞思卡尔嵌入式实验开发系统根据实验需要进行硬件连接 3.根据连接在PTD口上的两个拨动开关的状态,控制接中PTB口上的八个LED处在以下四种不同状态:八个LED亮—灭循环;四个灯交替亮—灭;一个LED左移流水灯;两个LED右移流水灯。 实验接线原理图

图1-1 I/O 口实验接线图 三、实验步骤 1.将飞思卡尔嵌入式实验开发系统实验箱接上电源,写入器BDM 接头插接入核心卡BDM 座,USB 头接入PC 机USB 口。 2.PC 机上启动CodeWarrior ,新建工程LED.mcp(注意设置工程保存路径) 3.观察工程文件结构,查看相应文件。 4.在main.asm 中编辑工程主文件 5.编辑相关子程序 6.编译,如果有错误修改,直至编译通过 7.链接、下载,调试观察LED 灯现象 四、思考题 1.CodeWarrior 建立工程有什么工程框架文件,这些文件的作用? 2.嵌入式开发系统有哪些主要元器件? 3.如果采用模块化设计方法,将系统初始化、LED 灯控制、延时程序等各自形成文件, GND PTB 口 Vcc

单片机实验指导书

单片机实验指导书 适用专业:计算机控制、网络、物联网等 学时:12 编写人:孔庆臣 2016-5-12

实验一 IO口输入输出实验 1. 实验内容 (1) P2口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 (2) P1口做输入口,接八个扭子开关,P2口接八只发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。 2. 实验目的 学习keil仿真软件的使用方法 学习IO口的使用方法。 学习延时子程序的编写和使用。 stc-isp软件的使用 3.有关说明 P1口为准双向口,P1的每一位都能独立地定义为输入或输出线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。单片机IO口在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。 可以用第二个实验做一下实验。先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1作输入口,会有什么结果。 再来看一下延时程序的实现。通常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。 本实验系统晶振为11.0592MHZ,则一个时钟周期为0.0904us。现要写一个延时0.1s的程序,可大致写出如下: void Delay100ms() //@11.0592MHz { unsigned char i, j, k; i = 5; j = 52; k = 195; do { do { while (--k); } while (--j); } while (--i); } 5.实验电路设计 (1)分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。 (2)画出本次实验独立的原理图 5、实验要求 (1)完成实验电路设计 (2)完成实验程序设计 (3)实现要求的实验结果

单片机实验指导书

§4 单片机应用系统实验 §4.1 软件实验(使用软件仿真设置) 软件实验一数据传送实验 一、实验内容: 1.编写程序,将内部RAM中30H-5FH中的数据设置为55H。 2.编写程序,将内部RAM中30H-5FH中的内容传送到90H开始的内部RAM 中去。 3.编写程序,将内部RAM中30H-5FH中的内容传送到200H开始的外部RAM 中去(注意实际系统中为扩展的内部RAM)。 二、实验目的与要求: 1.学习与掌握针对不同区域RAM的操作方法。 2.学习与掌握指针的使用与循环程序的编写方法。 3.学习与掌握如何查看各个部分存储器的内容。 三、实验说明: 对于不同区域的RAM操作需要使用不同的寻址方式与指令。对于内部RAM 的低128字节,可以使用直接寻址也可以使用间接寻址;对于内部RAM的高128 字节,只能使用间接寻址;对于外部RAM,只能使用指针DPTR进行间接寻址。 对于数据块的操作一般使用循环程序完成。 编写程序并编译(build)检查语法错误。编译通过后进入调试环境,单步执行 程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。 注意主程序的最后应该加一条SJMP $ 指令,以避免由于连续执行时无法停机 四、实验程序流程图: 五、思考题:如果源与目的数据块 均为外部RAM

软件实验二数据分类与校验实验 一、实验内容: 1.编写程序,将内部RAM中30H-5FH中的数据设置为1-48。 2.编写程序,将内部RAM中30H-5FH中的奇数传送到90H开始的内部RAM 中去。 3.编写程序,将内部RAM中30H-5FH中的数据按照奇校验设置最高位。二、实验目的与要求: 1.学习与掌握判断数据奇偶性的方法。 2.学习与掌握分支程序的编写方法。 3.学习与掌握如何给存储器中的数据增加校验位。 三、实验说明: 汇编语言中判断数据的奇偶性很简单,数据的最低位为1为奇数,否则为偶数。分支处理是程序设计中的基本技巧,是根据某一条件是否成立执行或不执行规定操作的方法。数据的奇偶校验不是判断数据的奇偶性,而是判断数据中有奇数个1还是偶数个1。如果是奇校验,则增加校验位后的数据应该具有奇数个1。 编写程序并编译(build)检查语法错误。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。 (传送奇数) 五、思考题: 1.如果只传送正数或负数应该如何编程? 2.如果只传送大于某个规定数值的数据应该如何编程?

单片机实验指导书

实验一8051简单编程与调试实验目的 通过简单小程序的输入和调试,熟悉并掌握Keil 的使用。学会Proteus与Keil的整合调试。 实验基本要求 建立三个项目,分别输入存储块清零、二进制BCD码及二进制ASCII码转换的汇编源程序,并进行仿真调试。画出实验程序的流程框图。 实验步骤 采用Keil Cx51 开发8051单片机应用程序一般需要经过下面几个步骤: 1、在 Vision2集成开发环境中创建一个新项目(Project),并为该项目选定合适的单片机CPU器件。 在菜单栏中选择“Project”→“New Project”,弹出“Create New Project”对话框,选择目标路径,在“文件名”栏中输入项目名后,单击“保存(S)”按钮,弹出“Selecte Device for Target”对话窗口。在此对话窗口的“Data base”栏中,单击“Atmel”前面的“+”号,或者直接双击“Atmel”,在其子类中选择“AT89C51”,确定CPU类型。如图所示。 点击“确定”按钮后,弹出如下的对话框

如果是进行汇编语言编程选择“否”。 2、利用μVision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。 在μVision2的菜单栏中选择“File”→“New”命令,新建文档,然后在菜单栏中选择“File”→“Save”命令,保存此文档,这时会弹出“Save As”对话窗口,在“文件名(N)”一栏中,为此文本命名,注意要填写扩展名“.asm”。单击“保存(S)”按钮,这样在编写汇编代码时,Keil会自动识别汇编语言的关键字,并以不同的颜色显示,以减少输入代码时出现的语法错误。程序编写完后,再次保存。 在Keil中“Project Workspace”子窗口中,单击“Target 1”前面的“+”号,展开此目录。在“Source Group 1”文件夹上单击鼠标右键,在右键菜单中选择“Add File to ‘Group Source 1’”,弹出“Add File to Group”对话窗口,在此对话窗口的“文件类型”栏中,选择“Asm Source File”,并找到刚才编写的.asm文件,双击此文件,将其添加到Source Group 中,此时“Project Workspace”子窗口如图所示。

单片机原理实验指导书(2012.10)

《单片机原理》实验指导书 计算机科学与技术系2012年8月

目录 第一部分单片机仿真实验 (1) 实验一:流水灯实验 (1) 实验二:中断实验 (4) 实验三:定时器中断实验 (6) 实验四:串行口实验 (9) 实验五:矩阵式键盘输入识别 (13) 实验六:LCD循环显示设计 (19) 第二部分单片机硬件实验............................错误!未定义书签。第一章试验箱系统概述 ...................................错误!未定义书签。 一、系统地址分配........................................... 错误!未定义书签。 二、系统接口定义........................................... 错误!未定义书签。 三、通用电路简介........................................... 错误!未定义书签。第二章实验指导...............................................错误!未定义书签。实验七P1口亮灯和P1口加法器实验........... 错误!未定义书签。实验八简单I/O口扩展(选作).................. 错误!未定义书签。实验九8255控制交通灯................................ 错误!未定义书签。实验十128*64LCD液晶显示 .......................... 错误!未定义书签。

第一部分单片机仿真实验 实验一:流水灯实验 一、实验目的: 通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器。 二、实验原理图 实验参考电路图如下: 三、参考实验程序 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

单片机实验答案

前言 由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机。为配合《单片机应用技术》课程的教学,使学生尽快了解、掌握89C51单片机的使用,特编写了这本上机指导书(基础篇)。 《单片机》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。本实验指导书提供了9个实验的指导性材料,实验还有一些思考题,可以根据课时的安排和教学要求进行取舍。为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。 由于时间紧迫,加上编者学识有限,如有不妥之处,欢迎读者批评指正。 编者

实验须知 1. 实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。 2. 各种电源的电压和极性不能接错,严禁带电接线和接插元器件。通电前须经过指导教师检查认可后方能通电。 3. 不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。 4. 严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。 5. 实验中若损坏仪器或元器件,应及时向指导教师报告,听候处理。 6. 在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。 7. 实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。 8. 按规定认真完成实验报告,对实验中出现的现象进行分析,在规定的时间内交上实验报告。 9. 凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考查。

单片机实验指导书

单片机实验 实 验 指 导 书 2017年2月

单片机实验报告 (自动化XX级) 实验名称 学生 联系方式 学号 院系工学院电气与信息工程系专业自动化 指导教师 填写日期

实验一数据传送 一、实验目的 1.进一步熟悉仿真器的使用方法。 2.练习设计简单的程序。 3.掌握8051片RAM和片外RAM的数据传送方法,从而了解这两部分存贮器的特点。 二、实验容 将8051部RAM 40H~4FH置初值00H~0FH,然后将40H~4FH容传送到外部RAM的4800H~480FH,再将4800H~480FH传回部RAM的50H~5FH。设置断点B1、B2、B3每运行到断点时检查相应的CPU现场和存贮单元的容。 三、实验准备 1、认真阅读本实验指导。 2、读懂下面的程序: #include #include char data *p40 ,*p50 ; char xdata *p4800; char i, j, k; void main( ) { p40=0x40; p50=0x50; p4800=0x4800; for(i=0;i<16;i++) { *p40=i; p40=p40+1; } //B1 p40=0x40; for(j=0;j<16;j++) { *p4800=*p40; p40=p40+1; p4800=p4800+1; } // B2 p4800=0x4800; for(k=0;k<16;k++) { *p50=*p4800; p50=p50+1;

p4800=p4800+1; } } //B3 3、画出如下要测的数据表格: 四、实验步骤 1、向机器输入程序。 2、运行程序至第一个断点B1,检查40H~0FH单元容及指针p40的容。 3、运行程序至第二个断点B2,检查4800H~480FH单元容及指针p40,p4800的容。 4、运行程序至第三个断点B3,检查50H~5FH单元容及累加器及指针p50的容。 五、实验报告要求 1、写出C语言源程序和对应的汇编语言指令及注解的程序清单。 2、将测得的数据填入表格,并和理论分析的结果相比较。 3、说明8031CPU对部存贮器和外部扩展RAM存贮器各有哪些寻址方式? 4、如果要读外部程序存储器0x4800中的容,该如何访问? 5.实验心得。(必须)

《单片机系统设计》实验报告

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

《单片机原理及应用》实验指导书.

单片机原理及应用实验指导书 罗钧付丽编 重庆大学光电工程学院 2010年5月 目录 实验规则 (2 实验一单片机监控程序实验(4学时 (3 附1.1:LAB2000P实验仪 (9 附1.2:验证实验程序 (10 附1.3:K EIL的使用步骤参考 (17 实验二 A/D转换实验 (3学时 (21 附2.1:验证实验程序 (24 实验三 D/A转换实验 (2学时 (25

附3.1:DA转换实验程序 (27 实验四单片机系统综合实验( 3学时 (28 附4.1:实验仪中的温度传感器电路 (30 附4.2:直流电机和步进电机控制接口电路 (31 实验规则 为了维护正常的实验教学次序,提高实验课的教学质量,顺利的完成各项实验任务,确保人身、设备安全,特制定如下实验规则: 一、实验前必须充分预习,完成指定的预习内容,预习要求如下: 1.认真阅读本实验指导书,分析掌握本次实验的基本原理; 2.完成各实验预习要求中指定的内容; 3.明确实验任务。 二、实验时,认真、仔细的写出源程序,进行调试,有问题向指导老师举手提问; 三、实验时注意观察,如发现有异常现象(电脑故障或实验箱故障,必须及时报告指导老师,严禁私自乱动。 四、实验过程中应仔细观察实验现象,认真记录实验数据、波形、逻辑关系及其它现象,记录的原始结果必须经指导教师审阅签字后,方可离开。 五、自觉保持实验室的肃静、整洁;实验结束后,必须清理实验桌,将实验设备、工具、导线按规定放好,并填写仪器设备使用记录。 六、凡有下列情况之一者,不准做实验: 1.实验开始后迟到10 分钟以上者;

2.实验中不遵守实验室有关规定,不爱护仪器,表现不好而又不服从教育者; 七、实验后,必须认真作好实验报告,在规定时间里必须交给实验指导老师,没交实验报告者,视为缺做一次实验。实验报告要求必须包括: 1.写出设计实验程序; 2.总结实验步骤和实验结果; 八、一次未做实验,本实验课成绩视为不及格。 以上实验规则,请同学们自觉遵守,并互相监督。 实验一单片机监控程序实验(4学时 实验预习要求: 1.按照附3学习使用Keil软件。 2.熟悉键盘和显示器接口及工作原理。 3.根据实验原理,读懂验证实验程序,并写出设计性实验源程序。 4.思考题: (1从附1.2监控程序可以看出:六位数码管显示的数据存放在单片机哪个位置? (2参考图1.1A与监控程序,键盘上若数字键7被按下,单片机怎样判断该键被按下? 一、实验目的 1.掌握8031系统中,键盘和显示器的接口方法。 2.掌握键盘扫描和LED八段码显示器的工作原理。

单片机实验指导

(内部教材) 单片机实验指导书 周小波编 阜阳师范学院物理与电子科学学院电子信息科学与技术教研室

第一章系统概述 一、系统简介 MCS-51单片机实验板是物理与电子科学学院自主研发设计的单片机实验系统。板载一片51内核STC89C52单片机,整个实验系统由17个独立模块组成,各模块相互独立,给学生提供了更大的发挥空间。利用目前流行的Keil c51软件,进行软、硬件仿真开发调试。 二、各模块电路 (1)单片机最小系统模块 最小系统电路主要由STC89C52单片机、时钟电路、复位电路等构成,所有的IO口均引出。 (2)串口电平转换模块

串口电平转换电路主要由MAX232芯片以及相关外围电路构成,可以用来下载程序,以及作串口通信实验。 (3)数码管驱动模块 8位共阳极数码管采用8550(PNP)三极管驱动,模块预留位选端口和段选端口两排插针,根据需要可自行连接。 (4)LED发光二极管模块 板载8个发光二极管,J1为接线端口,可根据需要自行连接到单片机的IO 口或者其他外设上,PZ2为排阻,起限流作用。 (5)键盘模块 键盘电路由4各独立按键和4*4矩阵键盘构成,Pk2接口为独立键盘的接线端子,Pk1端口为矩阵键盘的接线端子。

(6)DA转换模块 DA转换电路采用8位DA芯片DAC0832,PDA端口为8位数据的输入端,11 脚为DAC0832输出端,发光二极管用于指示DA转换的结果。 (7)AD转换模块 AD转换电路由8位AD转换芯片ADC0804构成,通过调节VR1电位器可以改 变AD输入端的模拟电压。

(8)电机驱动模块 采用L298N模块作为电机驱动,可以驱动2个直流电机或1个步进电机, J5为信号输入端,输出端J6接直流电机或者步进电机。 (9)总线扩展模块 采用82C55芯片作为总线的扩展,采用一片锁存器74HC573,使P0口可以作 为地址和数据总线的复用端口。J9为82C55的控制总线接线端子,J10为82C55 的地址和数据接线端子,PA、PB、PC为82C55的输出端口,可以外接其他外设完 成相应的实验。

单片机原理实验指导书

实验一LED 流水灯 一、实验目的 1. 学习单片机并口的使用方法。 2. 学习延时子程序的编写和使用。 3. 学习集成开发环境MedWin的安装与使用。 4. 学习STC单片机在线下载软件STC-ISP的使用。 二、实验内容 所谓流水灯就是4 个发光二极管(LED)轮流点亮,周而复始。实验板上以P3口作输出口,接有四只发光二极管,当单片机的引脚输出为低电平时发光二极管点亮,为高电平时息灭。编写程序,使4 个发光二极管循环点亮,时间间隔约0.5 秒。 三、实验电路连线 实验板上与本实验有关的硬件如下图所示。4 个LED上串联4 个限流电阻,以防止其电 流过大而烧坏。单片机的主时钟为11.0592MHz。 四、实验说明 1、P3 口是准双向口,它作为输出口时与一般的双向口使用 方法相同。由准双向口结构可知当P1 口用作输入口时必须先对它 置“1”。若不先对它置“1”,读入的数据是不正确的。输出时需 要接上拉电阻,P3 口内部有弱上拉,若将外围电路设计为低有效, 高无效,则无需再外接上拉电阻。 2、为使每次点亮一个LED,应使P3.4~P3.7 4 个端口中有 一个为低,其余均为高,延时一段时间后再点亮另一个LED。 3、编写for 循环构成的软件延时子程序,在MedWin 下模拟 执行,根据MedWin 显示的执行时间,调整循环变量的终值,使延时时间约0.5秒,在晶振频率为11.0592MHz情况下,循环终值约27000。程序如下: void delay(void) { unsigned int i,j,k,l; for(i=0;i<=27000;i++) {j++; k++;l++;}; } #include void main (void) { unsigned char i,c[4] = {0xef,0xdf,0xbf,0x7f};// 从左往右流水 i = 0; while(1) { P3 = c[i & 3]; i++; 11 delay(); } } 五、思考 1、如何使点亮的LED 从右往左移动? 2、如何使点亮的LED 从两边往中间移动?

单片机实验指导书——带答案

《单片机原理及应用》 实验指导书 姓名: 学号: 专业班级: 所在学院:成人教育学院 2012年5月日

单片机实验指导书 目录 实验一系统认识实验 (3) 实验二程序调试 (6) 实验三外部中断实验 (6) 实验四串口实验 (8)

实验一系统认识实验 一、实验目的 1.掌握SICElab-G2200实验/仿真系统的结构与使用方法; 2.熟悉单片机系统开发软件WA VE6000。 二、实验设备 1.G2200/2100 实验平台 1 台 2.仿真器/ 仿真板 1 台 3.连线若干根 4.计算机 1 台 三、实验内容 P1端口接发光二极管,加1点亮。 四、连线方案: 五、实验步骤 1.连接Lab51CPU板。(已由实验师连好) 2.仿真器与实验平台的连接 将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。(已由实验师连好) 3.仿真器与计算机的连接 用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。 特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。 4.实验连线 按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。拆线时,应先回转一下,不要硬拨,以免损坏线路板。不管是拆线还是插线,都应 在断电的情况下进行。实验中“连线方案”的粗线即为需用户动手接连的线。

5.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。 6.在计算机上打开“WA VE6000集成调试环境”,界面如下图所示: 7.建立新程序(如果程序已编好,直接跳到第9步) 选择菜单[文件 | 新建文件]功能。 出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序 ORG 0 MOV P1,#0 ;熄灭发光二极管 LOOP: INC P1 CALL Delay SJMP LOOP Delay: MOV R2,#3 ;延时程序 MOV R1,#0 MOV R0,#0 DLP: DJNZ R0,DLP DJNZ R1,DLP DJNZ R2,DLP RET END 8.保存程序 选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能。 9.建立新的项目 选择菜单[文件 | 新建项目]功能。 新建项目会自动分三步走。 (1)加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。 (2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。 (3)保存项目。在保存项目对话框中输入项目名称。MY1无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。 10.设置项目 11.编译程序 选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。 在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了。 12.执行、调试程序 有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。 (1)全速执行 (2)程序单步跟踪 选择[执行 | 跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。 (3)执行到光标处 (4)设置断点 (5)观察各变量值的方法

单片机实训指导书

实训项目一让单片机动起来1、实训目的及要求: 1)掌握单片机开发板的使用方法(驱动识别,程序下载) 2)掌握单片机程序开发软件KEIL的使用 3)掌握单片机程序烧录软件STC-ISP下载软件的使用 2、实训内容 1)根据实训报告内容编写单片机程序 2)调试程序并使用ISP下载软件将程序烧录到单片机芯片中 3)观察实验现象并记录 4)完成实训报告内容 3、实训准备 硬件:单片机开发板、电脑、杜邦线 软件:keil uvision4 、STC-ISP 4、实训过程 1)流程图

2)实训程序一: #include "reg52.h" sbit LED=P1^0; void main() { LED=0; while(1); } 实训程序二: #include "reg52.h" #define LED P1; void main() { LED=0xaa; while(1); } 3)实训步骤 ①打开KEIL软件编写LED控制程序。 ②程序调试无误后,使用KEIL生产HEX文件。 ③将生产的HEX文件烧录到单片机芯片中,并观察实验现象。

3)实验现象记录 实训程序一:。实训程序二:。 4)实训报告要求 ①将实训程序中的注释补充完整,了解每条语句作用。 ②完成如下评分表

实训项目二LED的闪烁1、实训目的及要求: 1)掌握单片机控制LED点亮和熄灭的方法。 2)了解单片机延时程序的原理及设计。 3)了解单片机中常用的变量类型及其定义方法。 2、实训内容 1)根据实训报告内容编写单片机程序 2)调试程序并使用ISP下载软件将程序烧录到单片机芯片中3)观察实验现象并记录 4)完成实训报告内容 3、实训准备 硬件:单片机开发板、电脑、杜邦线 软件:keil uvision4 、STC-ISP 4、实训过程 1)流程图

单片机实验指导书

单片机实验指导书

目录 一、基础知识 1.A VR MEGA16学习板简介 (1) 2.A VR Studio 使用环境简介 (3) 3.ICC使用环境简介 (7) 4.下载程序说明 (12) 二、实验内容 1.熟悉实验环境 (14) 2.I/O口实验 (18) 3.秒表时间显示实验 (19) 4.串口通信实验 (21)

一、基础知识 1. AVR MEGA16学习板简介 a. 简介: A VR MEGA16 学习板专为A VR单片机初学者设计,简单实用是本学习板的最大特点。布局合理,模块划分清晰符合正常使用习惯。电路简单,安排了最常用最实用的功能电路,接口上尽量不复用。人性化设计,学习板没有追求那些高级的热门的功能实验,集成了A VR单片机学习必不可少的A VR ISP下载线,可以直接与PC机连接通过STK500 标准界面进行程序下载。 b. 学习板实物图片: c. 硬件资源: AT Mega16,A VR 单片机主芯片,内包含有:16K Flash、512Byte EEPROM、1K SRAM。 学习板上CPU 可升级到AT Mega32,以完成更大容量需要。 AT24C02,I2C总线器件,EEPROM数据存储器,256Byte EEPROM。 74HC595,SPI 总线器件,SPI 总线并口扩展器件,8 位移位寄存器。 DS1302,时钟芯片。 RS232,RS232 接口芯片。 8 个输入按键、1 个中断输入按键、1 个复位按键。 4 位动态扫描LED 数码管、8 位LED 发光二极管。 1 个无源蜂鸣器,1 个A/D 输入可调电阻器。 LCD 接口,液晶显示屏接口,可接LCD1602 及LCD12864 液晶屏,LCD 为选配件。 A VR JTAG 仿真接口,A VR ISP 下载接口。 板上集成有STK500 V2.0 版本的A VRISP 下载器 d. A VR MEGA16学习板接口说明:

单片机原理与应用实验指导书(学生部分)(2009.4修订)

单片机原理与应用实验指导书 2009年5月

第一章实验箱系统概述一、系统地址分配 (1),存贮器地址分配 (2),I/O地址分配 二、系统接口定义 (1),CZ11:用户实验通讯接口; (2),CZ4:打印接口;

(3),JX0,JX17为系统提供的数据总线接口 (4),CZ7:系统提供的扩展接口; (5),JX12、JX14:液晶显示接口 三、通用电路简介 (1)LED发光二极管指示电路:实验台上包括16只发光二极管及相应驱动电路。见图1-1,Ll—L16为相应发光二极管驱动信号输入端, 该输入端为低电平 “0”时发光二极管亮

图1-6 (2)逻辑电平开关电路:见图1-2。实验台上有8只开关Kl-K8, 与之相对应的K1-K8个引线孔为逻辑电平输出端。开关向上拨相应插孔输出高电平“l”, 向下拨相应插孔输出低电平“0”。 图1-7 (3)单脉冲电路:实验台上单脉冲产生电路如图1-3,标有“”和“”的两个引线插孔为正负单脉冲输出端。附近按钮AN为单脉冲产生按钮,每按一次产生一个单脉冲。 图1-8

(4)分频电路:该电路由一片74LS393组成,见图1-4。T0—T7为分频输出插孔。 该计数器在加电时由RESET信号清零。当脉冲输入为8.0MHZ时,T0—T7输出脉 冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。 图1-9 (5)脉冲发生电路:实验台上提供一8MHZ的脉冲源,见图1-5,实验台上标有8MHZ 的插孔,即为脉冲的输出端。 图1-10 (6)485接口电路: 图1-11

单片机实验指导

单片机实验1 汇编语言程序设计实验 ---- 存储器块清零或赋值 一.实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二.实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H。 三.实验仪器 微机、WAVE6000编程环境软件,(单片机实验箱) 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 编译器默认设置: 程序框图 参考程序: Block equ 4000h mov dptr, #Block ; 起始地址 mov r0, #10 ; 清10个字节 mov a, #33h ; Loop: movx @dptr, a inc dptr ; 指向下一个地址 djnz r0, Loop ; 记数减一 ljmp $ end

一.实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二.实验内容 将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。三.实验仪器微机、WAVE6000软件,(单片机实验箱) 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 参考程序与流程图

相关文档