最新版单片机实验报告1534399Word下载.docx

上传人:b****8 文档编号:22559435 上传时间:2023-02-04 格式:DOCX 页数:40 大小:28.07KB
下载 相关 举报
最新版单片机实验报告1534399Word下载.docx_第1页
第1页 / 共40页
最新版单片机实验报告1534399Word下载.docx_第2页
第2页 / 共40页
最新版单片机实验报告1534399Word下载.docx_第3页
第3页 / 共40页
最新版单片机实验报告1534399Word下载.docx_第4页
第4页 / 共40页
最新版单片机实验报告1534399Word下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

最新版单片机实验报告1534399Word下载.docx

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

最新版单片机实验报告1534399Word下载.docx

Output1:

mova,#0fEH

movr5,#8

loop1:

3

CLRC

movC,DIR

JCOutput2

movP1,a

rla

AcallDelay

djnzr5,loop1

SjmpOutput1

Output2:

mova,#07fH

loop2:

JNCOutput1

rra

djnzr5,loop2

SjmpOutput2

Delay:

movr6,#0

DelayLoop1:

movr7,#0

DelayLoop2:

NOP

djnzr7,DelayLoop2

djnzr6,DelayLoop1

end4

八、实验现象:

进行全速运行后,跑跑马灯变亮,当拨动开关后,可以改变跑马灯的方向,实验结果与设计程序运行结果相符合,实验得到验证.

九、实验分析:

整体功能就是P3.0口相当于开关把值给了C,当在output1时C为0,如果在这时候按下开关以后。

继续完成剩下的程序后就跳到0utput2进行这时跑马灯的方向反了,在调用delay的程序延时了时间=256*256*4*机器周期时间。

十、实验总结:

首次单片机实验是对于实验箱进行了解及熟悉单片机的编程软件。

进行I/O口输入和输出的实验,通过8位电平的输出,用来控制跑马灯的方向。

这是第一个实验,但是由于刚刚开始,还不回自己编写程序,所以只能照搬原有程序了,但是自己会努力的。

实验二外部中断实验

2013年11月4日星期一

三、实验目的:

学习外部中断技术的基本使用方法。

INT0端接单次脉冲发生器。

按一次脉冲产生一次中断,CPU使P1.0状态发生一次反转,P1.0接LED灯,以查看信号反转。

1)系统各跳线器处在初始设置状态,用导线连接单次脉冲模块的输出端到CPU模块的P32;

CPU模块的P10接八位逻辑电平显示模块的灯。

3)连续按动单次脉冲产生电路的按键,发光二极管L0每按一次状态取反,即隔一次点亮。

//*************************************************

导线连接单次脉冲模块的输出端到CPU模块的P32,

CPU模块的P10接八位逻辑电平显示模块的L0灯。

LEDBITP1.0

LEDBufBIT20H

org0

ljmpStart

org3

Interrupt0:

pushPSW;

保护现场

cplLEDBuf;

取反LED

movc,LEDBuf

movLED,c

popPSW;

恢复现场

reti

Start:

clrLEDBuf

clrLED

movTCON,#01h;

外部中断0下降沿触发

movIE,#81h;

打开外部中断允许位(EX0)及总中断允许位(EA)

OK:

ljmpOK

end

全速运行程序,LED灯不亮,按下脉冲输入键时,每按一次脉冲产生键时,LED灯的状态取反一次。

本实验将TCON置入#01H,选择了外部中断0下降沿触发。

又由于P3.2直接与单次脉冲模块的输出端相连,则按下一次单次脉冲产生电路的按键,产生一次外部中断。

每产生一次中断,将LEDBuf取反一次,然后将LEDBuf内容放入进位标志位C,再将C内容放入20H,由于20H与LED灯相连,则每次按一下脉冲产生键,LED灯状态取反一次。

本次实验,对于外部中断功能的实现有了一定的的认识。

通过中断来对LED灯状态的不断取反,加深了对课本上中断这一章的理解层度。

外部中断在实际应用中处于十分重要的地位,许多设计中都应用了外部中断。

虽然这只是最基本的中断实验,在今后的学习中还会有更深的讲解,但是这却是目前最适合我们自己动手操作的实验,很有帮助。

6

实验三定时/计数器实验

2013年11月11日星期一

三、实验目的:

学习MCS-51内部计数器的使用和编程方法。

使用MCS-51内部定时/计数器,定时一秒钟,CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。

1)系统各跳线器处在初始设置状态,用导线连接CPU模块P10到八位逻辑电平显示模块的L0。

3)运行程序观察发光二极管隔一秒点亮一次,点亮时间为一秒。

导线连接CPU模块P10到八位逻辑电平显示模块的L0.

Tickequ10000;

10000x100us=1s

T100usequ156;

100us时间常数(6M)

C100usequ30h;

100us记数单元7

LEDBufbit20h

org000bh

T0Int:

pushPSW

mova,C100us+1

jnzGoon

decC100us

Goon:

decC100us+1

mova,C100us

orla,C100us+1

jnzExit;

100us记数器不为0,返回

movC100us,#27H;

#high(Tick)

movC100us+1,#10H;

#low(Tick)

100us记数器为0,重置记数器

Exit:

popPSW

movTMOD,#02h;

方式2,定时器

movTH0,#t100us

movTL0,#t100us

movIE,#b;

EA=1,IT0=1

setbTR0;

开始定时

clrP1.0

#high(Tick)

#low(Tick)

Loop:

movP1.0,c

ljmpLoop

8

八、实验结果:

全速运行并按下按钮后,发光二极管点亮,大约1秒后熄灭,又过1秒,再次点亮,之后又熄灭,如此循环下去。

这里使用计时器T0进行1s中断然后使led灯1s亮1s灭,但是这里应为T0方式2记不到1s所以用C100us来做标记来使时间满足1s=10000*100us。

本次实验让我学会了如何利用定时器定时时间长于该方式下的最大时间。

而且这次实验让我明白了等待中断有不只一条语句可以使用。

理论知识毕竟只是纸上谈兵,只有应用到实际操作中,才能收获价值。

实验四交通灯控制实验

2013年11月18日星期一

掌握十字路口交通灯控制方法。

利用系统提供的双色LED显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。

4位LED数码管显示时间,LED显示红绿灯状态。

P10同时接G1、G3;

P11同时接R1、R3;

P1.2同时接G2、G4;

P1.3同时接R2、R4;

P1.6、P1.7分别接静态数码显示的DIN、CLK。

3)观察十字路口交通灯效果。

//*******************************************************************

接线:

P1.0同时接G1、G3,P1.1接R1、R3,P1.2接G2、G4,P1.3同时接R2、R4,

P1.6、P1.7接静态数码显示的DIN、CLK。

//*******************************************************************10

SECOND1EQU30H;

东西秒寄存器

SECOND2EQU31H;

南北秒寄存器

DBUFEQU40H;

显示缓冲1

TEMPEQU44H;

显示缓冲2

LED_G1BITP1.0;

东西绿灯

LED_R1BITP1.1;

东西红灯

LED_G2BITP1.2;

南北绿灯

LED_R2BITP1.3;

南北红灯

DinBITP1.6;

串行显示数据

CLKBITP1.7;

串行显示时钟

ORG0100H

LCALLSTATE0;

调用状态0

LCALLDELAY;

调用延时

MOVTMOD,#01H;

置T0工作方式1

MOVTH0,#3CH;

置T0定时初值50mS

MOVTL0,#0B0H

SETBTR0;

启动T0CLREA

LOOP:

MOVR2,#20;

置1S计数初值50mS*20=1S

MOVR3,#20;

红灯20S

MOVSECOND1,#25;

东西秒显示初值25S

MOVSECOND2,#25;

南北秒显示初值25S

LCALLDISPLAY

LCALLSTATE1;

调用状态1

WAIT1:

JNBTF0,WAIT1;

查询50mS到否

CLRTF0

恢复T0定时初值50mS

启动T0

DJNZR2,WAIT1;

判1S到否?

未到继续状态1

置50mS计数初值10

DECSECOND1;

东西秒显示减一

DECSECOND2;

南北秒显示减一

DJNZR3,WAIT1;

状态1维持20S

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

MOVR2,#5;

置50mS计数初值5*4=20

MOVR3,#3;

绿灯闪3S

MOVR4,#4;

闪烁间隔200mS

MOVSECOND1,#5;

东西秒显示初值5S

MOVSECOND2,#5;

南北秒显示初值5S

WAIT2:

LCALLSTATE2;

调用状态2

JNBTF0,WAIT2;

DJNZR4,WAIT2;

判200mS到否?

未到继续状态2

CPLLED_G1;

东西绿灯闪

DJNZR2,WAIT2;

置50mS计数初值

DJNZR3,WAIT2;

状态2维持3S

MOVR3,#2;

黄灯2S

MOVSECOND1,#2;

东西秒显示初值2S

MOVSECOND2,#2;

南北秒显示初值2S

WAIT3:

LCALLSTATE3;

调用状态3

JNBTF0,WAIT3;

查询30mS到否

DJNZR2,WAIT3;

未到继续状态3

置50mS计数初值11

DJNZR3,WAIT3;

状态3维持2S

WAIT4:

LCALLSTATE4;

调用状态4

JNBTF0,WAIT4;

DJNZR2,WAIT4;

未到继续状态4

DJNZR3,WAIT4;

状态4维持20S

WAIT5:

LCALLSTATE5;

调用状态5

JNBTF0,WAIT5;

恢复T0定时初值100mS

DJNZR4,WAIT5;

未到继续状态5

CPLLED_G2;

南北绿灯闪

闪烁200mS

DJNZR2,WAIT5;

置100mS计数初值12

DJNZR3,WAIT5;

状态5维持3S

WAIT6:

LCALLSTATE6;

调用状态6

JNBTF0,WAIT6;

查询100mS到否

DJNZR2,WAIT6;

未到继续状态6

置100mS计数初值

DJNZR3,WAIT6;

状态6维持2S

LJMPLOOP;

大循环

STATE0:

状态0

MOVP1,#0

CLRLED_G1

SETBLED_R1;

东西红灯亮

CLRLED_G2

SETBLED_R2;

南北红灯亮

RET

STATE1:

状态1

SETBLED_G1;

东西绿灯亮

CLRLED_R1

STATE2:

状态2

CLRLED_G213

STATE3:

状态3

SETBLED_G1

东西黄灯亮

STATE4:

状态4

SETBLED_G2;

南北绿灯亮

CLRLED_R2

STATE5:

状态5

STATE6:

状态6

SETBLED_G2

南北黄灯亮

DISPLAY:

数码显示

MOVA,SECOND1;

MOVB,#10;

16进制数拆成两个10进制数

DIVAB

MOVDBUF+1,A

MOVA,B

MOVDBUF,A

MOVA,SECOND2;

MOVDBUF+3,A

MOVDBUF+2,A

MOVR0,#DBUF

MOVR1,#TEMP

MOVR7,#4

DP10:

MOVDPTR,#LEDMAP

MOV

MOVC+DPTR

MOV@R1,A

INCR0

INCR1

DJNZR7,DP10

MOVR0,#TEMP

MOVR1,#4

DP12:

MOVR7,#8

DP13:

RLCA

MOVDIN,C

CLRCLK

SETBCLK

DJNZR7,DP13

DJNZR1,DP12

LEDMAP:

DB3FH,6,5BH,4FH,66H,6DH;

0,1,2,3,4,5

DB7DH,7,7FH,6FH,77H,7CH;

6,7,8,9,A,B

DB58H,5EH,7BH,71H,0,40H;

C,D,E,F,,-

movr5,#5

DLoop0:

movr6,#0

DLoop1:

movr7,#0

DLoop2:

NOP

djnzr7,DLoop2

djnzr6,DLoop1

djnzr5,DLoop0

ret

END

全速运行后,东西路口的绿灯亮,南北红灯亮,20秒后东西绿灯闪烁,3秒后熄灭,同时黄灯亮,维持2秒后熄灭,红灯亮,同时南北红灯熄灭,南北绿灯亮,20秒后绿灯闪亮,3秒后熄灭,同时黄灯亮,又过2秒熄灭,同时红灯亮,东西红灯熄灭,东西绿灯亮,如此循环。

完成了上述所需的交通灯的要求,而且数码管可以正确的显示所处的时间。

九、实验总结:

这次实验即交通灯的实验可能是本学期实验中程序最复杂的一个了,但是也是最接近生活的一个实验。

通过这次实验我体会到了一个大的程序都需要很多程序结合在一起最后才能完成所需的任务,这里就是把交通灯的每个状态分开然后一个一个编译,而且也用到了数码管显示程序。

只有注意每一个小的细节,才能最后综合在一起,形成一个大的复杂的整体,学习也应如此。

实验五串转并与并转串实验

2013年11月25日星期一

1.掌握使用74LS164扩展输出方法。

2.掌握使用74LS165扩展输入的方法。

使用74LS165扩展输入数据,使用74LS164扩展输出数据。

74LS165的并行口接八位逻辑电平输出(开关),CPU使用P1.0、P1.1和P1.2串行读入开关状态;

74LS164的并行口接一只数码管,CPU使用P1.3和P1.4串行输出刚读入的开关状态,使之在数码管上显示出来。

五、

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

当前位置:首页 > 幼儿教育 > 育儿知识

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

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