单片机实验报告.docx
《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
单片机实验报告
实
验
报
告
实验课程:
单片机原理及应用
班级:
12自动化2班
学号:
姓名:
教师:
张玲
成绩:
实验日期:
年月日
实验名称:
实验1——计数显示器
一、实验目的:
学习Proteus软件的使用,掌握单片机原理图的绘图方法。
二、实验内容:
1、绘制“计数显示器”电路原理图;
2、利用提供的hex文件验证此电路的运行效果。
三、实验要求:
提交的实验报告中应包括:
1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图;3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验1体会等。
参考电路原理图如下:
元件类别
电路符号
元件名称
MicroprocessorICs
“U1”
80C51
Miscellaneous
“X1”/12MHz
CRYSTAL
Capacitors
“C1”~“C2”/1nF
CAP
Capacitors
“C3”/22μF
CAP-ELEC
ResistorsPacks
“RP1”/7-100Ω
RESPACK-7
Resistors
“R1”/100Ω
RES
Optoelectronics
“LED1”~“LED2”
7SEG-COM-CAT-GRN
Switches&Relays
“BUT”
BUTTON
1、编程思路及C51源程序:
2、电路原理图:
3、仿真运行效果展示:
4、实验小结:
熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法,
学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件
加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原
理图的绘制。
实验名称:
实验2——LED指示灯循环控制
一、实验目的
熟悉μVision3编译软件、掌握C51编程与调试方法。
二、实验内容
1、按照教材P243的图A.34,绘制实验二电路原理图;
2、编写C51程序,实现8个LED灯依次点亮的功能:
P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;
3、观察仿真结果,完成实验报告。
三、实验要求
1、采用两种加载并运行可执行文件的方法,即proteus独立运行和proteus+Keil联合运行,体会其中的差异和意义;
2、练习采用单步、断点以及监视窗等手段进行程序调试的方法;
3、观察仿真结果,完成实验报告:
绘制的电路原理图、编程思路分析及C51源程序、调试过程简述,仿真运行效果以及实验小结。
1、电路原理图:
2、编程思路及C51源程序:
3、仿真运行效果:
4、实验小结:
通过本次实验我熟悉uVision3编译软件了解软件的结构组成与功能学习
C51语言的程序设计方法)学会在uVision3中进行C51程序录入、编译、和
调试理解Proteus与Keil联合的仿真原理实现LED指示灯循环控制功能。
更好的将C语言和C51语言联系在了一起)学到的知识能准确的利用了出来。
实验名称:
实验3——指示灯和数码管的中断控制
一、实验目的
掌握外部中断的工作原理,学会中断程序设计。
二、实验内容
1、按照教材帕图A.53,绘制实验四电路原理图;
2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级;
3、编写C51程序实现如下功能:
开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2→LED1从0开始循环显示0~F字符。
4、观察仿真结果,完成实验报告。
三、实验要求
提交的实验报告中应包括:
电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。
1、电路原理图:
2、外部中断工作原理阐述:
持续按下K1则D1将“亮→灭→亮→灭→„→亮→灭如此循环,表明实现了
K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显
示1-F,实现了K2对应于0~F间的数码管加一计数显示。
3、编程思路及C51源程序:
4、仿真运行效果:
5、实验小结:
通过实验对Protues有了更多的了解,同时了解到中断系统在实际中的更好
应用。
经过编程操作起来更加熟练能很快的完成绘图,编程时也得心应手,
能熟练的运用软件找出自己所编程中的语法问题及其他问题,并以改正。
实验名称:
实验4——电子秒表显示器
一、实验目的
掌握定时/计数器的中断法工作原理,熟悉C51编程与调试方法
二、实验要求:
1、实验电路原理图如教材P260A.65图所示。
程序开始时显示“00”;当1s产生时,秒计数加1;秒计数到59后,自动从“00”开始。
2、采用12MHz晶振频率,T0定时方式1、50ms定时中断法编程(1s需要经过20软循环)(流程图和参考程序模版如下所示)。
//定时中断方式实现的电子秒表
(51头文件)
(定义无符号字符型变量t——中断次数计数器,并赋初值0
(定义无符号字符型变量second——秒计数器,并赋初值0
(定义位于ROM区的无符号字符型数组table——显示字模)
timer0()(中断函数关键词){
(关闭T0)
(初值重装载0x3cb0)
(中断次数计数器增1)
if(t==20){//若中断20次,相当于1秒
t=0;//中断次数计数器清零
second++;//秒计数器清零
}
(若秒计数器值达到60,清零)
(P0和P2口分别输出变量second的显示值)
(启动T0)
}
main(){
P0=table[second/10];//P0和P2口分别输出显示值
P2=table[second%10];
(定义T0定时方式1——TMOD)
(50ms溢出初值0x3cb0加载——TH0和TL0)
(中断初始化——ET0,EA)
(启动T0)
(死循环)
3、编程思路及C51源程序:
4、仿真运行效果:
5、实验小结:
本次实验进行的比较顺利,根据指导材料中提供的流程图完成了源程序的编
写,成功生成了.hex文件,经过仿真运行达到了预期的实验结果。
通过本次的
实验,我更加深入的了解到单片机定时/计数功能实现的机理,通过与单片机中
断功能的结合,可以完成更多的预期功能。
但是进过讨论我也发现,程序还是存
在很大的缺陷,想要实现更加准确实现计时功能还需综合利用各种知识完善程
序。
感谢下载!
欢迎您的下载,资料仅供参考