单片机实验指导书Word文档下载推荐.docx
- 文档编号:20445053
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:14
- 大小:167.43KB
单片机实验指导书Word文档下载推荐.docx
《单片机实验指导书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
8051中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为12MHZ,则一个机器周期为12÷
12us。
现要写一个延时0.1s的程序,可大致写出如下:
MOVR7,#X
(1)
DEL1:
MOVR6,#200
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要2us,
现求出X值:
2+X(2+200×
2+2)=0.1×
10⁶
指令
(1)指令
(2)指令(3)指令(4)
所需时间所需时间所需时间所需时间
X=(0.1×
10⁶-2)/(2+200×
2+2)=248D=F8H
五、实验原理图:
P1口输出实验
六、程序框图:
七、参考程序如下:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVSP,#60H
MOVA,#0FEH
TT:
MOVP1,A
LCALLDELAY
RLA
SJMPTT
DELAY:
MOVR0,#10;
延时1秒
DEL1:
MOVR1,#200
DEL2:
MOVR2,#250
DJNZR2,$
DJNZR1,DEL2
DJNZR0,DEL1
RET
END
实验二简单I/O口扩展实验一
——交通灯控制实验
1.学习在单片机系统中扩展简单I/O接口的方法。
2.学习数据输出程序的设计方法。
3.学习模拟交通灯控制的实现方法。
51单片机实验箱
P1口做输出口,接六只发光二极管,控制六个发光二极管燃灭,模拟交通灯管理。
要完成本实验,首先必须了解交通路灯的燃灭规律。
本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。
而交通灯的燃灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管使其点亮应使相应输入端为低电平。
五、实验原理图
ORG0000H
AJMPMAIN
ORG0100H
STATE0:
MOVA,#0DBH
MOVR1,#6
TT0:
DJNZR1,TT0
STATE1:
MOVA,#0DDH
MOVR1,#20
TT1:
DJNZR1,TT1
MOVR1,#5
STATE2:
MOVA,#0DEH
MOVA,#0DFH
DJNZR1,STATE2
STATE3:
MOVA,#0EBH
MOVR1,#20
TT2:
DJNZR1,TT2
STATE4:
MOVA,#0F3H
MOVA,#0FBH
DJNZR1,STATE4
SJMPSTATE1
MOVR2,#10
MOVR3,#100
MOVR4,#250
DJNZR4,$
DJNZR3,DEL2
DJNZR2,DEL1
问题:
1、程序设计的原则及步骤?
2、汇编语言程序有几种结构形式?
本实验中包含哪几个结构?
实验三中断实验
———有急救车的交通灯控制实验
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
在实验二的内容的基础上增加允许急救车优先通过的要求。
当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
本实验以单脉冲为中断申请,表示有急救车通过。
交通灯的燃灭规律见实验二。
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:
一是主程序中的延时程序和中断处理程序中的延时程序不能混用。
还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:
MOVA,#0F0H(0)
MOVX@R1,A
(1)
MOVSAVE,A
(2)
程序如果正好执行到
(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOVA,SAVE指令,由于主程序中没有执行
(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将
(1)、
(2)两句顺序颠倒一下则没有问题。
发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。
(同实验二)
主程序框图中断程序框图
AJMPMAIN
ORG0003H
AJMPINT_0
ORG0100H
SETBEA
SETBEX0
SETBIT0;
外部中断为下降沿有效
SETBP3.2
MOVA,#0F6H
MOVA,#0D7H
MOVA,#0E7H
MOVA,#0F7H
MOVA,#0F5H
INT_0:
PUSHACC
PUSH02H
PUSH03H
PUSH04H
MOVR0,#20
XX:
LCALLDELAY
DJNZR0,XX
POP04H
POP03H
POP02H
POPACC
CLRIE0
RETI
———循环彩灯实验
1.学习8051内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编写方法。
三、实验原理:
1.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
本实验中时钟频率为12MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔50毫秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=20,即可实现1秒延时。
时间常数可按下述方法确定:
机器周期=12÷
晶振频率=12/(12×
106)=1us
设计数初值为X,则X=
=15536D
化为十六进制则X=3CB0H,故初始值为TH1=3CH,TL1=B0H
2.初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
四、实验题目
由8051内部定时器1按方式1工作,即作为16位定时器使用,每1秒钟T1溢出中断一次。
P1口的P1.0~P1.7分别接发光二极管的L1~L8。
要求编写程序模拟一循环彩灯,彩灯变化花样可自行设计。
例程给出的变化花样为:
①L1、L2、…L8依次点亮;
②L1、L2、…L8依次熄灭;
③L1、L2、…L8全亮、④全灭,让发光二极管按以上规律循环显示下去。
五、实验电路:
主程序框图中断程序框图
ORG001BH
AJMPTIMER1
MOVTMOD,#10H
SETBEA
SETBET1
MOVTH1,#03CH;
50MS
MOVTL1,#0B0H
MOVR1,#0
MOVDPTR,#TAB
SETBTR1
MOVA,R1
MOVCA,@A+DPTR
CJNER1,#18,TT
SJMPMAIN
TIMER1:
MOVTH1,#03CH
DECR0
CJNER0,#0,XX
INCR1
TAB:
DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
DB00H,0FFH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书