实验指导书.docx
- 文档编号:7709524
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:61
- 大小:873.93KB
实验指导书.docx
《实验指导书.docx》由会员分享,可在线阅读,更多相关《实验指导书.docx(61页珍藏版)》请在冰点文库上搜索。
实验指导书
51开发板实验指导书
电气教研室
年月日
前言
一、课程性质、目的和任务
本课程主要讲述当前国内外广泛应用的系列单片机的结构、原理、接口技术、扩展应用等知识。
其任务是使学生从应用角度了解计算机的基本原理,从理论和实践中掌握单片机的基本组成、工作原理、单片机应用系统设计中的各种接口技术,建立微机工作的整体概念,同时掌握汇编语言程序设计。
目的是使学生了解基本的微机应用系统,并具有在此基础上进行软件、硬件设计开发的基本能力,为今后更广泛的计算机应用打下基础。
二、实验基本要求
通过本课程的教学,应使学生达到下列的基本要求:
1)了解计算机的基础知识、模型机的结构和工作过程。
2)掌握MCS-51系列单片机的指令格式、寻址方式、伪指令和指令系统,能够熟练使用汇编语言进行程序设计。
3)熟练掌握中断技术、单片机应用系统设计中的各种接口技术,包括:
并行接口技术、串行接口技术、扩展存储器接口技术、单片机与显示器、键盘接口技术、单片机与D/A、A/D的接口技术等。
4)初步具备从事单片机应用系统开发和设计的能力。
目录
前言2
目录3
实验一认知实验9
实验目的9
实验内容9
实验器材9
开发板具体操作介绍9
开发板资源介绍10
开发板功能模块介绍11
Keil软件的使用11
程序烧录11
问题与总结12
实验二LED流水灯的亮灭13
实验目的13
实验内容13
实验原理及介绍13
实验步骤14
问题及总结14
程序清单14
实验三数码管显示17
实验目的17
实验内容17
实验器材17
实验原理及介绍17
实验步骤18
问题及总结18
程序清单18
实验四定时器21
实验目的21
实验内容21
实验器材21
实验原理及介绍21
实验步骤21
问题及总结22
程序清单22
实验五中断26
实验目的26
实验内容26
实验原理及介绍26
实验步骤27
问题及总结27
程序清单27
实验六独立按键电路29
实验目的29
实验内容29
实验原理及介绍29
实验步骤29
问题及总结30
程序清单30
实验七1602液晶显示37
实验目的37
实验内容37
实验器材37
实验原理及介绍37
实验步骤38
问题及总结38
程序清单39
实验八蜂鸣器40
实验目的40
实验内容40
实验器材40
实验原理及介绍40
实验步骤41
问题及总结41
程序清单41
实验九串口通信46
实验目的46
实验内容46
实验原理及介绍46
实验步骤47
问题及总结47
程序清单47
实验十18B20显示温度51
实验目的51
实验内容51
实验器材51
实验原理及介绍51
实验步骤52
问题及总结52
程序清单52
实验十一12864液晶显示器63
实验目的63
实验内容63
实验原理及介绍63
实验步骤63
问题及总结64
问题及总结64
程序清单64
实验十二12864显示矩阵键盘65
实验目的65
实验内容65
实验原理及介绍65
实验步骤66
问题及总结67
程序清单67
实验十三PWM调节流水灯亮度68
实验目的68
实验内容68
实验原理及介绍68
实验步骤69
问题及总结69
程序清单69
实验十四步进电机76
实验目的76
实验内容76
实验原理及介绍76
实验步骤77
问题及总结77
程序清单77
实验十五红外遥控数码管显示82
实验目的82
实验内容82
实验原理及介绍82
实验步骤82
问题及总结83
程序清单83
实验十六1602液晶显示的时钟93
实验目的93
实验内容93
实验原理及介绍93
实验步骤93
问题及总结94
程序清单94
实验一认知实验
实验目的
1、认识并了解51开发板的结构以及功能
2、了解及学会使用keil4软件;
3、学会使用STC程序烧录软件
实验内容
1、结合附件的开发板参考注释图,了解开发板的大体构造以及开发板拥有的功能
2、根据教程,自主学习使用keil软件,并且能够使用keil4对单片机进行编程;
3、应用STC烧录软件对写好的程序进行烧录;
实验器材
51开发板一个、下载线一条、电脑一台
开发板具体操作介绍
开发板外观图(如图1.1)
图1.1开发板外观图
开发板资源介绍
1、开发板支持USB程序下载(宏晶科技STC52单片机);
2、开发板支持AT89S51,AT89S52单片机下载
3、开发板支持ATmega16,ATmega32AVR单片机下载
4、开发板供电模式为:
电脑USB供电(USB接口)和外部5V电源供电(DC-005电源座)。
5、开发板复位方式:
上电复位和51/AVR双按键复位;
6、开发板晶振:
采用圆孔插座焊接方式,方便用户更换
7、外扩电源:
通过排针外扩3路5V电源,方便连接外部实验使用;
8、所有IO引脚全部外扩,方便连接外部实验使用;
9、开发板电源处采用钽电容设计,不惜成本,力求工作稳定,这点对初学者特别重要。
开发板功能模块介绍
(1)8位高亮度贴片led跑马灯;
(2)4位共阳数码管显示;
(3)LCD1602和LCD12864(支持彩屏)接口;
(4)1路无源蜂鸣器;
(5)1路ds18b20温度测量电路;
(6)1路红外接口电路;
(7)4路独立按键;
(8)1路PL2303USB通讯电路;
Keil软件的使用
Keil软件的安装及相关的使用教程请详见附件ppt
程序烧录
1、首先使用USB线将51开发板与电脑正确连接,然后打开STC的ISP下载软件(例如:
“STC-ISP(Ver6.83)”)
2.单片机型号选择“STC89C52RC/LE52RC”这个单片机型号是根据开发板上的单片机进行选择的
3.串口口必须选择实验箱4所对应的串口号(当实验箱4与电脑正确连接后,软件会自动扫描并识别名称为“
”串口,具体的COM编号会因电脑不同而不同)。
当有多个相同类型的USB转串口线与电脑相连时,则必须手动选择。
4.点击界面中的“打开程序文件”按钮,在出现的打开程序代码文件的对话框中选择需要下载的文件,文件正确打开后,点击界面中的“下载/编程”按钮开始下载代码
5、接下来需要按下开发板上的“主控芯片电源开关”,然后松开即可开始下载
问题与总结
1、总结开发板上具有的功能和应用;
2、总结一下新建工程过程中所遇到的问题以及解决方法。
实验二LED流水灯的亮灭
实验目的
进一步熟悉keil编程软件、ISP下载软件的使用。
了解并熟悉单片机的I/O扣和LED灯的电路结构,学会构建简单的流水灯电路
实验内容
运用keil4编程软件编辑led流水灯程序,并且生成.hex文件,并且将生成的文件通过ISP程序烧录软件烧录到单片机中,尝试不同的流水灯程序,显示不同的方式。
实验器材
51开发板一个、下载线一条、电脑一台
实验原理及介绍
LED流水灯实际上是一个带有发光二极管的单片机最小系统,即为包含着LED灯、电阻、电容器、电源灯电路和必要的软件组成的单个单片机;
如果要让LED亮起来,那么就需要将LED相对应的单片机的引脚进行控制。
查看电路图可以了解到想要使LED点亮,需要使单片机输出低电平(0)。
多个LED进行循环有规律点亮即可实现流水灯的操作
实验步骤
1、新建一个文件夹,用于保存自己创建的工程文件;
2、编写流水灯程序,并且声称“.HEX”文件
3、通过ISP程序烧录软件将生成的“.HEX”文件烧录到单片机中;
4、换一种流水的亮灭顺序,改变延时时间的大小,多次试验,灵活使用
问题及总结
1、led灯点亮的条件;
2、led接口的定义方法;
3、如何更改led亮灭的时间;
4、在学习的过程中,时候还遇到其他的问题,记录并总结问题及解决方法
程序清单
#include"reg52.h"
sbitD1=P1^0;
sbitD2=P1^1;
sbitD3=P1^2;
sbitD4=P1^3;
voidDelay100ms()//@11.0592MHz
{
unsignedchari,j,k;
i=5;
j=52;
k=195;
do
{
do
{
while(--k);
}while(--j);
}while(--i);
}
main()
{
while
(1)
{
D1=0;
Delay100ms();
D2=0;
Delay100ms();
D3=0;
Delay100ms();
D4=0;
Delay100ms();
D1=1;D2=1;D3=1;D4=1;
Delay100ms();
}
}
实验三数码管显示
实验目的
理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序,熟悉接口程序调试方法。
实验内容
1.利用STC89C52单片机控制数码管显示器,显示数字;
2.能够利用单片机控制在数码管上显示想要显示的数字
实验器材
51开发板一个、下载线一条、电脑一台
实验原理及介绍
动态扫描法是对各数码管循环扫描、轮流显示的方法。
由于一次只能让一个数码管显示,因此,要显示4位的数据,必须让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,每隔1ms,就得刷新一个数码管。
当扫描显示频率较高时,利用人眼的视觉暂留特性,看不出闪烁现象,这种显示需要一个接口完成字型码的输出(段选),另一接口完成各数码管的轮流点亮(位选)。
在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。
实验步骤
1、编写数码管显示程序,并且生成‘’.hex’’文件;
2、通过ISP程序烧录软件将生成的‘’.hex’’文件烧录到单片机中。
问题及总结
1、开发板上自带的四位八段数码管是共阴还是共阳?
2、开发板上点亮数码管,需要安装哪个短接帽?
3、片选和位选的区别以及控制方法;
4、数码管动态扫描和静态显示的区别和优缺点是什么;
5、你在学习和实验的过程中,还遇到那些问题,分析总结并记录
程序清单
#include
#defineucharunsignedchar
sbitP2_0=P2^0;
sbitP2_1=P2^1;
sbitP2_2=P2^2;
sbitP2_3=P2^3;
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
voiddelay(uchari)
{
ucharj,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
voiddisplay()
{
P0=table[0];
P2_0=0;
delay(5);
P2_0=1;
P0=table[1];
P2_1=0;
delay(5);
P2_1=1;
P0=table[2];
P2_2=0;
delay(5);
P2_2=1;
P0=table[3];
P2_3=0;
delay(5);
P2_3=1;
}
/*演示主程序*/
main()
{
unsignedinta;
while
(1)
{
for(a=100;a>0;a--)
{
display();
}
}
}
实验四定时器
实验目的
了解单片机内部定时器的工作原理,并且能够熟练地应用定时器进行计时等运算。
实验内容
设置定时器初值,当定时器溢出时,说明定时时间到,单片机执行相应的操作(LED取反,LED熄灭或者点亮)。
实验器材
51开发板一个、下载线一条、电脑一台
实验原理及介绍
传统51单片机定时器是16位的定时器,系统时钟给它提供时钟源,每一个脉冲使定时器加一,直到溢出会产生定时器中断。
TMOD是定时器工作模式寄存器,分定时器0和1,分别占了高四位和低四位,第一位是门触发方式选择。
第二位为计数器或定时器选择,后面两位是设置4种工作方式。
实验步骤
1、根据晶振,通过ISP计算定时器初值;
2、打开keil软件进行编程,并且生成“.HEX”文件;
3、将生成的“.HEX”通过哦ISP软件烧录到单片机中
4、通过改变定时器初值的方式,改变定时器的时间,实现不同时间的流水灯的闪烁
问题及总结
1、定时器初值的计算;
2、定时器的选择;
3、在学习和实验过程中遇到的其他问题。
程序清单
/***************************定时器0——通过定时器定时实现led灯闪烁**********************/
#include
#defineLEDP1//宏定义LED代表P1
/*函数申明-----------------------------------------------*/
voidInit_Timer0(void);
/*
********************************************************************************
**函数名称:
main(void)
**函数功能:
主函数
********************************************************************************
*/
main()
{
Init_Timer0();
while
(1);
}
/*
********************************************************************************
**函数名称:
Init_Timer0(void)
**函数功能:
定时器初始化子程序
********************************************************************************
*/
voidInit_Timer0(void)//定时器初始化子程序
{
TMOD|=0x01;//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=0x00;//给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL0=0x00;
EA=1;//总中断打开
ET0=1;//定时器中断打开
TR0=1;//定时器开关打开
}
/*
********************************************************************************
**函数名称:
Timer0_isr(void)interrupt1using1
**函数功能:
定时器中断程序
********************************************************************************
*/
voidTimer0_isr(void)interrupt1using1
{
TH0=0x00;//重新赋值,方式1是16位计数器,不能硬件重装初始值
TL0=0x00;
LED=~LED;//指示灯反相,可以看到闪烁
}
实验五中断
实验目的
1、通过中断实验来进一步了解51单片机的内部中断
2、学习掌握中断程序初始化的设计方法
3、学习掌握定时器中断程序的编程方法
实验内容
通过触发外部中断,实现LED亮灭的变化。
实验器材
51开发板一个、下载线一条、电脑一台
实验原理及介绍
程序执行过程中,允许外部或内部时间通过硬件打断程序的执行,使其转向处理其他事件的中断服务程序中去,完成后继续执行原来的程序,这样的过程叫做中断。
外部中断0电平触发——用独立按键引发中断
通过中断接口P3.2连接的独立按键K1测试,按一次LED灯反向,这里使用电平触发,按键不松手和按键松手效果不相同,按下会看到灯全部亮,说明中断一直在作用。
P3.2是可以复用IO口,一是普通IO口,二是外部中断0外部接口.即本节所讲。
通过本程序就可以轻松的写其他中断方式的程序了
实验步骤
1、了解中断的产生以及触发方式
2、查看并选择中断的优先级
3、通过keil软件进行编程并且生成“.HEX”文件
4、通过ISP将声称的keil文件烧录到单片机中
5、通过触发单片机中断,判断中断实现的条件
问题及总结
1、中断触发的条件;
2、中断优先级的选择;
3、什么是中断嵌套;
4、在学习和实验中遇到的其他的问题以及解决方法。
程序清单
#include
#defineLEDP1//宏定义LED代表P1
/********************************************************
主程序
*********************************************************/
main()
{
LED=0xff;//P1口初始值,关闭led灯
EA=1;//全局中断开
EX0=1;//外部中断0开
IT0=0;//电平触发
while
(1)
{
//在此添加其他程序,中断程序可以跟此处的程序同步执行
}
}
/****************************************************
外部中断程序
*****************************************************/
voidKey_INT(void)interrupt0using1
{
LED=~LED;
}
实验六独立按键电路
实验目的
了解按键开关的工作方式,并且通过按键开关来进一步熟悉51单片机的编程和使用
实验内容
通过按键来触发单片机,从而使单片机实现相应的功能。
例如当按下某个按键时,单片机亮灯或者蜂鸣器报警等操作。
实验器材
51开发板一个、下载线一条、电脑一台
实验原理及介绍
按键开关主要是指轻触式按键开关,也称之为轻触开关。
按键开关是一种电子开关,属于电子元器件类,最早出现在日本[称之为:
敏感型开关],使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。
实验步骤
1、查阅开发板原理图,了解开发板上按键开关对应的单片机I/O口;
2、自行编程,使按下开发板上某个按键开关,单片机执行相应的操作;
3、有问题的同学可以查看源程序,参考源程序,并找出自己程序中的不足之处。
问题及总结
1、按键开关作用于开发板的方式:
触发还是扫描;
2、按键开关的优缺点;
3、在学习和实验中遇到的其他的问题以及解决方法。
程序清单
【函数功能】:
独立按键测试
按1键跑马灯闪烁一次
按2键跑马灯闪烁二次
按3键跑马灯闪烁三次
按4键跑马灯闪烁四次
*【使用说明】:
注意先用跳线冒将J4短接,使用跑马灯模块
**********************************************************************************/
#include
#defineucharunsignedchar
#defineuintunsignedint
/*函数申明-----------------------------------------------*/
voiddelay(uintz);
/*变量定义----------------------------------------------*/
sbitkey1=P3^2;
sbitkey2=P3^3;
sbitkey3=P3^4;
sbitkey4=P3^5;
/*
********************************************************************************
**函数名称:
main(void)
**函数功能:
主函数
********************************************************************************
*/
voidmain()
{
P0=0;
while
(1)//无限扫描
{
if(key1==0)
{
delay(5);//消抖动
if(key1==0)//确认按键被按下
{
while(!
key1);//松手检测
P1=0;
delay(200);
P1=0XFF;
}
}
if(key2==0)
{
delay(5);//消抖动
if(key2==0)//确认按键被按下
{
while(!
key2);//松手检测
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
}
}
if(key3==0)
{
delay(5);//消抖动
if(key3==0)//确认按键被按下
{
while(!
key3);//松手检测
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
P1=0;
delay(200);
P1=0XFF;
delay(200);
}
}
if(key4==0)
{
delay(5);//消抖动
if(key4==0)//确认按键被按下
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书
![提示](https://static.bingdoc.com/images/bang_tan.gif)