实验指导书.docx

上传人:b****5 文档编号:11835763 上传时间:2023-04-05 格式:DOCX 页数:61 大小:873.93KB
下载 相关 举报
实验指导书.docx_第1页
第1页 / 共61页
实验指导书.docx_第2页
第2页 / 共61页
实验指导书.docx_第3页
第3页 / 共61页
实验指导书.docx_第4页
第4页 / 共61页
实验指导书.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

实验指导书.docx

《实验指导书.docx》由会员分享,可在线阅读,更多相关《实验指导书.docx(61页珍藏版)》请在冰豆网上搜索。

实验指导书.docx

实验指导书

 

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)//确认按键被按下

{

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1