单片机实验讲义文档格式.docx

上传人:b****5 文档编号:21025126 上传时间:2023-01-27 格式:DOCX 页数:29 大小:2.07MB
下载 相关 举报
单片机实验讲义文档格式.docx_第1页
第1页 / 共29页
单片机实验讲义文档格式.docx_第2页
第2页 / 共29页
单片机实验讲义文档格式.docx_第3页
第3页 / 共29页
单片机实验讲义文档格式.docx_第4页
第4页 / 共29页
单片机实验讲义文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

单片机实验讲义文档格式.docx

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

单片机实验讲义文档格式.docx

掌握常用算术运算程序的编写方法;

产生常用算术运算子程序备用。

编写下列算术运算子程序,并用“软件模拟仿真”调试通过。

⑴双字节无符号加法运算子程序;

⑵双字节无符号减法运算子程序;

⑶双字节无符号乘法运算子程序;

⑷双字节无符号除法运算子程序。

3、思考题

如何将无符号算术运算程序用于有符号算术运算?

熟习MCS-51逻辑运算类指令的功能特点;

掌握逻辑控制

程序的编写方法。

⑴在实验台上,按下图连接实验线路。

⑵编写程序,模拟下列逻辑表达式的功能:

①P1.2=P1.0∧P1.1

②P1.3=P1.0∨P1.1

③P1.4=P1.0⊕P1.1

⑶将程序在仿真器上调试通过,验证逻辑功能是否正确。

如何用上述电路模拟二-四译码器的逻辑功能?

实验五RAM扩展

掌握外部RAM的扩展方法;

初步学会硬件仿真调试方法;

学会RAM芯片质量检测方法。

⑴在单片机实验台上,按下图连线;

⑴编写6264的质量检测程序,在仿真器上调试通过。

⑵执行程序,验证程序结果是否正确。

如何检查外部RAM的容量?

实验六8279显示器和键盘接口

掌握8279与8031的接口方法;

掌握8279的工作原理和编程方法;

产生通用键盘和显示子程序备用。

⑴熟习8279键盘和显示器电路图。

⑵按下图编写实验程序。

⑶将程序在仿真器上联机调试通过。

执行程序,验证按键功能是否正常?

⑷将键盘和显示程序段,分别保存为子程序备用。

实验七定时/计数器应用

掌握8031片内定时/计数器的使用方法;

学会中断服务程序的编写方法;

产生时钟程序备用。

⑴利用T0产生10ms定时中断,编写一个24小时制数字钟程序。

要求:

从键盘输入时钟初值,并进行初值佥法性检查,如果初值正确,则自动启动时钟计时,否则重新输入初值。

⑵将程序在仿真器上调试通过。

执行程序,用自己的手表作为标准,观察10分钟,修正数字钟的定时器初值。

⑶参照下图连线,将数字钟的定时器初始化为计数器方式,

并修改计时参数,使时钟走时准确。

(选作)

实验八A/D转换器接口

掌握A/D0809与8031的接口方法;

了解0809转换器性能及编程方法;

了解用单片机进行数据采集和显示的方法。

⑴在实验台上,按下图连线。

⑵编写程序,将A/D转换结果按0.00-5.00格式显示。

⑶将程序在仿真器上调试通过。

执行程序,调节模拟电压输出,观察数字电压值是否符合要求。

如何修改程序实现多路数据采集、存储和显示?

A/D0809实验连线图

实验九D/A转换器接口

掌握D/A0832与8031的接口方法;

了解0832转换器性能及编程方法;

了解用单片机产生常用波形的方法。

⑵编写程序产生下列波形:

①锯齿波

②方波

③阶梯波

④三角波

⑤正弦波(选作)

⑶将程序在仿真器上调试通过,并用示波器观察对应波形。

①如何改变输出波形的频率和幅度?

②如何产生任意波形?

实验十串行接口通信

熟习8031片内串行口的性能,掌握串行通信程序的编写方法和调试方法。

⑴相邻两组同学按下图连接通信电缆。

⑵编写双机通信程序,将键盘输入的字符在本机显示,

同时发向对方;

接收方将收到的信息显示在LED显示器上。

⑶将程序在仿真器上调试通过,检查接收和发送的数据是

否一致。

①如何提高通信速率?

②如何实现多机通信?

附录

1Wave单片机实验平台

 

1.6键值表

键号

键值

01

7

0A

E

13

1

08

8

11

F

1B

2

09

9

19

-

23

3

10

A

1A

+

22

4

18

B

03

GO

21

5

00

C

0B

6

02

D

12

扩展模块

资源分配

27C256

0000H—7FFFH

6264

8000H—9FFFH

8279

0A000H—0AFFFH

备用

0B000H—0BFFFH

0C000H—0CFFFH

0D000H—0DFFFH

0E000H—0EFFFH

1.7硬件空间分配

2实验参考程序

2.16264质量检测程序

程序执行后,如果6264有质量问题,则片内RAM30H,31H单元保存第一个出错单元的地址,32H单元保存该单元的值;

如果6264没有质量问题,则片内RAM30H,31H单元的内容为6264末地址+1(即A000H),32H单元的内容为AAH。

org0000h

sjmpmain

org0030h

main:

movdptr,#8000h;

6264首地址

clra

mov30h,a

mov31h,a

mov32h,a

rp:

mova,#55h

movx@dptr,a

nop

movxa,@dptr

cjnea,#55h,er

incdptr

mova,dph

cjnea,#0a0h,rp

movdptr,#8000h

rp1:

mova,#0aah

cjnea,#0aah,er

incdptr

mova,dph

cjnea,#0a0h,rp1

er:

mov30h,dph

mov31h,dpl

sjmp$

end

2.28279显示器和键盘接口参考程序

⑴在数码管上显示键盘值

ORG0000H

sjmpMAIN

org0030h

MAIN:

MOVSP,#60H

MOVP2,#0A0H

MOVR6,#0FFH

NOP

L0014:

DJNZR6,L0014

MOVR0,#01H

MOVA,#00H;

8279初始化

MOVX@R0,A

MOVA,#32H

MOVX@R0,A

MOVA,#0DFH

MOVX@R0,A

L013A:

MOVXA,@R0

JBACC.7,L013A

MOVR0,#00H

MOVA,#0CH;

显示“P.“

INCR0

MOVA,#80H

L0027:

MOV30H,#80H

MOV31H,#40H

L002D:

ANLA,#07H

CJNEA,#00H,L0037;

有键按下吗?

AJMPL002D

L0037:

MOVR0,#00H

MOVXA,@R0

MOVR1,#00H

MOVDPTR,#JIAN;

查键位

L0041:

MOVA,#00H

MOVCA,@A+DPTR

CJNEA,B,L0049

AJMPL0066

L0049:

INCDPTR

INCR1

MOVA,R1

JBACC.4,L0027

AJMPL0041

L0066:

MOVA,30H

MOVA,R1

MOVR0,31H

MOV@R0,A

INC31H

MOVDPTR,#ZHI

MOVCA,@A+DPTR;

查字形

INC30H

CJNEA,#86H,L0081

AJMPL0027

L0081:

ZHI:

DB0C0H,0F9H,0A4H,0B0H,99H,92H

DB82H,0F8H,80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH,0CH,0BFH

JIAN:

DB01H,08H,09H,10H,18H,00H

DB02H,0AH,11H,19H,1AH,03H,0BH

DB12H,13H,1BH,23H,22H,21H

⑵键盘子程序

KEYSUB:

MOVDPTR,#0A000H;

键盘子程序

MOVXA,@DPTR

MOVB,A

MOVR5,#00H

KEY1:

MOVA,#00H

MOVCA,@A+DPTR

CJNEA,B,KEY2

CLRPSW.5

AJMPKEYRET

KEY2:

INCR5

MOVA,R5

JNBACC.4,KEY1

MOVR5,#00H

SETBPSW.5

KEYRET:

RET

DB01H,08H,09H,10H,18H,00H

DB02H,0AH,11H,19H,1AH,03H

DB0BH,12H,13H,1BH,23H,22H,21H

⑶显示子程序

Display:

mov30h,#80h

mov31h,#40h

movr7,#06h

loop4:

movdptr,#0A001h

mova,30h

movr0,31h

mova,@r0

movdptr,#sedz

movca,@a+dptr

movdptr,#0A000h

movx@dptr,a

inc31h

inc30h

djnzr7,loop4

ret

sedz:

DB0c0h,0f9h,0a4h,0b0h,99h,92h

;

显示字符012345

DB82h,0f8h,80h,90h,88h,83h

6789AB

DB0c6h,0a1h,86h,8eh,40H,79H

CDEF0.1.

DB24H,30H,19H,12H,02H,78H

2.3.4.5.6.7.

DB00H,10H,0FFH

8.9.不显示

2.3定时/计数器应用参考程序

24小时制时钟

org0000h

ajmpmain

org000bh

ljmpt0int

ORG0030H

main:

movsp,#60h

movdptr,#0A001h;

mova,#00h

mova,#0dfh

mova,#22h

rest:

mova,#00h;

显示缓冲区初值

movr0,#40h

clr00:

mov@r0,a

incr0

cjner0,#46h,clr00

movtmod,#02h

movth0,#06h

movtl0,#06h

mov57h,#20

mov58h,#100

mov59h,#40h

jmpx:

acalldisplay;

显示

Keyin:

movdptr,#0a001h

anla,#07h

cjnea,#00h,daini1

sjmpjmpx

daini1:

lcallkeysub

mova,r5;

键号在r5中

cjnea,#0ah,ccon

ccon:

jncjmpx

movr0,59h

mov@r0,a

inc59h

cjner0,#45h,jmpx

mov59h,#40h

acallchktime

jbpsw.5,rest;

时间初值不合法(f0=1),重新输入

setb8ch

setb0afh

nop

setb0a9h

dir:

acalldisplay;

sjmpdir

chktime:

movr1,#40h;

检查时钟初值

acallhb

subba,#24h

jncchker

subba,#60h

acallhb

subba,#60h

jncchker

clrpsw.5

ret

chker:

setbpsw.5

hb:

mova,@r1

swapa

incr1

orla,@r1

clrc

toint:

pushpsw

pushacc

pushdph

pushdpl

setbpsw.4

mova,58h

deca

mov58h,a

jnzret0

mov58h,#100

mova,57h

mov57h,a

movr0,#44h

acalldaad1

mova,r2

xrla,#60h

acallclr0

movr0,#42h

acalldaad1

acalldaad1

xrla,#24h

jnzret0

ret0:

popdpl

popdph

popacc

poppsw

reti

daad1:

mova,@r0

incr0

swapa

orla,@r0

adda,#01h

daa

movr2,a

anla,#0fh

mov@r0,a

mova,r2

decr0

anla,#0f0h

clr0:

2.4A/D转换器接口参考程序

把ADC0809通道0输入的模拟电压,转换后送8279显示

sjmpmain

Main:

movdptr,#0a001h;

mova,#00h

mova,#0dfh

mova,#22h

loop0:

movxa,@dptr

jbacc.7,loop0

mov40h,#0Ah;

显示缓冲器初始化

mov41h,#0Dh

mov42h,#1Ah

loop1:

lcalldisplay;

调显示子程序

movdptr,#0B000h;

0809AD开始转换

movr7,#0fh

loop2:

djnzr7,loop2

lcallBRY_5V

SJMLOOP1

BRY_5V:

MOVB,#51

DIVAB

ADDA,#10H;

加小数点

MOV43H,A

MOVA,B

MOVB,#5

DIVAB

CJNEA,#0AH,BRY

MOVA,#09H

MOVB,#04H

BRY:

MOV44H,A

MOVA,B

RLA

MOV45H,A

RET

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

当前位置:首页 > 高等教育 > 艺术

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

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