《单片机原理及应用》实验报告Word下载.docx

上传人:b****3 文档编号:18009646 上传时间:2022-12-12 格式:DOCX 页数:14 大小:33.67KB
下载 相关 举报
《单片机原理及应用》实验报告Word下载.docx_第1页
第1页 / 共14页
《单片机原理及应用》实验报告Word下载.docx_第2页
第2页 / 共14页
《单片机原理及应用》实验报告Word下载.docx_第3页
第3页 / 共14页
《单片机原理及应用》实验报告Word下载.docx_第4页
第4页 / 共14页
《单片机原理及应用》实验报告Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

《单片机原理及应用》实验报告Word下载.docx

《《单片机原理及应用》实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验报告Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

《单片机原理及应用》实验报告Word下载.docx

END

3、将相应的.hex文件下载到AT89S52单片机芯片内部,观察指示灯LS1~LS8的运行结果。

4、分析以下程序段,编译、下载后,观察运行结果跟上述程序有何区别。

程序1.2:

MAIN:

CALLDELAY

;

---显示延时----------

DELAY:

MOVR1,#0FFH

DELAY1:

MOVR2,#0FFH

DELAY2:

NOP

DJNZR2,DELAY2

DJNZR1,DELAY1

RET;

延时返回

5、在程序1.2的基础上,修改成从LS1~LS8依次点亮的流水灯程序,下载到单片机芯片中,观察实际运行结果。

四、思考题

1、如果程序编译后,在项目文件夹内找不到.hex文件,一般问题出在哪里?

2、P0.0~P0.7口置0、置1跟LS1~LS8的亮、灭有何关系?

为什么?

3、P0口如果改作为输入口,编程时应该注意什么?

实验二T0或T1定时器、计数器实验

1、掌握定时器T0或T1的工作方式;

2、掌握利用对定时器溢出的查询,实现定时的编程方法。

1、在Keil软件中,输入下列程序,编译、下载,观察实验板中LS1的工作状况。

单片机晶振12MHz,则程序2.1使LS1亮、灭的周期是多少?

程序2.1

MOV40H,#50

MOVTMOD,#10H

MOVTL1,#0B0H

MOVTH1,#3CH

SETBTR1;

启动T1

LP:

JBCTF1,LP2

AJMPLP

LP2:

MOVTL1,#0B0H;

重新设置计数初值

MOVTH1,#3CH

DJNZ40H,LP

MOV40H,#50

CPLP0.0

SJMPLP

END

2、修改程序2.1,使P0.7口接的LS8每隔0.5秒亮、灭一次,程序写入实验报告。

3、在上述程序基础上,改写实验一的流水灯程序,每隔1秒,从LS1~LS8依次闪亮一次,不断循环,程序写入实验报告。

1、如果单片机晶振频率改成6MHz,T0定时器在工作方式0,从0开始溢出一次,需要多少时间?

2、计数器和定时器差别在什么地方?

实验三中断实验

1、熟悉MCS-51单片机中断的编程方法;

2、利用定时器溢出中断产生定时的编程方法。

1、在Keil软件中,输入下列程序,编译、下载,观察实验板中指示灯工作状况。

已知晶振12MHz,则P0.7口指示灯闪烁的频率为多少?

程序3.1

ORG0000H

LJMPMAIN

ORG001BH;

定时器T1中断入口地址

AJMPINTT1

ORG0100H

MOVP0,#00H

MOVTMOD,#10H

MOVTH1,#3CH

MOVTL1,#0B0H

MOVIE,#88H

SETBTR1;

LP:

SJMPLP

ORG60H

INTT1:

MOVTH1,#3CH;

中断服务程序

CPLP0.7

RETI

2、在程序3.1的基础上,编写1秒钟闪烁切换间隔的流水灯程序,循环顺序来回切换,即LS1->

LS2->

…->

LS8,再切换成LS8->

LS7->

LS1

1、MCS-51有几个中断源,编写中断服务程序都有何规范?

2、定时器中断和查询两种工作方式都能实现定时,各有什么特点?

实验四单片机控制蜂鸣器实验

1、掌握单片机对利用蜂鸣器的控制方法;

2、结合定时器,产生定时的蜂鸣;

3、掌握蜂鸣器产生音乐的编程方法。

1、蜂鸣器接在P2.0口上,实验前接上跳线J12;

2、利用定时器实验的程序,每隔5秒,产生一次鸣叫,持续1秒,程序写入报告;

3、分析下面利用蜂鸣器产生音乐的程序4.1“兰花草”。

上网搜索更多的音乐,改写程序4.1,发出相应的音乐声。

1、伪指令DB、DW有什么作用?

2、“兰花草”程序中,用到了什么中断?

入口地址在哪里?

实验五交通灯控制实验

1、掌握键盘与数码管显示的基本方法;

2、掌握单片机程序综合设计的方法。

1、分析键盘程序5.1和数码管显示程序5.2。

程序5.1

程序名:

MCS51实验板配套程序-74HC165实验

功能:

读取74HC165并口上的键盘数据,同时判断键盘值进行led的开关

8个单键分别接在74HC165的并行口,相关连接见如下管脚定义,更详细见原理图。

------定义-----------------------------------

plbitP3.6;

165锁存

clkbitP3.7;

165时钟

DobitP3.5;

165数据

keyvarequ20h;

读取的键盘数据放到20H中

;

为便于以下程序直接使用S1-S8按钮,这里也要定义一下按钮的名称

s1bitkeyvar.0;

对应s1,下同

s2bitkeyvar.1

s3bitkeyvar.2

s4bitkeyvar.3

s5bitkeyvar.4

s6bitkeyvar.5

s7bitkeyvar.6

s8bitkeyvar.7

------使用实例------------------------------

main:

lcallRkey;

使用键盘前要读一次键盘值,仅这一点和直接连接的按键不同

jnbs1,key0;

到按键1按下处理,接下来和一般的直连按键使用方法一样

jnbs2,key1;

到按键2按下处理

ajmpmain

key0:

lcallDelay;

有必要的话要加上键抖延时

延时后再读键盘

jnbs1,key0_Dow;

再次判断的确是s1按下,到按下处理

-------一下程序和普通直接连接按键的处理方法相同------

key1:

去键抖延时

jnbs2,key1_Dow;

再次判断的确是s2按下,到按下处理

key0_Dow:

cplp0.0;

翻转LS1

k1l:

lcallRkey

jnbs1,k1l;

判断按键是否抬起,否则程序会重复读键

key1_Dow:

cplp0.1;

翻转LS2

k2l:

lcallRkey

jnbs2,k2l;

判断按键是否抬起,否则程序会重复读键

------读键盘子程序---------------------------

Rkey:

clrpl

setbpl;

-|_|-装入

movr0,#8;

读8位

loop:

movc,Do;

提取1位

rlca

setbclk

clrclk;

_|-|_时钟

djnzr0,loop

movkeyvar,a;

保存键盘值

ret

------延时程序--------------------------------

Delay:

movr1,#25

L1:

movr0,#200

djnzr0,$

djnzr1,L1

ret

end

程序5.2

MCS51U实验板配套程序-显示部分

在数码显示器上显示“1234”,以及LED灯显示10100101二进制。

电路介绍:

显示由一片74HC595驱动4位共阴数码管

详细连接见下面管脚定义,实验前要连接J13

********************************************************************

datbitp1.0;

定义驱动74595的数据脚为p1.0

clkbitp1.1;

74595的时钟

latbitp1.2;

栓锁

gwbitp1.3;

个位显示控制脚

swbitp1.4;

十位

bwbitp3.3;

百位

qwbitp3.4;

千位

sjgwequ30h;

显示数据存储器

sjswequ31h

sjbwequ32h

sjqwequ33h

--------------------------------

movsp,#40h

movp1,#0fh

movp0,#5ah;

显示10100101二进制

main:

显示1234这个数

movsjgw,#4;

个位显示4

movsjsw,#3;

十位显示3

movsjbw,#2;

百位显示2

movsjqw,#1;

千位显示1

abc:

lcalldisplay;

调用显示子程序

ljmpabc;

循环显示

************************************************************************

74HC595显示程序,使用RS1=1,RS0=0的1区

---------------------------------------------------------

display:

PUSHACC;

保存ACC

pushpsw

clrrs1

setbrs0;

使用第一区工作寄存器

movdptr,#xstab

mova,sjgw;

取得数据

movca,@a+dptr;

提取字模

acalldsout;

调用送出子程序

clrgw

acallds1ms;

调用显示1ms延时程序

setbgw

mova,sjsw

送出

clrsw

显示1ms

setbsw

mova,sjbw

clrbw

setbbw

mova,sjqw

clrqw

显示1ms

setbqw

poppsw

POPACC;

出栈

ret;

返回调用

---送出循环----------

dsout:

8位

dloop:

rlca;

高位在前

movdat,c;

送出1位

clrclk

djnzr0,dloop;

循环8次

setblat;

clrlat;

锁存

RET

ds1ms:

movr1,#10

ds1lo:

movr2,#100

djnzr2,$

djnzr1,ds1lo

延时返回

显示字表(共阴)

xstab:

DB3FH,06H,5BH,4FH;

"

0"

"

1"

2"

3"

DB66H,6DH,7DH,07H;

4"

5"

6"

7"

DB7FH,6FH,77H,7cH;

8"

9"

A"

B"

DB39H,5eh,79h,71h;

C"

D"

E"

F"

2、设计一个模拟路口交通灯的程序,P0.0红灯、P0.1为黄灯、P0.2为绿灯,按键S1启动,在数码管上显示倒计时。

30秒红灯;

3秒黄灯;

30秒绿灯。

之后全部熄灭。

再按下S1,再重复一次。

程序调试成功,当场演示,并写入实验报告。

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

当前位置:首页 > 法律文书 > 调解书

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

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