《单片机与接口技术》实验指导书要点.docx

上传人:b****6 文档编号:4776635 上传时间:2022-12-08 格式:DOCX 页数:39 大小:602.05KB
下载 相关 举报
《单片机与接口技术》实验指导书要点.docx_第1页
第1页 / 共39页
《单片机与接口技术》实验指导书要点.docx_第2页
第2页 / 共39页
《单片机与接口技术》实验指导书要点.docx_第3页
第3页 / 共39页
《单片机与接口技术》实验指导书要点.docx_第4页
第4页 / 共39页
《单片机与接口技术》实验指导书要点.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

《单片机与接口技术》实验指导书要点.docx

《《单片机与接口技术》实验指导书要点.docx》由会员分享,可在线阅读,更多相关《《单片机与接口技术》实验指导书要点.docx(39页珍藏版)》请在冰豆网上搜索。

《单片机与接口技术》实验指导书要点.docx

《单片机与接口技术》实验指导书要点

《单片机与接口技术》

实验指导书

王玉琳编写

 

SUNES59PA

 

合肥工业大学机械与汽车工程学院

2014年12月(第1版)

实验一P1口与P3口综合实验

一、实验目的与要求

熟悉星研集成环境软件的使用方法,学习MCS51汇编指令,掌握P1、P3口的使用方法。

二、实验设备

SUN系列实验仪一套、PC机一台、示波器一台。

三、实验内容

1、熟悉星研集成环境软件。

2、按接线图编写程序:

使用P1口控制F5区的8个LED指示灯,循环点亮,瞬间只有一个灯亮(P1口某一位输出低电平时,对应的LED被点亮)。

3、观察实验结果,验证程序是否正确。

四、实验原理图

五、实验步骤

1、连线说明:

A3区:

JP51

——

F5区:

JP65

2、建立文件、编写程序。

3、观察实验结果并做记录。

 

六、参考程序

ORG

0000H

LJMP

MAIN

ORG

0030H

MAIN:

MOV

SP,#70H

MOV

A,#0FFH

CLR

C

AGAIN:

RLC

A

MOV

P1,A

ACALL

DELAY

SJMP

AGAIN

DELAY:

MOV

R5,#02H

;延时

DELAY1:

MOV

R6,#00H

DELAY2:

MOV

R7,#00H

DJNZ

R7,$

DJNZ

R6,DELAY2

DJNZ

R5,DELAY1

RET

END

七、扩展实验一:

异或、位查询

将排线JP65转180°。

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVSP,#70H

MOVP1,#11111111B

JBP3.0,$;P3.0接K7,作为“启动”

AGAIN:

XRLP1,#11110000B

CALLDELAY

JNBP3.1,$;P3.1接K8,作为“暂停”

XRLP1,#00001111B

CALLDELAY

JNBP3.1,$;P3.1接K8,作为“暂停”

SJMPAGAIN

 

DELAY:

MOV

R5,#02H

;延时

DELAY1:

MOV

R6,#00H

DELAY2:

MOV

R7,#00H

DJNZ

R7,$

DJNZ

R6,DELAY2

DJNZ

R5,DELAY1

RET

END

八、扩展实验二:

位查询、外部中断

排线保留。

用AT89S52的P1.0~P1.7控制8道工序,现模拟控制8只LED,低电平点亮,将每道工序所占的时间假定为延时;P3.4接K7,为开工启动开关,下降沿有效;P3.3接K8,为外部故障模拟输入开关,P3.3=1时设备正常,P3.3=0时,设备出故障,系统报警;P3.5接F6区蜂鸣器的Ctrl,为报警时的声音输出。

初始状态,K7和K8均拨到下面(高电平),此时8只LED均未点亮。

运行程序后,将K7拨到上面再拨下来,二极管开始点亮,顺序动作开始;把K8拨到上面时,发声报警,再将K8拨到下面时,报警停止。

ORG0000H

LJMPPO10

ORG0013H

LJMPPO16

ORG0030H

PO10:

MOVP1,#0FFH

PO11:

JBP3.4,PO11

ORLIE,#10000100B;(EA)=1,(EX1)=1

ORLIP,#00000100B;(PX1)=1

MOVPSW,#00H

MOVSP,#70H

PO12:

MOVP1,#11111110B

ACALLDELAY

MOVP1,#11111101B

ACALLDELAY

MOVP1,#11111011B

ACALLDELAY

MOVP1,#11110111B

ACALLDELAY

MOVP1,#11101111B

ACALLDELAY

MOVP1,#11011111B

ACALLDELAY

MOVP1,#10111111B

ACALLDELAY

MOVP1,#01111111B

ACALLDELAY

SJMPPO12

PO16:

CLRP3.5;中断服务子程序

JNBP3.3,$

RETI

DELAY:

MOVR5,#02H

DELAY1:

MOVR6,#00H

DELAY2:

MOVR7,#00H

DJNZR7,$

DJNZR6,DELAY2

DJNZR5,DELAY1

RET

END

九、扩展实验三:

外部计数

(1)排线保留;

(2)把单脉冲输出孔

和P3.4(单片机的T0计数器)相连;

(3)上、下拨动正脉冲开关一次,产生的脉冲下降沿使得单片机的T0计数器计数值加1,LED-8点亮;

(4)不断上、下拨动开关,观察8只LED的点亮情况。

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVP1,#11111111B;LED-1~LED-8全灭

MOVTMOD,#00000101B;T0计数器初始化,方式1计数

MOVTH0,#00H    ;T0的计数初值设为0  

MOVTL0,#00H    

SETBTR0;T0计数器开始计数

AGAIN:

MOVA,TL0;读取T0计数器的低8位计数值

CPLA

MOVP1,A

SJMPAGAIN

END

将T0换成T1,如何修改程序?

十、扩展实验四:

位异或

8051单片机中没有对两个位进行异或操作的指令,请编程实现:

(P1.2)<===(P1.0)⊕(P1.1)

(1)拔掉排线;

(2)将P1.0接K7,P1.1接K8,P1.2接LED-3;

(2)将K7、K8进行4种组合,观察LED-3的点亮情况。

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVC,P1.0

ANLC,/P1.1

MOV00H,C

MOVC,P1.1

ANLC,/P1.0

ORLC,00H

MOVP1.2,C;(P1.2)=0时,LED-3才会点亮

SJMPMAIN

END

十一、扩展实验五:

定时输出周期2s占空比1:

1的连续方波。

自己接线、编程。

实验二内、外RAM数据传送实验

一、实验目的

熟悉星研集成环境软件的使用方法,熟悉MCS51汇编指令,学会编写简单程序,掌握51单片机数据传输的方法。

二、实验内容

1、熟悉星研集成环境软件的使用方法。

2、编写程序,实现内、外RAM数据段的传送与校验。

三、程序框图

四、实验步骤

在内部RAM单元30H~3FH中输入数据,使用单步、断点方式调试程序,检测外部数据RAM的1000H~100FH中的内容。

熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。

五、程序清单

将内部RAM从Address1开始的16个字节内容,传送到外部RAM从Address2开始的16个单元里,然后再作比较。

Address1

DATA

30H

Address2

XDATA

1000H

ORG

0000H

LJMP

SUN

ORG

0100H

SUN:

MOV

SP,#60H

MOV

MOV

P1,#0FFH

R0,#Address1

MOV

DPTR,#Address2

MOV

R7,#10H

SUN1:

MOV

A,@R0

;传送

MOVX

@DPTR,A

INC

R0

INC

DPTR

DJNZ

R7,SUN1

MOV

R0,#Address1

MOV

DPTR,#Address2

MOV

R7,#10H

SUN2:

MOV

B,@R0

;比较

MOVX

A,@DPTR

CJNE

A,B,SUN3

INC

R0

INC

DPTR

DJNZ

R7,SUN2

CLR

SJMP

P1.0

$

;P1.0接LED-1

;传送正确,绿灯亮

SUN3:

CLR

SJMP

P1.2

$

;P1.2接LED-3

;传送错误,红灯亮

END

六、扩展实验一

编写一个程序,将16个外部数据RAM中的数据传送到16个内部数据RAM中:

Address1

DATA

30H

Address2

XDATA

1000H

ORG

0000H

LJMP

SUN

ORG

0100H

SUN:

MOV

SP,#60H

MOV

MOV

P1,#0FFH

R0,#Address1

MOV

DPTR,#Address2

MOV

R7,#10H

SUN1:

MOVX

A,@DPTR

;传送

MOV

@R0,A

INC

R0

INC

DPTR

DJNZ

R7,SUN1

MOV

R0,#Address1

MOV

DPTR,#Address2

MOV

R7,#10H

SUN2:

MOV

B,@R0

;比较

MOVX

A,@DPTR

CJNE

A,B,SUN3

INC

R0

INC

DPTR

DJNZ

R7,SUN2

CLR

SJMP

P1.0

$

;P1.0接LED-1

;传送正确,绿灯亮

SUN3:

CLR

SJMP

P1.2

$

;P1.2接LED-3

;传送错误,红灯亮

END

七、扩展实验二

编程将外部数据RAM中的存储区0000H~1FFFH所有单元均清零:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVP1,#0FFH

MOVDPTR,#0000H

AGAIN:

CLRA

MOVX@DPTR,A

INCDPTR

MOVA,DPH

CJNEA,#20H,AGAIN

CLRP1.0;P1.0接LED-1

SJMP$;结束时绿灯亮

以上程序为一种方法,你还能想出其它方法吗?

 

实验三定时、计数与中断实验(软件实验十一)

一、实验目的

熟悉MCS51单片机的定时、计数与中断系统的编程方法,了解定时器、计数器的应用、实时程序的设计与调试技巧。

二、实验内容

使用CPU的T0作定时器进行定时,T1作计数器对外部脉冲进行计数,并将脉冲频率值显示在数码管上。

三、程序框图

四、实验步骤

1、连线说明:

D3区:

SDA、SCL

——

A3区:

P3.0、P3.1

D3区:

A、B、C、D

——

F4区:

A、B、C、D

2、将导线的一头插入A3区的T1(P3.5);

3、打开实验仪的电源;

4、将导线的另一头与F3区的f≤250kHz的信号相连,对应的频率值显示在数码管上。

五、程序清单(源程序文件名:

cymometer.asm)

程序名称:

频率计(P3.5计数,每隔1秒处理一次)

Count50ms

DATA

30H

PulseCount

DATA

31H

;脉冲计数第三个字节

buffer

DATA

32H

;8个字节显示缓冲区

EXTRN

CODE(Display8)

ORG

0000H

LJMP

SUN

ORG

000BH

LJMP

TimerT0

;T0计时中断处理入口

ORG

001BH

LJMP

CounterT1

;T1计数中断处理入口

ORG

0100H

SUN:

MOV

SP,#60H

MOV

TMOD,#01010001B

;T0定时,T1计数,方式1

MOV

TH0,#03CH

;50ms定时

MOV

TL0,#0B0H

MOV

Count50ms,#20

;20*50ms=1s

MOV

TH1,#00H;计数

MOV

TL1,#00H

MOV

PulseCount,#0

SETB

EA

SETB

ET1

SETB

ET0

SETB

TR0

SETB

TR1

SUN1:

JB

TR0,$

SETB

TR0

;刷新显示

SETB

TR1

ACALL

B4toD4

Display:

MOV

R0,#buffer

;显示结果

MOV

A,R7

;低位

ACALL

B1toB2

;压缩BCD码转换成非压缩BCD码

MOV

A,R6

ACALL

B1toB2

MOV

A,R5

ACALL

B1toB2

MOV

A,R4

;高位

ACALL

B1toB2

MOV

R0,#buffer+7

MOV

R7,#7

ACALL

BlackDisplay

;将高位0消隐

MOV

R0,#buffer

LCALL

Display8

SJMP

SUN1

TimerT0:

MOV

TH0,#03CH

;50ms定时

MOV

TL0,#0B0H

DJNZ

Count50ms,TimerT0_exit

MOV

Count50ms,#20

CLR

TR0

CLR

TR1

MOV

R1,PulseCount

MOV

R2,TH1

MOV

R3,TL1

MOV

PulseCount,#0

MOV

TH1,#0

MOV

TL1,#0

TimerT0_exit:

RETI

CounterT1:

INC

PulseCount

RETI

END

六、思考题

1、为什么测试较高频率信号时,数码管上显示的数据一直在变化?

2、为什么频率信号不能超过0.5MHz?

实验四8255控制交通灯实验(基础硬件实验六)

一、实验目的

1、学习8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。

学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。

2、熟悉8255内部结构和与单片机的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。

二、实验设备

SUN系列实验仪一套、PC机一台。

三、实验内容

1、编写程序:

使用8255的PA口控制8只LED指示灯,实现交通灯功能。

2、连接线路验证8255的功能,熟悉它的使用方法。

四、实验原理图

五、实验步骤

1、连线说明:

B6区:

CS、A0、A1

——

A3区:

CS1、A0、A1

B6区:

JP56(PA口)

——

F5区:

JP65

2、观察实验结果,是否能看到模拟的交通灯控制过程。

六、实验程序(源程序文件名:

8255.asm)

COM_ADD

XDATA

0F003H

PA_ADD

XDATA

0F000H

PB_ADD

XDATA

0F001H

PC_ADD

XDATA

0F002H

ORG

0000H

LJMP

SUN

ORG

0100H

SUN:

MOV

SP,#60H

MOV

DPTR,#COM_ADD

MOV

A,#80H

;PA、PB、PC为基本输出模式

MOVX

@DPTR,A

MOV

DPTR,#PA_ADD

;灯全熄灭

MOV

A,#0FFH

MOVX

@DPTR,A

SUNT1:

MOV

A,#37H

MOVC

A,@A+PC

MOVX

@DPTR,A

;东西绿灯,南北红灯

ACALL

DL5S

MOV

R4,#6

SUNT2:

MOV

A,#30H

MOVC

A,@A+PC

MOVX

@DPTR,A

;东西绿灯闪烁,南北红灯

ACALL

DL500ms

MOV

A,#29H

MOVC

A,@A+PC

MOVX

@DPTR,A

ACALL

DL500ms

DJNZ

R4,SUNT2

MOV

A,#23H

;东西黄灯亮,南北红灯

MOVC

A,@A+PC

MOVX

@DPTR,A

ACALL

DL3S

MOV

A,#1EH

;东西红灯,南北绿灯

MOVC

A,@A+PC

MOVX

@DPTR,A

ACALL

DL5S

MOV

R4,#6

SUNT3:

MOV

A,#17H

;东西红灯,南北绿灯闪烁

MOVC

A,@A+PC

MOVX

@DPTR,A

ACALL

DL500ms

MOV

A,#10H

MOVC

A,@A+PC

MOVX

@DPTR,A

ACALL

DL500ms

DJNZ

R4,SUNT3

MOV

A,#0AH

;东西红灯,南北黄灯亮

MOVC

A,@A+PC

MOVX

@DPTR,A

ACALL

DL3S

SJMP

SUNT1

DB

01111110B

;东西绿灯,南北红灯

DB

11111110B

;东西绿灯闪烁,南北红灯

DB

10111110B

;东西黄灯亮,南北红灯

DB

11011011B

;东西红灯,南北绿灯

DB

11011111B

;东西红灯,南北绿灯闪烁

DB

11011101B

;东西红灯,南北黄灯亮

DL500ms:

MOV

R5,#25

DL500ms1:

MOV

R6,#100

DL500ms2:

MOV

R7,#100

DJNZ

R7,$

DJNZ

R6,DL500ms2

DJNZ

R5,DL500ms1

RET

DL3S:

MOV

R4,#6

DL3S1:

LCALL

DL500ms

DJNZ

R4,DL5S1

RET

DL5S:

MOV

R4,#10

DL5S1:

LCALL

DL500ms

DJNZ

R4,DL5S1

RET

END

七、实验扩展及思考

1、如何对8255的PC口进行位操作?

2、8255的输出口可以读出内容进行修改,然后再回送,你知道吗?

实验五并行DA实验(基础硬件实验九)

一、实验目的

了解数模转换器(DAC)的工作原理;学习DAC0832与单片机的接口电路;掌握DAC0832的软件编程。

二、实验设备

SUN系列实验仪一套、PC机一台、示波器一台。

三、实验内容

1、编写程序,用DAC0832芯片输出正弦波。

2、按图连线,运行程序,使用示波器观察输出的波形。

四、实验原理图

五、实验步骤

1、连线说明:

B3区:

CS

——

A3区:

CS1

2、运行程序,示波器的探头接B3区的OUT,观察实验结果,是否产生正弦波。

六、演示程序(源程序文件名:

DA0832.asm)

用DAC0832芯片输出正弦波:

Addr_0832

XDATA

0FF00H

;0832输出口地址

ORG

0000H

LJMP

SUNT

ORG

0100H

SUNT:

MOV

SP,#60H

MOV

DPTR,#TAB_1

MOV

P2,#HIGH(Addr_0832)

;0832数据写入口地址

MOV

R0,#LOW(Addr_0832)

MOV

R4,#00H

SUNT1:

MOV

A,R4

MOVC

A,@A+DPTR

MOVX

@R0,A

;DA转换输出一次

INC

R4

CJNE

R4,#72,$+3

JC

SUNT2

MOV

R4,#0

SUNT2:

LCALL

Delay

SJMP

SUNT1

;下一轮

Delay:

PUSH

07H

MOV

R7,#50H

DJNZ

R7,$

POP

07H

RET

TAB_1:

DB7FH,8BH,96H,0A1H,0ABH,0B6H,0C0H,0C9H,0D2H

DB0DAH,0E2H,0E8H,0EEH,0F4H,0F8H,0FBH,0FEH,0FFH,0FFH

DB0FFH,0FEH,0FBH,0F8H,0F4H,0EEH,0E8H,0E2H,0DAH,0D2H

DB0C9H,0C0H,0B6H,0ABH,0A1H,096H,08BH,07FH

DB74H,69H,5EH,54H,49H,40H,36H,2DH,25H,1DH,17H,11H,0BH,7,4,2,0,0

DB0,2,4,7,0BH,11H,17H,1DH,25H,2DH,36H,40H,49H,54H,5EH,69H,74H

END

七、思考题

1、DAC0832如何输出锯齿波或

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

当前位置:首页 > 高中教育 > 高考

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

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