单片机实训作业Word格式.docx
《单片机实训作业Word格式.docx》由会员分享,可在线阅读,更多相关《单片机实训作业Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
MOVR5,#30
JMPDE1
DE05S:
MOVR5,#05
DE1:
MOVR6,#200
DE2:
MOVR7,#126
DE3:
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
RET
END
2、单灯闪烁程序:
ORG0000H
CLRP0.6
3、流水灯程序:
SETBP0.6
SETBP1.7
CLRP0.7
CLRP0.6
SETBP0.7
CLRP1.7
SETBP0.6
DJNZR7,DE3
DJNZR6,DE2
END
4、花样灯程序:
ORG0000H
SJMPMAIN
ORG0030H
MOVA,#000H
MOVP0,A
LCALLDE3S
MOVA,#0FFH
LCALLDE3S
MOVA,#0FEH
MOVR1,#0008
LOOP1:
RLA
LCALLDE05S
DJNZR1,LOOP1
MOVA,#07EH
MOVA,#0BDH
MOVA,#0DBH
MOVA,#0E7H
MOVA,#0FEH
LOOP2:
RRA
DJNZR1,LOOP2
AJMPMAIN
JMPDE1
MOVR5,#05
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
感受:
通过对这次单片机的实践,我对单片机有了更深的理解。
虽然只是一些比较简单的设计,但是我们还是把书翻了好几遍,对上学期的学习还是忘了一些,可能是放假的缘故吧!
不管怎么样,51单片机的设计,给我们的学习更进了一步,使我们的基础业更牢固了,这一点我很庆幸。
项目二:
定时器和计数器系统的制作
实验目的:
掌握定时器和计数器的使用方法,深入理解定时器和计数器的工作过程,学会用正确的语言编写定时器和计数器程序的方法。
实验设备:
最小系统一套,PC机一台,KEIL软件一套,烧录软件一套。
实验说明:
L0-L7顺序接到P0.0-P0.7引脚上。
实验内容:
1.单灯闪烁。
用查询方式和中断方式点亮P0.0口的灯,要求亮50ms,熄50ms。
2.两灯互闪。
用查询方式使P0.0和P0.1两灯按1s互相闪动。
3.用定时计数器0产生秒钟、分针、时钟,并分别用三只灯的亮与熄表示(闪烁)。
2011年10月14日
程序如下:
(1)、单灯闪烁:
1、查询方式:
ORG0000H
SJMPMAIN
ORG0030H
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H
CLRP0.0
LCALLDELAY
SETBP0.0
DELAY:
SETBTR0
JNBTF0,$
CLRTR0
CLRTF0
RET
END
2、中断方式:
ORG0000H
ORG000BH
AJMPSER_T0
MOVTMOD,#01H
SETBEA
SETBET0
SETBTR0
AJMP$
SER_T0:
MOVTH0,#9EH
CPLP0.0
RETI
(2)、两灯互闪:
MOVTH0,#63H
MOVTL0,#18H
MOV30H,#200
SETBP0.0
CLRP0.1
SETBP0.1
SETBTR0
DJNZ30H,DELAY
(3)、时间显示:
MOVTMOD,#00H
MOVTH1,#63H
MOVTL1,#18H
MOV30H,#200
MOVR0,#0030
MOVR1,#0001
MOVR3,#0030
LOOP:
SETBP0.1
SETBP0.2
CLRP0.0
LCALLDELAY
SETBP0.0
DJNZR0,LOOP
CLRP0.1
SETBP0.1
DJNZR1,LOOP1
DJNZR3,MAIN
CLRP0.2
DJNZR1,LOOP2
SETBTR1
JNBTF1,$
CLRTR1
CLRTF1
DJNZ30H,DELAY
实训心得:
通过上学期对单片机的学习经验,对于这次关于单片机的实训,我又从中学到了一些知识!
经上次的学习实践,通过老师的讲解和查阅资料,我了解到了单片机是一个很有难度的课程。
本次又在上次的基础上给我们的任务是关于一些中断方面和定时计数方面的课题,在编程序的时候感觉到有些困难,这些是我在以前的学习中没有掌握牢固的,所有我们一直在翻阅书本,使自己能够更好的运用。
通过这次实训,在单片机的认识和学习上,我感觉又有了新的提升!
同时也对单片机更浓厚的兴趣!
在今后的学习中,我会再接再厉!
项目三4×
4矩阵式键盘识别技术
设计者:
徐升学号:
0905031203
2011-11-04
1.实验任务
如图2所示,用AT89S51的并行口P1接4×
4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;
在数码管上显示每个按键的“0-F”序号。
对应的按键的序号排列如图1所示
图.1
2.硬件电路原理图
图2
3.系统板上硬件连线
(1.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上;
(2.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;
要求:
P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
4.程序设计内容
(1.4×
4矩阵键盘识别处理
(2.每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:
确定有无键按下,判断哪一个键按下,键的功能是什么;
5.程序框图:
COUNTEQU30H
ORG0000H
LJMPSTART
ORG0003H
RETI
ORG000BH
ORG0013H
ORG001BH
ORG0023H
ORG002BH
ORG0100H
START:
LCALLCHUSHIHUA
LCALLPANDUAN
LCALLXIANSHI
LJMPSTART
CHUSHIHUA:
MOVCOUNT,#00H
RET
PANDUAN:
MOVP3,#0FFH
CLRP3.4
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZSW1
LCALLDELAY10MS
MOVA,P3
CJNEA,#0EH,K1
MOVCOUNT,#0
LJMPDK
K1:
CJNEA,#0DH,K2
MOVCOUNT,#4
LJMPDK
K2:
CJNEA,#0BH,K3
MOVCOUNT,#8
K3:
CJNEA,#07H,K4
MOVCOUNT,#12
K4:
NOP
SW1:
MOVP3,#0FFH
CLRP3.5
ANLA,#0FH
XRLA,#0FH
JZSW2
LCALLDELAY10MS
JZSW2
MOVA,P3
CJNEA,#0EH,K5
MOVCOUNT,#1
LJMPDK
K5:
CJNEA,#0DH,K6
MOVCOUNT,#5
K6:
CJNEA,#0BH,K7
MOVCOUNT,#9
K7:
CJNEA,#07H,K8
MOVCOUNT,#13
K8:
SW2:
CLRP3.6
XRLA,#0FH
JZSW3
CJNEA,#0EH,K9
MOVCOUNT,#2
K9:
CJNEA,#0DH,KA
MOVCOUNT,#6
KA:
CJNEA,#0BH,KB
MOVCOUNT,#10
KB:
CJNEA,#07H,KC
MOVCOUNT,#14
KC:
SW3:
CLRP3.7
JZSW4
LCALLDELAY10MS
CJNEA,#0EH,KD
MOVCOUNT,#3
KD:
CJNEA,#0DH,KE
MOVCOUNT,#7
KE:
CJNEA,#0BH,KF
MOVCOUNT,#11
KF:
CJNEA,#07H,KG
MOVCOUNT,#15
KG:
SW4:
LJMPPANDUAN
DK:
RET
XIANSHI:
MOVA,COUNT
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
SK:
ANLA,#0FH
XRLA,#0FH
JNZSK
DELAY10MS:
MOVR6,#20
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
MOVR5,#20
DJNZR5,LOOP
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
心得体会:
经过本周的单片机实习课,我个人有不少收获,本周的项目课程是4×
4矩阵式键盘识别技术。
使我从硬件软件的结合上理论联系实际,提高动手能力,从而更全面掌握单片机的应用。
通过单片机实验的编制和调试使我对硬件设计及调试更生科的了解。
使我更进一步掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法。
在今后的学习中,我会更加努力的学习相关知识,以使自己的专业水平有一个提高。
项目四报警产生器
(设计者:
徐升09电仪2班0905031203)
(设计时间:
2011-11-06)
用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。
2.电路原理图
图4.6.1
(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;
(2.在“音频放大模块”区域中的SPKOUT端口上接上一个8欧的或者是16欧的喇叭;
(3.把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上;
(1.信号产生的方法
500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;
5.程序框图
(此程序采用的是单片机自带开关(P3.3)不是外接开关,蜂鸣器也为自带(P1.7)。
故与上面描述有出入)
MAINBIT00H
SJMPSTART
ORG0030H
JBP3.3,START
JNBMAIN,NEXT
MOVR2,#200
DV:
CPLP1.7
LCALLDELY500
DJNZR2,DV
CPLMAIN
NEXT:
DV1:
DJNZR2,DV1
SJMPSTART
DELY500:
MOVR7,#250
DJNZR7,LOOP
1、万事开头难、要勇敢迈出第一步。
开始的时候,不要老是给自己找借口。
2、知识点用到才学,不用的暂时丢一边。
厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。
3、程序不要光看不写,一定要自己写一次。
最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。
。
当你自己能写出来的时候,说明你就真的懂了。