文档库 最新最全的文档下载
当前位置:文档库 › 单片机实验

单片机实验

单片机实验
单片机实验

目 录

第15章实验和课程设计指导 (1)

实验部分 (2)

实验1 系统开发的基本技能训练 (2)

实验2 定时器与I/O综合应用 (4)

实验3 外部中断与I/O综合应用 (8)

实验4 异步串行通信实验 (9)

实验5 并行总线系统实验 (11)

实验6 串行总线系统系统实验(选项1) (12)

实验6 多机异步串行通信实验(选项2) (13)

第15章实验和课程设计指导

本章包括单片机课内实验指导和课程设计指导两部分内容。编写这部分内容的指导思想是:以强化基础训练为根本,不追求实验的难度和复杂性,而是将单片机最基本、最常用的知识融于实验和课程设计中,以达到单片机应用入门和建立工程实践基础的目的。由于这门课程的学时不多,又考虑到本课程实践性强的特点,因此,课内实验以12个学时计划编写,共设计6个实验,每个实验2学时。而课程设计学时为16,学分1,建议为选修性质课。

单片机课内实验编者对学生的希望是:通过认真、实实在在的训练,学生能掌握单片机应用系统开发的软、硬件一般过程和基本技术;能方便、自如的编写51机的定时、外部中断、串行口等基本外设的功能程序;会用汇编语言和C语言编写单片机应用程序;掌握最基本的程序调试手段;懂单片机系统工作原理、有接口电路设计思路,有一定系统试验方法,用其证明程序运行结果的正确性;最后,通过实验课学习,还要促进本课程理论学习的效果。概括的说就是希望通过理论和实验学习过程,学生能自信地说:单片机,我入门了。

单片机实验必然要以某一开发系统作为工具。目前51机的开发系统很多,其中本实验指导的基本功能都具备,所以实验指导中就不针对某一种开发系统具体要求了,由各学校各上课教师根据实际情况自行选择,如何选择都不会影响教学效果的。另一方面,51机的软件模拟系统也很多,常用的有Keil、WA VE、菊阳等集成开发调试环境软件,它们可以支持相应的硬件仿真器,同时也支持软件模拟调试功能,又同时支持汇编和C语言编译和高调试,不涉及硬件调试时,运行与硬件仿真器没有区别。对熟练的单片机应用系统开发者来说,软件模拟器,是他们的好帮手。用它们验证某些算法程序,特别方便,特别是近年来ISP技术的普及,习惯于系统上编程的单片机应用者,已不再需要硬件仿真器了,但软件模拟器,将永远是他们工作的伴侣。

作为单片机系统开发技术的一个必要组成部分,系统调试手段的应用是不可删除的。同时,有条件时,使用硬件仿真,硬容易发现程序中的错误和缺陷,有利于提高程序的质量和系统开发速度,因此,不建议用所有实验内容都用ISP实现。

课程设计开设的目的是:全面提升学生单片机系统设计的综合水平。根据这一教学目的,课程设计的内容应该具有系统性、实用性并具有一定难度。为此,课程设计的内容以学习某一专项技术为主线,力求学生在认真完成课程设计内容的前提下,能熟练掌握所做的系统中的技术,培养良好的系统设计和编程意识、从整体上提升单片机的应用能力。本章提供4个不同的设计题目供不同学校的教师选择。

实验部分

实验1 系统开发的基本技能训练

【实验目的】

(1)熟悉单片机应用程序的编辑、编译、连接、调试的全过程。

(2)初步了解汇编程序、C51程序的基本结构和特点。

【实验软件】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件,推荐Keil、WA VE、菊阳等。

【实验内容及要求】

1)学习单片机应用程序的编辑

要求:

(1)参照教材【例4-6】:计算存于片内RAM,长度由n(本实验要求4字节以上)个字节构成的两个无符号二进制整数的加法程序,要求和存于被加数对应单元中。数据采用“小端”存储结构。用程序编辑软件将程序输入,并保存文件于自己的文件夹中。

(2)同(1)步骤,完成以下C51源程序的输入。以备调试。程序编号:TEST1_1 // #include

// #include

#define uchar unsigned char

#define uint unsigned int

void delay();

main()

{

uchar idata i,j,k;

uint xdata together_1;

together_1 = 0;

for (i=0;i<8;i++)

{

together_1++;

delay();

while(1);

}

}

void delay()

{

uchar i,j,k;

for (i=0;i<8;i++)

for (j=0;j<210;j++)

for (k=0;k<60;k++);

}

(3)同步骤(1),完成教材【例4-12】:多字节乘法程序的输入。以备调试。

注:由于实验时间有限,所以要求学生支出一定的课外预习时间。在预习时,先将源程序输入好,以便在实验课时将时间用于程序的调试方面的工作。

2)学习单片机应用系统集成开发调试环境软件的用法。

要求:

(1)运行集成开发调试环境软件,对工作环境进行设置。设置内容为:仿真器设置项里的单片机型号、时钟频率、是否使用软件模拟器(本实验用软件模拟器即可,如果实验条件允许,一开始使用硬件仿真也一样)等。

(2)建立自己的工程项目,将实验内容1)预先输入好的源文件之一,包含于项目模块中,并将项目存于自己的目录中。

(3)编译和连接工程文件,查找错误,直到通过为止。

(4)对实验中所用到的源文件也进行步骤(2)、(3)的工作。这里有两种建立和管理工程项目的方法:

①每一个源文件建立一个工程项目,并且项目名与项目内容相对应。这样所做的工作容易管理,便于查询和引用。在实际工作中,最好选用这种方法。

②对实验课学习更加方便的方法是,用已经建立的工程项目反复使用,只需用添加和删除模块文件、包含文件的功能,不断改变工程项目的内容。这样省去反复建立工程项目的过程,节约课堂时间。一般只需要建立一个汇编程序工程项目和一个C51工程项目即可。

(5)调试程序。工程项目编译、连接通过后,即可进入调试程序阶段。学习调试程序手段中的单步跳过、单步进入、运行到光标处(加上断点更好)及连续运行的使用方法,要求掌握这些手段的菜单调试方法和快捷键操作方法。

(6)学会通过寄存器窗口、存储器窗口观察程序运行结果。分清程序、数据存储器的性质和存储的内容及它们之间的关系。

注:用Keil集成开发环境的同学,系统的设置可参考教材第二版,第四章的内容。

附加实验内容:自己设计程序,验证绝对调用、绝对跳转的空间范围在2K页面之内(用ORG命令定位子程序或目的地的地址)。验证相对转移的空间范围在-128~127之内。 【实验记录】

(1)对源程序1运行前的被加数、加数、字节数及它们存储的地址,运行结果进行记录。调试程序时要用单步、运行到光标处(或断点),不用连续运行功能。

(2)改变参数,实现源程序2的延时长度改变。每一个延时参数至少取3个值,记录每组参数下的延时长度,根据记录,说明三个参数中哪一个参数对延时长度的影响最大。

(3)用源程序3计算345678H×CDEFH和CDEFH×345678H的值。记录运行前的被乘数、乘数、字节数及它们存储的地址,运行结果等。调试程序时要用单步、运行到光标处(或断点),不用连续运行功能。

实验报告的写法:

(1)必要书写的内容:实验名称、实验目的、实验内容等。

(2)你实验所用的具体程序、实验记录。

(3)实验结论:包括记录处理的过程和结果(如需要)、实验结论和体会、对自己的实验课的收获的评价、新的发现、特别的现象(能解释的和不能解释的说明白)及对自己和实验课的改进意见等。

总之,实验报告主要是实验过程和结果的总结文件,要让别人看懂,至少自己过一段时间还能回忆起实验当时的情况,这样的实验才是合格的。另一方面,实验也要反映每次实验课的重要实验内容、结果及发现,还应有对自己和对实验课的改进意见等,以便使实验课效果进一步得到改进。

实验2 定时器与I/O综合应用

【实验目的】

(1)掌握定时器和I/O应用的基本编程方法。

(2)单片机硬件调试初步:掌握单片机系统运行结果的硬件试验方法。

(3)编写并调试一个定时器与I/O综合应用的程序。

【实验设备】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件加硬件仿真器。

(3)示波器、LED发光管、电阻、导线、接线卡、按键(轻触开关)、实验目标板等。【实验内容及要求】

1)定时器和I/O的基本编程方法

要求:

(1)实现教材【例5-4】的要求。用程序编辑软件输入程序,之后编译、连接并做运行调试该程序,用示波器观察I/O管脚上产生的方波,记录其特性参数,如频率、幅值等。注意保存工程文件于自己的文件夹中。

(2)同步骤(1),用C语言编写任务程序,编译并调试通过。参考程序如下

#include // 文件名:TEST2_1.C

#define uchar unsigned char

void timer1() interrupt 3 // 产生方波

{

P1_0 =~ P1_0;

TL1 = 0x0c;

TH1 = 0xfe; //重装常数

}

void main()

{

TMOD = 0x10;

TL1 = 0x0c;

TH1 = 0xfe;

ET1 = 1; // 允许T1中断

EA = 1; //允许中断EA = 1;

TR1 = 1; //启动T1定时

while (1);

}

(3)在步骤(2)程序TEST2_1.C的基础上,编写定时1分钟的程序。

提示:先编写定时1s的程序。参考程序如下TEST2_2.C清单所示。

#include // 文件名:TEST2_2.C

#define uchar unsigned char

uchar N_time;

void timer1() interrupt 3 // 产生方波

{

// P1_0 =~ P1_0;

TL1 = 0x00;

TH1 = 0x4c; //重装常数

N_time--;

}

void main()

{

N_time = 20;

TMOD = 0x10;

TL1 = 0x00;

TH1 = 0x4c;

ET1 = 1; // 允许T1中断

EA = 1; //允许中断EA = 1;

TR1 = 1; //启动T1定时

while (N_time != 0);

while (1);

}

在TEST2_2.C的基础上,编写出1分钟的程序,调试通过并记录程序的实际定时时间。

注:本实验的参考程序是用C51编写的,习惯用汇编语言编程的同学请参照教材和C 语言参考程序,自己编写延时1秒的汇编语言程序。

(4)在步骤(3)程序TEST2_2.C的基础上,编写定时1分钟的程序,命名为TEST2_3.C。

2)单片机硬件调试初步:掌握单片机系统运行结果的硬件试验方法。

用示波器观察方波输出管脚的波形,确认程序运行时有方波输出,记录方波的频率。

3)编写并调试一个定时器与I/O综合应用的程序。

(1)在实验目标板上,用51机一组I/O,如P1口8位,利用单片机I/O吸收电流能力较大的特点,电路要设计成负逻辑的,即I/O低电平时,LED灯亮。

(2)利用TEST2_3.C的结构及程序结构,控制8个LED灯的闪烁,以1分钟为周期,每周期内每秒钟改变LED灯的工作状态一次,形成不同的闪烁效果(至少要有2种LED灯的闪烁方式),以区分出单片机运行在不同的定时周期中。

(3)参考教材图3-16的键盘接口电路,通过图15-1所示的实验目标板,将一个按键接入定时/计数器T0或T1管脚上,编写用定时对脉冲计数的程序,编译、连接并调试程序,从而理解定时/计数器的定时/计数双重功能的含义。

注:图15-1所示的实验目标板,是我校实验室为单片机实验自制的电路板,板上将外扩芯片和单片机管脚引了出来。实验时可根据需要,通过接线卡,实现各部件管脚的互联,实验就比较方便,学生可根据自己的设想用板上的资源完成实验任务,易于发挥学生各人

B

T

E E

/R

I

D

S A

K

图 15-1 我校单片机实验课目前使用的一种实验目标板原理简图

的主观性。但正确使用目标板,还要在看懂电路图的基础上,再多次实践,才能培养出看图、理解图及有效利用好图的意识和能力。所以,培养识图能力,也是实验课程目的之一。

图15-1是实验目标板的简化原理图,其中很多管脚连线都是用总线给出的,读简化图的技巧是两个器件管脚的连接是按编号从小到大对应的,很多器件(如电阻、电容)都省略没画出来,这时读图主要是注意确定各芯片的地址、控制管脚是受单片机哪个管脚控制的等信息。

使用实验目标板与实际工程用的目标板不同,工程中用的目标板,与实际工程密切联系,目标板是根据工程实际需要定做的,其上一般没有多余的器件和空间;而实验目标板主要目的就是为实验提供方便的操作,单片机资源(以管脚形式)全部引出,其上空间也比较大,为实验者在其上进行各种实验提供一个电路底板。事实上,实验目标板在使用中最多的用途是做仿真机上的单片机与外设之间的桥接板作用。根据这一概念,实验目标板可以是多种多样的,不要局限于图15-1所示实验目标板设计思路。

【实验报告内容】

(1)将实验中所用的程序全部列于报告中,重要的语句或指令要加注释。

(2)在记录中详细描述单片机硬件调试的过程和所观察的现象,能量化之处要结出客观实际的数据。

(3)你的LED灯的闪烁与别人的有何不同?

(4)如果你用C51编写的程序,现在你将它们翻译成汇编语言程序;如果你用汇编语言编写的程序,现在你将它们翻译成C51程序。

实验3 外部中断与I/O综合应用

【实验目的】

(1)掌握51机外部中断的基本编程方法。

(2)通过实验考查51机外部中断的两种触发方式的特点。

(3)设计并调试一个基于外部中断的键盘系统(至少有2个键)。

【实验设备】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件加硬件仿真器。

(3)按键(轻触开关)、电阻、二极管、导线、接线卡、实验目标板等。

【实验内容及要求】

1)掌握51机外部中断的基本编程方法。

要求:

(1)参照教材【例5-8】编程方法,实现外部中断0的下降沿触发、外部中断1的低电平触发中断的程序,用编辑软件输入程序,之后编译、连接通过。注意保存工程文件于自己的文件夹中。

(2)参考教材图3-16的键盘接口电路,实验目标板,如图15-1分别为0

INT、1

INT管脚各接一个按键,并运行、调试该程序。调试程序的方法如下:

将光标放在某个中断服务程序的某一行上,然后应用运行到光标处功能,如果在按键触动后,程序停在中断服务程序中,说明你的程序编写是正确的。

2)通过实验考查51机外部中断的两种触发方式的特点

验证51机外部中断触发方式时,先通过运行到光标处调试手段,将两个外部中断的初始化程序指令部分执行完,再将光标放到某个中断服务程序的某一行上,将按键按下不放,执行运行到光标处命令后,如果程序在光标处停下,说明该外部中断源为低电平触发工作方式;如果程序不能停(中断)在指定位置,说明该外部中断源为后沿触发工作方式,这时将按键释放,程序应该在光标处停下来,于是两种触发工作方式的特点已经测试出来。

3)设计并调试一个基于外部中断的键盘系统(至少有2个键)

参考教材图3-16的键盘接口电路,在0

INT管脚上接至少2个按键,组成外部

INT或1

中断源的复用键盘接口电路。

参照教材【例5-19】编程方法,编写单片机响应按键中断请求,并识别按键名的程序。调试、运行该程序。程序调试方法仍然使用运行到光标处调试手段,当按键按下后,通过寄存器查询按键名识别的正确性。

【实验报告内容】

(1)将实验中所用的程序全部列于报告中,重要的语句或指令要加注释。

(2)在记录中详细描述外部中断调试的过程和所观察的现象。

(3)如果你用C51编写的程序,现在你将它们翻译成汇编语言程序;如果你用汇编语言编写的程序,现在你将它们翻译成C51程序。

(4)总结外部中断编程要素及编程步骤及硬件触发信号的特性及作法。

实验4 异步串行通信实验

【实验目的】

(1)掌握51机异步串行通信控制器原理和通信线路的接口标准。

(2)通过实验学习各种方式下51机异步串行通信编程和调试方法。

【实验设备】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件加硬件仿真器。

(3)导线、接线卡、实验目标板等。

【实验内容及要求】

1)掌握51机异步串行通信控制器原理和通信线路的接口标准

要求:

两人一组连接异步串行通信双机通信线路。在断电条件下,参照教材图5-35(图8-11)用导线和接线卡,通过仿真机或目标板,将两个51机异步串行通信接口正确连接。

2)通过实验学习各种方式下51机异步串行通信编程和调试方法

(1)参照教材【例5-16】的参考程序,编写串行口方式2下的双机通信程序,之后编译、连接通过。注意保存工程文件于自己的文件夹中。运行、调试该程序。通信程序的调试方法如下:

① 接收方要先运行。方法是,应用运行到光标处调试功能,将光标放在数据接收完成指令的下一行上,执行运行到光标处(断点)调试功能命令,等待通信发送方发送数据。

② 在接收方正常等待后,发送方可以运行程序,发送数据了,发送数据的多少,要看通信双方的约定(这就是最简单的协议)。发送方也要应用运行到光标处调试功能,将光标放在数据发送完成指令的下一行上,执行运行到光标处(断点)调试功能命令。如果在命令执行后,双方程序都停在指定命令行上,说明你们的通信程序基本是正确的。接着察看接收的数据是否是发送方想发送的数据,如果答案是肯定的,说明单向通信已经正常。

通信双方位置对调,即发送方改为接收方,接收方改为发送方,重复上述步骤,如果数据传输正常无误,说明你们的通信编程和调试已经入门。在此基础上,你们可以略为改变一下程序,将程序朝着更接近实际方面改进一下,如:发送多个数据,返回同样的数据;发送数据具有某种含义(协议),指定对方做某件事,并能实现;参照教材【例5-17】的参考程序,试试奇偶校验等。

(2)串行口方式1,累加和校验C语言程序调试

参考教材【例5-20】、【例5-21】的程序的编写方法,现要求,通信双方均用C语言通信程序。设两机的f osc均为11.0592 MHz,约定通信波特率9600,8位数据,采用累加和校验。任务为:A机发,B机收16个数据,两机的数据都存在以0200H单元为首址的外部数据存储器的连续单元中。发送方采用查询程序结构,接收方采用中断程序结构,数据发送完成后,接收方将累加和发送给发送方进行校验,如校验无误,发送方发AAH至接收方,如有误,发送方发55H至接收方,本次通信结束。

通信系统调试方法,可参照实验内容(1)进行。

【实验报告内容】

(1)将实验内容中每个步骤中发生的错误描述出来,分析其原因,并写出最终的解决方法。

(2)如果你用C51编写的程序,现在你将它们翻译成汇编语言程序;如果你用汇编语言编写的程序,现在你将它们翻译成C51程序。

(3)说明如果想用51单片机与PC机进行异步通信,所使用的接口标准是什么?你应该在接口电路上做什么工作?有哪些技术手段。

实验5 并行总线系统实验

【实验目的】

(1)掌握51机并行总线结构和工作原理。

(2)学习51机并行总线结构下的系统编程方法。

(3)学习至少一种并行总线外围器件的控制方法。

【实验设备】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件加硬件仿真器。

(3)万用表(或逻辑笔、示波器)、实验目标板。

【实验内容及要求】

1)掌握51机并行总线结构和工作原理。

考察教材第7章内容及图7-2、图7-33,先形成51机并行总线结构和工作原理的概念,再与图15-1中的8255A的电路进行对比,确定8255A的基地址,再按图15-1中8255A 的I/O分配情况,确定8255A的工作方式并定义各组I/O的输入/输出状态,由此写出8255A 的工作方式字。

2)学习51机并行总线结构下的系统编程方法。

参照教材【例4-5】的参考程序,编写一个将外部RAM 2000H~201FH单元,共32字节传送到以3000H为首址的外部RAM的子程序程序,再通过主程序调用该子程序,之后编译、连接通过。注意保存工程文件于自己的文件夹中。

用软件模拟器运行、调试该程序。应用运行到光标处调试功能,程序停止在光标处(断点)后,通过外部RAM窗口,确定程序执行的正确性。

3)学习至少一种并行总线外围器件的控制方法

如果用图15-1所示的实验目标板,本实验内容是学习8255A的控制方法。参考教材第4章关于LED数码管的驱动原理,结合1)得到的8255A的工作方式字,实现对图15-1中的8位LED数码管的显示驱动和4×4键盘的扫描。建议分步实现上述任务: (1)编写并调试对任1位LED数码管的显示驱动程序,调试并运行成功。

(2)编写并调试对8位LED数码管的显示驱动程序。因为图15-1的电路是动态扫描

的多位LED数码管显示电路,所以驱动程序要反复进行显示扫描,编写程序,调试并运行成功。

(3)编写对4×4键盘的扫描程序,调试并运行成功。

(4)将(2)、(3)结合在一起,生成一个两步编写对4×4键盘的扫描程序,调试并运行成功。

【实验报告内容】

(1)将实验内容中每个步骤中得到的结果记录下来,如果有错误发生,则将其详细描述出来,分析其原因并结出最终的解决方法和结果描述。

(2)如果你用C51编写的程序,现在你将它们翻译成汇编语言程序;如果你用汇编语言编写的程序,现在你将它们翻译成C51程序。

(3)些实验可以说是一个综合性很强的实验,与很多实际工程项目中的键盘和显示电路具有相似之处。谈谈你对做这个实验的体会。

实验6 串行总线系统系统实验(选项1)

【实验目的】

(1)掌握51机与同步串行总线接口电路设计方法。

(2)学习51机对串行总线接口器件控制的编程方法。

(3)进一步学习和巩固多位LED数码显示系统的应用技术。

【实验设备】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件加硬件仿真器。

(3)实验目标板、DS18B20。

【实验内容及要求】

1)掌握51机与同步串行总线接口电路设计方法

本实验选择同步串行总线中一线总线的代表器件DS18B20作为实验对象。要求学生在实验前认真阅读教材第8章第4节的内容。本实验采用外部供电方式对DS18B20供电,其接口电路设计参考教材图8-25,该电路在图15-1所示的实验目标板上已存在。

2)学习51机对串行总线接口器件控制的编程方法

本实验只对DS18B20最简单用法即总线上只有1个DS18B20的情况进行学习性实验训练。实验内容也只以DS18B20最基本、最常用功能:测量温度的技术做为实验内容。具体说就是调试教材【例8-1】的参考程序。由于实验时间比较少,温度测量的驱动程序比较长,另一方面,DS18B20对时序时间片精度要求比较高,所以要求学生在课外先将教

材【例8-1】的参考程序输入,之后编译、连接通过,保存以备实验课上用。并认真阅读此程序,懂得编程的道理。

3)进一步学习和巩固多位LED数码显示系统的应用技术

实验室调试程序分以下几步:

(1)应用运行到光标处调试功能,反复调试参考程序,将读出的温度值按教材表8-6(表13-11)的定义,翻译成纯数值温度,与室温对比,直到验证程序正确为止。

(2)改变DS18B20的环境温度,运行程序读测量温度值,验证程序正确,并记录每一次的测量值。

(3)将实验5调试好的8位LED数码管的显示驱动程序与DS18B20的驱动程序合在一起,形成一个连续测温并显示温度程序。即实现实时温度显示系统功能。编写程序,调试并运行成功。

(4)编写子程序,将测量温度值翻译成二进制最好是十进制(BCD码)。将该子程序加入应用程序中,观察显示效果。如果你成功了,记住你此时的心情,并在实验报告中仔细描述出来。

【实验报告内容】

(1)将实验内容中每个步骤中得到的结果记录下来,如果有错误发生,则将其详细描述出来,分析其原因并结出最终的解决方法和结果描述。

(2)如果你用C51编写的程序,现在你将它们翻译成汇编语言程序;如果你用汇编语言编写的程序,现在你将它们翻译成C51程序。

(3)谈谈你在这个实验中的收获和体会。

注:具备条件的学校,可将此实验内容(1)、(2)改为对SPI或I2C总线器件的驱动实验,如AD、DA、EEPROM、RTC等,再结合实验内容(3),将实验核心内容显示出来,也都是很好的综合型实验。具有开放型实验的学校,可以将此实验的几个同类型实验内容,作为开放实验,让学生练习。

实验6 多机异步串行通信实验(选项2)

【实验目的】

(1)巩固和加强51机异步串行通信的应用技术。

(2)实践多机通信系统开发技术,学会制定简单的通信协议,实现多机通信。

(3)进一步学习和巩固多位LED数码显示系统的应用技术。

【实验设备】

(1)单片机应用程序编辑软件一种,推荐uedit32。

(2)单片机应用系统集成开发调试环境软件加硬件仿真器。

(3)导线、接线卡、实验目标板等。

1)巩固和加强51机异步串行通信的应用技术。

异步串行通信是自动检测和控制系统中应用最为广泛的通信方式,在嵌入式系统中应用特别广泛。单片机和其它嵌入式控制器,它们的异步串行口,加一个电平转换器,就成为标准RS-232信号,可与各种RS-232标准外设进行通信。异步串行通信还是各种流行的通信系统协议应用的基础。这里指的是:(1)通过异步串行通信实验,建立通信概念,通过自定协议的训练,更好的体会通信的作用和本质,为应用其它通信系统打好基础;(2)异步串行通信的编程方法可以直接引用到很多其它通信系统中,如RS-485通信系统,只要在嵌入式异步串行通信接口之间,增加RS-485驱动器,而程序只需在RS232通信程序基础上略加改动即可使用。还有如CAN总线通信系统,通信程序的编写方式与RS232通信程序的编写方式大同小异。为此本实验的目的是让学生进一步掌握51机异步串行通信的应用技术,特别是多机通信技术和简单的通信协议的制定和应用方面的能力培养。

在实验前,学生要认真阅读教材第5章第8节,有关51机多机通信的原理和编程实例。在充分理解多机通信原理的基础上,才能达到良好的实验效果。

2)实践多机通信系统开发技术,学会制定简单的通信协议,实现多机通信

参考教材图5-36(图8-12)的多机通信电路,将至少3个51机连成串行总线系统。

编辑教材【例5-23】的程序,编译、连接通过后,学习调试多机通信系统。在调试前,先做好简单协议,如每台单片机的网络编号,理解教材例题中的命令含义。程序调试的过程仍按参照实验内容(1)进行。特别要注意的是,通信程序的调试,总是要遵循接收方先行的原则,而且为了快速准确定位通信中的错误,程序调试多采用运行到光标处(或中断)调试功能。

程序调试要求学生能体会出一主通信系统广播方式的原理和工作情况。如主机叫错号,总是不能得到应答;从机不被叫号,始终处于等待状态等。

每次选一个同学的单片机运行主机的程序,其他同学的单片机都运行从机的程序。循环交换角色,使每个同学都能调试主机和从机的程序。

3)进一步学习和巩固多位LED数码显示系统的应用技术

在熟练使用教材【例5-23】的程序的基础上,逐步扩展程序功能,步骤如下:

(1)将实验5调试好的8位LED数码管的显示驱动程序部分,嵌入到多机通信程序中,其显示内容可以自己设计,注意设计的原则是:从简单到复杂,逐步深入。例如显示器可以显示主机发送的从机号;从机显示接收到的主机信息等。

(2)先应用运行到光标处调试功能,将主、从双方的程序调好,再全速运行通信双方的程序,观察系统运行的情况,若系统运行有缺陷,停机修改,直到系统运行为止。

(3)改善程序,使之更接近使用者的需要、或更强的功能。如果你设想的功能实现了,记住你此时的心情,并在实验报告中仔细描述出来。

【实验报告内容】

(1)将实验内容中每个步骤中得到的结果记录下来,如果有错误发生,则将其详细描述出来,分析其原因并结出最终的解决方法和结果描述。

(2)如果你用C51编写的程序,现在你将它们翻译成汇编语言程序;如果你用汇编语言编写的程序,现在你将它们翻译成C51程序。

(3)谈谈你在这个实验中的收获和体会。

刘焕成 2011年2月12日

2011年2月24日修改2

单片机实训心得体会

单片机实训心得体会 篇一: 通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。 踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。 但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。 这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过

程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。 篇二:单片机实验心得 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台 学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累单片机是一门应用性和实践性很强的学科,要多动手,多做实验。 (4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。 (5)碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路与相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度与精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度与精度也相对要低一些。例如,现在的单片机产品的CPU 大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量与CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术与段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都就是非标准的,且千差万别,种类很多。单片机的I/O接口实际上就是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都就是独立的芯片 1-4 IAP、ISP的含义就是什么? ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的FLASH上),但用户程序自身不可以对内部存储器做修改。 IAP:In Application Programable,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51单片机与通用微机相比,结构上有哪些主要特点? (1)单片机的程序存储器与数据存储器就是严格区分的,前者为ROM,后者为RAM; (2)采用面向控制的指令系统,位处理能力强; (3)I/O引脚通常就是多功能的; (4) 产品系列齐全,功能扩展性强; (5) 功能就是通用的,像一般微处理机那样可广泛地应用在各个方面。 1-7 51单片机有哪些主要系列产品? (1)Intel公司的MCS-51系列单片机:功能比较强、价格比较低、较早应用的单片机。 此系列三种基本产品就是:8031/8051/8751; (2)ATMEL公司的89系列单片机:内含Flash存储器,开发过程中可以容易地进行程

单片机实验总结

单片机实验总结

程序由410出品,与老师的不大一样,此处省去1万字-----最终解释归410所有 1.试编写程序。统计片内RAM 30H~50H单元中FFH的个数,并将统计结果存51H。 mov r0,#30h //把30h赋给R0 mov r1,#00h //把00h赋给R1 loop: cjne @r0,#0ffh,next //把R0所指的地址里的数(地址30h中的数)与0ffh比较 inc r1 //若为0ffh则R1加1(计算0ffh的个数) next: inc r0 //若不一样则R0加1(即把R0里的地址加1,R0将指向下一个地址) cjne r0,#51h,loop //比较R0所存的地址与51h,若不等则跳回loop 继续执行 mov 51h,r1 //若相等(R0里的数就为51h,完成30h到50h的计数)将R1里的值赋到地址51h里,即地址51h 中存储着0ffh的个数 sjmp $ //等待 end 2、从片内RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。 mov r0,#30h //把30h赋给R0 mov a,@r0 //把R0所指30H中的数赋给a(a中就是地址30h中的无符号数) mov r1,21h //把21h中的数赋给R1 loop: inc r0 //R0加1(即R0将指向下一个地址) mov 30h,@r0 //把R0所指地址的数给到地址30h中 cjne a,30h,chk //比较a中的数与地址30h中的数的大小,若a中的数>30H中的数,则Cy=0;否则相反 chk: jc lop //判断Cy是否为1,若是,则执行下面程序,否则跳至lop 继续执行 mov a,@r0 //把R0所指地址中的数给a,即把最小数赋给了a lop: djnz r1,loop //R1减一,程序跳至loop继续执行,循环直至R1减到0 mov 20h,a //把a中的数赋到地址20h中 end 3、设片外RAM 2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。 mov dptr,#2000h //将片外地址2000h给dptr movx a,@dptr //将片外地址2000h中的数赋给a anl a,#0f0h //将a中的数与0f0h与下,屏蔽低四位的数 movx @dptr,a //将屏蔽好的数送回到片外地址2000h中 end

实验报告(单片机实验报告)

1 双字节无符号数加法 例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5), R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h) 假设其和不超过16位。请编程。 org 0000h Ljmp start org 0050h start: mov R0,#93h mov R1, #79h mov R2,#25h mov R3, #0a4h mov A,R1 ADD A,R3 mov R5,A mov A,R0 ADDC A,R2 mov R4,A ss: jmp ss end 2双字节无符号数减法

例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。同学自己可以设置被减数与减数数值 org 0000h Ljmp start org 0050h start: mov R0,#93h mov R1,#79h mov R2,#25h mov R3,#0a4h mov A,R1 CLR C SUBB A,R3 mov R5,A mov A,R0 SUBB A,R2 mov R4,A ss: jmp ss end 3双字节数乘以单字节数

例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。 30H,31H,32H内容 12H,34H,56H ; org 0000h Ljmp start org 0050h start: mov 30h,#12h mov 31h,#34h mov 32h,#56h mov a,(30h) mov b,(32h) mul ab mov R3,b mov R4,a mov a,(31h) mov b,(32h) mul ab add A,R3 mov R3,A

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠

单片机实验总结

程序由410出品,与老师的不大一样,此处省去1万字-----最终解释归410所有 1.试编写程序。统计片RAM 30H~50H单元中FFH的个数,并将统计结果存51H。 mov r0,#30h //把30h赋给R0 mov r1,#00h //把00h赋给R1 loop: cjne r0,#0ffh,next //把R0所指的地址里的数(地址30h中的数)与0ffh比较 inc r1 //若为0ffh则R1加1(计算0ffh的个数)next: inc r0 //若不一样则R0加1(即把R0里的地址加1,R0将指向下一个地址) cjne r0,#51h,loop //比较R0所存的地址与51h,若不等则跳回loop 继续执行 mov 51h,r1 //若相等(R0里的数就为51h,完成30h到50h 的计数)将R1里的值赋到地址51h里,即地址51h中存储着0ffh的个数 sjmp $ //等待 end 2、从片RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。 mov r0,#30h //把30h赋给R0

mov a,r0 //把R0所指30H中的数赋给a(a中就是地址30h中的无符号数) mov r1,21h //把21h中的数赋给R1 loop: inc r0 //R0加1(即R0将指向下一个地址) mov 30h,r0 //把R0所指地址的数给到地址30h中 cjne a,30h,chk //比较a中的数与地址30h中的数的大小,若a 中的数>30H中的数,则Cy=0;否则相反 chk: jc lop //判断Cy是否为1,若是,则执行下面程序,否则跳至lop 继续执行 mov a,r0 //把R0所指地址中的数给a,即把最小数赋给了a lop: djnz r1,loop //R1减一,程序跳至loop继续执行,循环直至R1减到0 mov 20h,a //把a中的数赋到地址20h中 end 3、设片外RAM 2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。 mov dptr,#2000h //将片外地址2000h给dptr movx a,dptr //将片外地址2000h中的数赋给a anl a,#0f0h //将a中的数与0f0h与下,屏蔽低四位的数 movx dptr,a //将屏蔽好的数送回到片外地址2000h中 end 4、试编写程序,求出片RAM20H单元中“1”的个数,并将结果存入21H单

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

C51单片机实验总结报告

HEFEI UNIVERSITY 单片机实验报告 系别电子信息与电气工程系专业 班级 学号 姓名 指导老师 完成时间

实验一构建单片机最小系统和实验环境熟悉 一、预习要求 1.构建单片机最小系统,熟悉51单片机的结构及编程方法 2.按照程序流程图编写出程序 二、实验目的 1.熟悉星单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。 2.熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。 三、实验内容 单片机最小系统实验: 1、熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的安装和使用方法。 2、作出单片机最小系统的组成原理图,分析其各构成单元的工作原理。 存储单元数据传输实验 1、熟悉MCS51汇编指令。 2、进行存储单元数据传输实验,编写程序。 3、运行程序,验证译码的正确性。 四、实验原理 1、作出单片机最小系统的组成原理图

2.最小系统版的组成: 时钟电路,复位电路,电源电路。 3.软件编译环境的熟悉 实验中我们使用keilC环境编译程序。其窗口界面如下: 4.测试程序 ;将从外部RAM3000H单元开始连续存放的 ;50个单字节数据传送到内部RAM30H单元的50个单元中。 ORG 0000H MOV R0,#32H ;计数初值50 MOV A,#78H ;(A)=78H送外部3000H--3050H MOV DPTR,#3000H ;外部数据存储器首地址3000H送DPTR LOOP0: MOVX @DPTR,A ;送78H到外部数据存储区3000H INC DPTR ;外部数据存储区地址增一 DJNZ R0,LOOP0 ;循环次数减一不为零转LOOP0 SETB P1.2 CLR P1.3 CLR P1.4 ;74HC138输入为100,使CS2=0选中62256 MOV R0,#32H ;循环次数50送R0 MOV R1,#30H ;内部数据存储区首址30H送R1 MOV DPTR,#3000H ;外部数据存储区首址3000H送DPTR

单片机实验心得体会3篇

单片机实验心得体会一:单片机实验心得体会 时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。 在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。 这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。将所学知识运用到实践中,在实践中发现问题,强化理论知识。 现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。 第一次是借点亮led灯来熟悉keil软件的使用和试验箱上器材。第一次实验体现了一个人对新事物的接受能力和敏感度。虽然之前做过许多种实验。但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。所以第一次试验相对失败。鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。 在做实验中,第二个问题应该是准备不充分吧。一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。于是我便在上机之前把程序编好,拷到u盘,这样上机时只需调试,解决出现的问题。这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。 三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。但是编程是一件很严肃的事情,容不得半点错误。于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。这也能激发了学习的兴趣。 还有一次实验是调出电脑里的程序,让它在试验箱上实现其功,让我们去体会别人编程的技巧和程序逻辑美感。看了之后,不得不说我目前的水平简直太小儿科了。还有连线也是个问题,

单片机实验报告

南京晓庄学院电子工程学院 实验报告 课程名称:单片机系统设计与应用 姓名:森 专业:电子信息科学与技术 年级:14级 学号:05 2016年12 月1 日

实验项目列表 序号实验项目名称成绩指导教师 1 单片机仿真软件的使用 2 单片机I/O接口应用实验——流水灯 3 外部中断实验——工业顺序控制模拟 4 定时/计数器实验——矩形波 5 定时/计数器实验——计数器 6 综合实验 7 8 9 10 注: 1、实验箱端口为com6。 2、芯片选择切换到51 3、停止运行使用实验箱上的复位按钮

实验室号:___ 实验时间:成绩: 实验一仿真软件的使用 1.实验目的和要求 1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤; 2)掌握单片机仿真软件使用和调试的方法。 2.实验原理 Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 3.主要仪器设备(实验用的软硬件环境) 安装有Keil C51软件的PC机1台 4.操作方法与实验步骤 Keil C51软件使用 (1)建立用户文件夹 (2)建立工程 (3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中 (4)把文件加入工程中 (5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。 (6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。 (7)目标代码文件的生成。运行生成相应的.HEX文件。 5.实验内容及程序 1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。 注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。 P83-5源程序 #include #define uchar unsigned char xdata unsigned char buffer1[10]_at_ 0x2000; //在xdata区定义数组变量BUF1,首地址为2000H data unsigned char buffer2[10]_at_ 0x40; //在data区定义数组变量BUF2,首地址为40H void main(void)

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

大学生单片机实习总结

大学生单片机实习总结 ,我们将为大家提供关于20XX年实习报告的信息,敬请期待! :xx :实习报告范文| 实习报告模板| 会计实习报告 | 大学生实习报告 | 顶岗实习报告 | 金工实习报告 | 毕业实习报告 | 土木工程实习报告 | 生产实习报告 |实习周记 | 3000字范文 大学生单片机实习总结 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实习课题也在一周内完成了。俗话说“好的开始是成功的一半”。说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。其次,老师对实验的讲解要一丝

不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的实习算起来在实验室的时间只有几天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

单片机实验报告一

单片机实验报告 1 姓名 陈奋裕 时间 2014/10/30 地点 机电实验大楼B526 实验题目 软件开发环境和简单程序设计 一、实验目的 1. 熟悉WAVE 软件使用 2. 学习简单程序的调试方法 二、实验主要仪器及环境 PC 机、WA VE 软件、仿真器+仿真头、实验板、电源等。 三、实验内容及步骤 1.启动PC 机,打开WAVE 软件,软件设置为模拟调试状态。在所建的项目文件中输入源程序,进行编译,编译无误后,执行程序,点击全速执行快捷按钮,点击暂停按钮,观察存储块数据变化情况,点击复位按钮,可再次运行程序。 2.打开CPU 窗口,选择单步或跟踪执行方式运行程序,观察CPU 窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。 四、流程图及参考程序 实验1 1)参考程序 2)流程图 ORG 0000H START EQU 30H MOV R0, #START MOV R2, #10 mov a,#01h Loop: MOV @R0,A NOP LJMP $ END

五、实验及程序的分析和讨论 (1)第一个程序是将地址为30H到39H的寄存器的内容全部置1。先在R0中存放内部存储器的起始地址30H,R2中存放内部存储器的长度10个,累加器置1,然后利用循环控制指令DJNZ R2,Loop控制10次循环给上述10个单元赋值1.最后,使单片机自身跳转。 (2)实验得到全速执行后相应的测试结果: (3)实验得到30H到39H寄存器执行后的内容: 从该表中也可以看出该程序的功能,即将30H到39H的寄存器内容置1,说明自己的分析是对的。 六、实验小结 1、汇编语言的结果在软件里面全部都是黑色字体,无法编译,在老师的 提醒下,知道了WAVE软件只能执行ASM文件,所以实验前要先将文件 的类型改为.ASM。 2、程序中的逗号要在英文的状态下面编写;若提示有空余符号,则是分 号后面直接写注释,不要添加空格 七、思考题 1、软件开发环境提供了哪些调试手段?各有何特点? 答: 1.伟福仿真器为我们的调试提供了多种方法,它可以编译,以便查 找语法错误; 2.单步执行,来检查每句程序的功能; 3.全速执行程序,来检查整段程序要完成的功能; 4.还可以设置断点进行调试,以便分段执行程序。 2、如何将存储器块的内容移动到另一位置? 答:借助指针和寄存器,利用转移类指令即可将存储器块的内容移动到 另一位置。

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

单片机实验总结

单片机实验程序小结 实验二中断实验 1.将P1口驱动的8个LED发光二极管做左移循环闪烁(7灭1亮),当有中 断请求时(连接在0 INT引脚上的按键来模拟)使8个LED发光二极管闪烁6次。 a)程序: ORG 0000H LJMP START ORG 0003H LJMP EXT1 ORG 0100H START: SETB EA SETB EX0 SETB IT0 MOV SP,#60H MOV A,#01H L1: MOV P1,A ACALL DELAY RL A JMP L1 DELAY: MOV R1,#50 J1: MOV R2,#20 J2: MOV R3,#248 DJNZ R3,$ DJNZ R2,J2 DJNZ R1,J1 RET EXT1: PUSH ACC PUSH PSW CLR RS1 SETB RS0 MOV A,#00H MOV R7,#12 S1: MOV P1,A ACALL DELAY CPL A DJNZ R7,S1 POP PSW POP ACC

RETI END 2.0 INT接实验箱上的负脉冲按钮,来模拟中断源。当有“中断请求”(该铵钮按下并松开)时,使连接在P1口上的4个发光二极管的状态反映(记录)“中断请求”次数(初使状态时,该4个发光二极管全灭)。 a)程序: ORG 0000H LJMP START ORG 0003H LJMP EXT1 ORG 0100H START: SETB EA SETB EX0 SETB IT0 MOV SP,#60H MOV A,#00H MOV P1,A JMP $ EXT1: PUSH PSW RL A ADD A,#1H MOV P1,A POP PSW RETI END

单片机实验总结

单片机原理及接口技术实验总结 本学期的单片机实验转眼已到尾声,共做了六项实验,分别是KEIL4、ISP下载软件的安装于使用、P1口输出循环灯实验、P1口转弯灯实验、P3.3口输入P1口输出实验和中断实验。在王承林老师的带领与指导下,我们认真完成每次的实验任务,并在实验中拓展,去发现一些新的问题。 在这六项实验中让我刻骨铭心的是中断实验。中断可以说是我的一个弱点,首先从概念上我理解比较含糊,理解能力差;其次,6个中断源比较难记清,经常记混,加之它们分配的寄存器存在太多的异同,工作方式更是让人头疼;再次,中断的使用。中断的精髓是在于使用,在电路设计中使用中断来控制单片机的工作,使之更好的达到所需目的。我刚开始学习的时候连怎么使用中断还是一无所知,后来我到图书馆里查找资料,慢慢的琢磨。至今学会了中断源的4种工作方式,能简单设计出中断电路。虽然起步晚,但我相信能厚积薄发,未来一定能熟练使用它们。 经过学习单片机的中断控制,我发现自己存在许多不足,但这些都困难无法阻挡我对单片机的追求。许多同学在做实验时都抱着不良的心态,他们只想照着实验本的步骤原原本本把实验完成就算大功告成,很少更深层次挖掘里面的奥秘,更有甚者是打酱油的,我不得不为他们如此浪费那么好的学习机会感到可惜。我能为他们做的就是帮助他们讲解一些单片机知识,有时教他们编写程序。

实验室是培养高层次人才和开展科学研究的重要基地。邢台学院对培养学生的动手能力是十分重视的,为了提高学生的动手能力,让学生做相关实训并完成单片机实验,在实验的形式上注重培养学生的实验技能和动手能力。从单片机实验中学生就可以总结出大量的经验以适应当代社会的发展。 学习单片机这门课程,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使我从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。 单片机课是一门实践性很强的课程,仅有课堂上理论知识的学习,对运用好单片机是完全不够的,必须亲自做实验,从实验中吸取教训,总结经验,增加实战经验,加深对单片机的理解,更好的运用单片机。单片机实验课的目的就是为学生提供做实验的机会,让学生能够从几个简单的实验中学会单片机开发的过程和单片机的实际运用。 单片机实验课让我将课堂上学到的理论知识运用到实验当中去,在实验中发现问题,解决问题,强化理论知识的运用。下面是自己做实验当中遇到的一些问题和体会。 首先,自己在实验课上对老师讲解的东西没有很好的领会。自己觉得老师讲的电路和原理自己都懂,就没有认真听老师的讲解,但是当自己去理解程序和修改程序就发现自己对电路的工作原理和过程

单片机实训心得体会

单片机实训心得体会 导读:本文是关于单片机实训心得体会,希望能帮助到您! 单片机实训心得体会一 时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。 俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。 硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,

有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。 在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。 再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。 单片机实训心得体会二 这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。 关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应

相关文档