《单片机原理及应用》实验报告.docx
- 文档编号:9402391
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:39
- 大小:1.10MB
《单片机原理及应用》实验报告.docx
《《单片机原理及应用》实验报告.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验报告.docx(39页珍藏版)》请在冰点文库上搜索。
《单片机原理及应用》实验报告
本科生实验报告
实验课程XXXXX
学院名称XXXXXXXXXXXXXXX
专业名称XXXXXXXXX
学生姓名XXXX
学生学号XXXXXXXXXXXX
指导教师XXXXXX
实验地点XXXXXX
实验成绩
二〇一六年四月二〇一六年六月
《单片机原理及应用》实验报告
摘要
《单片机原理及应用》是电子科学与技术、电子信息工程、计算机科学与技术、自动控制等专业工程应用能力和创新能力培养的一门重要专业基础课。
课程重点讲授:
单片机存储器体系结构、指令系统与编程技术、中断系统及应用、定时器及应用、外围设备与单片机的接口技术,单片机应用系统设计。
因为单片机这门课是一门实践性很强的课程,单纯学习课本不能掌握这门知识,必须要经过试验课程才能更加具体和深入地学会这门课。
通过试验课的学习,使学生掌握单片机技术及其在工业控制、经济建设和日常生活中的应用,培养学生实践能力、创新能力和新产品设计开发能力,为将来从事电子电器新产品设计开发,电子产品的检测和维护等工作奠定坚实的基础。
本实验板可以实现的实验内容:
(1)单片机开发软件及仿真器的使用和P1口实验
(2)I/O口实验(交通灯实验,温度传感器,蜂鸣器、I2C)
(3)定时器实验(流水灯、交通灯、数码管等)
(4)总线实验(流水灯LED、外部RAM)
(5)系统扩展(包括:
LCD、ADC、DAC、RAM等)
(6)通信实验(RS232与计算机之间的串口实验)
(7)传感器实验(1-Wire温度实验)
(8)键盘实验(扫描接口)
(9)电机实验(四相六线式步进电机)
(10)时钟实验(RTC—PCF8563)
(11)软件实验(多个数求和、排序等)
(12)中断实验(外部中断、定时器、UART)
本实验设计主要完成了数码管、流水灯、键盘、蜂鸣器等实验,与实验指导书结果符合,了解了部分功能的使用。
关键词:
单片机LED数码显示键盘串口
第一章单片机集成开发环境应用
一实验目的
1.熟悉单片机集成开发软件(Keil);
2.掌握单片机实验板的使用;
3.掌握单片机P1口使用;
二实验内容
1、集成开发环境Keil介绍及开发流程
KeilμVision4集成开发环境(IntegratedDevelopmentEnvironment,IDE)是一个基于Windows的开发平台,它包含高效的源代码编辑器、项目(Project)管理器和程序生成(MAKE)工具。
KeilμVision4支持所有的80C51嵌入式应用工具,它包括C/C++编译器宏汇编器、连接/定位器和一个HEX文件生成器。
KeilμVision4通过以下特性加速MCU嵌入式应用系统的开发过程:
★全功能的源代码编辑器;
★器件库用来配置开发工具设置;
★项目管理器用来创建和维护项目;
★集成的MAKE工具可以汇编、编译和连接用户的嵌入式应用;
★所有开发工具的设置都是以对话框的形式出现的;
★具有真正的源代码级的对CPU和外围器件的调试器;
★高级GDI接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信;
★与开发工具手册、器件数据手册和用户指南有直接的链接。
图1-1启动时的屏幕
2、建立您的第一个项目
1)建立您的第一个项目
点击Project菜单,选择弹出的下拉式菜单中的NewProject,如图1-2。
接着弹出一个标准Windows文件对话窗口,如图1-3,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。
在“文件名”中输入您的第一个C程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。
“保存”后的文件扩展名为uv2,这是KEILuVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。
图1-2NewProject菜单
图1-3文件窗口
2)选择所要的单片机
选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。
此时屏幕如图1-4所示。
AT89C51有什么功能、特点呢?
请看图中右边有简单的介绍,是英文的。
稍后的章节会作较详细的介绍。
完成上面步骤后,我们就可以进行程序的编写了。
图1-4选取芯片
3)在项目中创建新的程序文件或加入已经存在的程序文件
首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。
如果您没有现成的程序,那么就要新建一个程序文件。
在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。
点击图1-5中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New或快捷键CTRL+N来实现。
图1-5新建文件
4)如果没有已经存在的程序文件,新建、保存
点击图1-5中的3保存新建的程序,也可以用菜单File-Save或快捷键CTRL+S进行保存。
因是新文件所以保存时会弹出类似图1-3的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。
如图1-6鼠标在屏幕左边的SourceGroup1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。
我们选“AddFiletoGroup‘SourceGroup1’”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。
这时在SourceGroup1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
图1-6把文件加入到项目文件组中
5)编译调试
C程序文件已被我们加到了项目中了,下面就剩下编译运行了。
这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件。
要生成用于芯片烧写的HEX文件,应进行如下设置:
在CreatHEXFile前打选择。
图中1、2、3都是编译按钮,不同是1是用于编译单个文件。
2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。
3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。
在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。
5是菜单中的它们,我个人就不习惯用它了。
嘿嘿,这个项目只有一个文件,您按1.2.3中的一个都可以编译。
在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们就依靠它来进行查错。
6是有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\StopDebugSession,快捷键为Ctrl+F5。
图1-7编译程序
6)调试、生成HEX文件
进入调试模式,软件窗口样式大致如图1-8所示。
图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。
3是复位,模拟芯片的复位,程序回到最开头处执行。
图1-8调试运行程序
3、下载到单片机的内部运行
1)用KEIL生成的HEX文件
步骤:
1点击Project菜单,选择弹出的下拉式菜单中的NewProject。
2选择所要的单片机,如选择常用的Ateml公司的AT89C51。
3在项目中创建新的程序文件或加入已经存在的程序文件。
4如果没有已经存在的程序文件,新建、保存。
5编译
6调试、生成HEX文件
2)下载
本实验板提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部flash。
连接计算机串口和单片机的串口下载。
注意:
单片机的P1.0P1.6P1.1不能被短接。
3)ISP下载方法
使用STC-ISP软件,操作方法见前面。
ISP下载步骤:
1选择器件
2装载HEX文件
3下载程序
4)运行
将KEIL生成的HEX文件下载到单片机的内部flash后,即可自动运行单片机的内部的程序。
三实验步骤
依照实验内容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则进行在线软件的仿真调试。
仿真调试分为两种:
软件仿真和硬件仿真,前者不使用仿真器,后者使用硬件仿真器。
本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部flash,重复此部分内容,直到熟练掌握开发环境的使用。
四实验程序
1、汇编程序:
ORG 0000H
SJMP START
ORG 0030H;(*)
START:
MOV P1,#00000010B;将P1.0与P1.1分别置低电平、高电平
NOP;空指令,不执行任何操作
NOP
NOP
LJMP START;跳转到STA
END;程序结束
2、C程序:
附:
关于此程序的C51实现
#include
#include
voidmain()
{
while
(1)
{
P1=0x02;//置位P1.1,清零P1.0
}
}
五思考问题
1)(*)处0030H其作用是什么?
如果改变,应注意哪些?
0030H作用是程序从地址0030H开始储存,如果改变应注意不要占用其余地址或超出地址上限。
2)如果二极管的阴、阳极插反,怎么改进程序,使之发光?
改变电平正负极触发使之发光。
3)用软件延时的办法实现指示灯的闪烁。
sbitP1^0=a;
a=1;
while{
a=~a;
delay(10);
}
第二章验证性实验
证性实验是为了培养学生的实验操作,数据处理等其他技能,学生们检验一个已知的结果是正确的探究性实验是通过实验来回答一个感兴趣的问题,激发学生的好奇心,培养科学探究能力.
2.1软件实验
试验二、拆字程序
1、实验目的
掌握汇编语言测试和调试方法。
2、实验内容
把7000H的内容拆开,高位送7001H的低位,低位送7002H的低位,7001H、7002H高位清零,本程序应用于把数据送显示缓冲区。
3、硬件连线
4、实验步骤
(1)PC机
开始菜单——程序——51JH实验系统——DVCC实验系统,进入实验界面。
选中本次实验名称,查看实验目的、内容、硬件连线、步骤。
输入源程序,编译、联接、运行实验程序。
(2)DVCC实验系统
①先用存储器读写方法将7000H单元内容置成34H。
按复位键,显示P.,输入7000H,按MEM键,输入34。
②用单步、断点或连续执行程序的方法从其始地址0050H开始运行程序(输入0050后按STEP为单步,按EXEC为连续)。
按RESET后,显示P.,输入0050,按EXEC
③按MON键或RESET键退出。
④检查7001H、7002H单元中的内容应为03H、04H。
输入7000H,按MEM键,显示03,按NEXT显示04。
2、实验程序
ORG0050H
CWORD:
MOV
DPTR,#7000H
MOVXA,@DPTR
MOVB,A
SWAPA
ANLA,#0FH
INCDPTR
MOVX@DPTR,A
INCDPTR
MOVA,B
ANLA,#0FH
MOVX@DPTR,A
CWORD1:
SJMPCWORD1
END
5、实验拓扑
修改源程序,实现将把3000H的内容拆开,高位送3001H的低位,低位送3002H的低位,7001H、7002H高位清零。
用存储器读写方法将3000H单元内容置成76H。
6、实验结果分析
向存储器7000H单元写入34H,执行程序,检查拆字后7001H、7002H单元中的内容为03H、04H。
向存储器3000H单元写入76H,执行程序,检查拆字后7001H、7002H单元中的内容为07H、06H。
实验五、数据排序试验
一、实验目的
熟悉8051指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。
三、实验程序框图
四、实验步骤
①把8032片内RAM区50H—5AH中放入不等的数据(用寄存器读写方法)。
②用连续运行方式从起始地址0100H开始运行程序(输入0100后按EXEC键)。
③排序结束,显示“P.”。
④用寄存器读写方法检查50—5AH中内容应从小到大排列。
五、试验程序
DORDE:
MOVSP,#60H;设置栈指针
MOVR3,#50H
DORDE1:
MOVA,R3
MOVR0,A;数据指针传送到R0
MOVR7,#0AH;长度送到R7
CLR00H;清零标志位
MOVA,@R0
DORDE2:
INCR0
MOVR2,A
CLRC;清零进位标志
MOV22H,@R0
CJNEA,22H,DORDE3;是否相等
SETBC
DORDE3:
MOVA,R2
JCDORDE4;小于或等于不交换
SETB00H
XCHA,@R0
DECR0
XCHA,@R0;大于交换位置
INCR0
DORDE4:
MOVA,@R0
DJNZR7,DORDE2
JB00H,DORDE1;未完继续
MOVR0,#7EH;完,关显示器前三位
MOVA,#0FFH
MOVR4,#06H
DORDE5:
MOV@RO,A
DECR0
DJNZR4,DORDE5
MOV7EH,#0CH;“P.”显示代码送显示缓冲区最后一位
DORDE6:
LCALLDISPD;循环调显示子程序
SJMPDORDE6
DISPD:
SETB0D4H;显示子程序
MOVR1,#7EH
MOVR2,#20H
MOVR3,#00H
DISPD1:
MOV
DPTR,#0FF21H
MOVA,R2
MOVX@DPTR,A
MOVA,@R1
MOVDPTR,#0FF22H
MOVX@DPTR,A
DISPD2:
DJNZR3,DISPD2
DECR1
CLRC
MOVA,R2
RRCA
MOVR2,A
JNZDISPD1
MOVA,#0FFH
MOVDPTR,#0FF22H
MOVX@DPTR,A
CLR0D4H
RET
END
实验十、电脑时钟
一、实验步骤
运行程序在键盘上输入初值,数码管上显示时间值
程序EXTRNCODE(Display8)
SECDISLDATA30H;秒的个位
SECDISHDATA31H;秒的十位
MINDISLDATA33H;分的个位
MINDISHDATA34H;分的十位
HOUDISLDATA36H;时的个位
HOUDISHDATA37H;时的十位?
以上为显示缓冲单元
MSCONUDATA40H;毫秒计数单元
SECCONUDATA41H;秒计数单元
MINCONUDATA42H;分钟计数单元
HOUCONUDATA43H;小时计数单元,以上为时钟计数单元
ORG0000H
AJMPMAIN
ORG000BH
AJMPTOINT
ORG0030H
MAIN:
MOVSECCONU,#0
MOVMINCONU,#0
MOVHOUCONU,#0
MOVA,P1
ANLA,#07H
ACALLDELAY
CJNEA,#01H,NEXT
LP:
MOVA,P1
ANLA,#07H
ACALLDELAY
CJNEA,#02H,NEXT1
PUSHACC
MOVA,MINCONU
INCA
MOVMINCONU,A
ACALLDISPLAY
POPACC
NEXT1:
CJNEA,#04H,NEXT2
PUSHACC
MOVA,HOUCONU
INCA
MOVHOUCONU,A
ACALLDISPLAY
POPACC
NEXT2:
CJNEA,#01H,NXT
JMPNEXT
NXT:
JMPLP
NEXT:
MOVSP,#60H
MOVTMOD,#01H;T0方式1,定时50毫秒
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
SETBET0
SETBEA
M1:
ACALLDISRDY;计数单元的值转换为显示缓冲器的值
ACALLDISPLAY;把显示缓冲单元的值送到LED显示器上
JNBTF0,$
CLRTF0
SJMPM1;需要重新刷新显示
TOINT:
PUSHACC
MOVTH0,#3CH;T0方式1,重新输入初值
MOVTL0,#0B0H
MOVA,MSCONU
CJNEA,#2,T01;计数到二十次否?
MOVMSCONU,#0;毫秒计数单元清零
MOVA,#00H;秒计数单元加1,BCD码加法
ADDA,SECCONU
DAA
MOVSECCONU,A
CJNEA,#59H,T02;秒计数到60?
MOVSECCONU,#0;秒计数单元清零
MOVA,#00H;分计数单元加1,BCD码加法
ADDA,MINCONU
DAA
MOVMINCONU,A
CJNEA,#59H,T03;分计数到60否?
MOVMINCONU,#0;分计数单元清零
MOVA,#00H;时计数单元加1,BCD码加法
ADDA,HOUCONU
DAA
MOVHOUCONU,A
CJNEA,#23H,T04;时计数到24否?
MOVHOUCONU,#0;时计数单元清零
SJMPT05
T01:
INCMSCONU;毫秒计数未到二十次,相应单元加1
SJMPT06
T02:
MOVA,#01H
ADDA,SECCONU;秒计数未到60次,相应单元加1
DAA
MOVSECCONU,A
SJMPT05
T03:
MOVA,#01H
ADDA,MINCONU;分计数未到60次,相应单元加1
DAA
MOVMINCONU,A
SJMPT05
T04:
MOVA,#01H
ADDA,HOUCONU;时计数未到24次,相应单元加1
DAA
MOVHOUCONU,A
T05:
SETBF0
T06:
POPACC
RETI
DISRDY:
MOVR0,#SECDISL;把计数单元的值分解为两BCD码
MOVR1,#SECCONU;同时计数数据送入显示缓冲区,
MOVR2,#3
DR1:
MOVA,@R1
ANLA,#0FH
MOV@R0,A
INCR0
MOVA,@R1
ANLA,#0F0H
SWAPA
MOV@R0,A
INCR0
MOV@R0,#10H;第三位和第六位不显示
INCR0
INCR1
DJNZR2,DR1
RET
DISPLAY:
MOVR0,#SECDISL;显示缓冲区内容送到数码显示器上显示
LCALLDisplay8
RET
DELAY:
MOVR3,#255
LOOP:
NOP
DJNZR3,LOOP
RET
END
二、实验结果
在数码管上显示计时功能
2.2硬件实验
试验四、工业顺序控制
一、实验目的与要求
1.学习和掌握单片机工业顺序控制程序的应用编程;
2.熟悉和掌握单片机中断功能的使用。
二、实验内容
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些连续生产过程,按某种顺序有规律地完成预定的动作,对这类连续生产过程的控制称顺序控制,象注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。
设由单片机P1.0~1.6控制注塑机的七道工序,模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时时间,P3.4为开工启动开关,高电平启动。
P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定前6道工序只有一位输出,第七道工序三位有输出。
三、试验程序框图
四、实验程序
ORG0000H
LJMPPO10
ORG0013H
LJMPPO16
ORG0190H
PO10:
MOVP1,#7FH
ORLP3,#00H
PO11:
JNBP3.4,PO11开工吗?
ORLIE,#84H
ORLIP,#04H
MOVPSW,#00H初始化
MOVSP,#53H
PO12:
MOVP1,#7EH第一道工序
ACALLPO1B
MOVP1,#7DH第二道工序
ACALLPO1B
MOVP1,#7BH第三道工序
ACALLPO1B
MOVP1,#77H第四道工序
ACALLPO1B
MOVP1,#6FH第五道工序
ACALLPO1B
MOVP1,#5FH第六道工序
ACALLPO1B
MOVP1,#0FH第七道工序
ACALLPO1B
SJMPPO12
PO16:
MOVB,R2保护现场
PO17:
MOVP1,#7FH关输出
MOV20H,#0A0H振荡次数
PO18:
SETBP1.7振荡
ACALLPO1A延时
CLRP1.7停振
ACALLPO1A延时
DJNZ20H,PO18不为0转
CLRP1.7
ACALLPO1A停振
JNBP3.3,PO17故障消除吗?
MOVR2,B恢复现场
RETI
PO19:
MOVR2,#10H
ACALLDELY延时1
RET
PO1A:
MOVR2,#06H
ACALLDELY延时2
RET
PO1B:
MOVR2,#30H
ACALLDELY延时3
RET
DELY:
PUSH02H
DEL2:
PUSH02H
DEL3:
PUSH02H延时
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 单片机 原理 应用 实验 报告