51单片机实验报告

2024-05-06

51单片机实验报告(精选6篇)

篇1:51单片机实验报告

实验报告

班级:

姓名:

学号:

组别:

课程名称:单片机原理及应用

实验室:

实验时间:

实验项目名称:

实验一

MCS-51单片机及其开发系统(仿真器)的认识 一、实验目的:

学习并掌握单片机仿真系统的操作方法,熟悉系统功能及用法。

(1)了解MCS-51单片机开发常用工具。

(2)了解仿真器构成、功能及连接。

(3)掌握MCS-51开发软件(汇编器)安装、功能及基本操作。

(4)掌握源程序的编辑、汇编、运行(包括连续执行、单步执行和跟踪执行)。

(5)掌握汇编语言指令与机器语言指令之间的对应关系。

(6)掌握ORG、DATA、BIT等伪指令的作用。

(7)掌握在仿真开发系统下浏览、修改特殊功能寄存器、内部RAM、外部RAM单元的方法。

(8)理解MCS-51单片机在复位期间及复位后有关引脚的状态、特殊功能寄存器的初值。

二、实验内容及原理:

MdeWin单片机仿真系统的安装、设置、主要功能操作练习。

三、实验器材:

MdeWin单片机仿真系统一套、PC机一台。

四、实验步骤及实验结果分析:

一、程序输入练习:

首先在Medwin下新建一项目,并新建一后缀名为asm的文件(汇编源文件),并添加入项目中。

按规定的格式输入以上程序(只输源程序部分)。

二、程序运行和控制:

1.程序的编译、产生代码并装入: 输入源程序完毕后,可在“项目管理”窗口中点击“编译/汇编”选项,如程序无输入错误、语法错误等,编译完成。在消息窗口中,产生编译成功信息。如有错误,则消息窗口中指出错误所在行及错误类型,请重新修改源程序。

编译成功后,在“项目管理”窗口中点击“产生代码并装入”选项,对编译无误后产生的OBJ文件进行连接,并把代码装入仿真器。代码装入仿真器后,即可实行仿真。

可在反汇编窗口中查看编译产生的机器码,并与上述程序中对照。

记录你认为能说明问题的检查结果。

2.程序的全速、断点、单步等执行方式: 为提高调试程序的运行速度,程序采用全速断点运行方式。

练习设置及取消设置程序断点。

比较单步及跟踪两种程序运行方式的不同。

3.查看单片机各种资源状态及内容:

在“察看”窗口中可以查看单片机内部及程序变量等各种资源,在单步或程序断点运行中可以实时观察单片机SFR、内外RAM、程序变量等内容,可以很方便的观测程序的运行状况。

将观测的结果记录下来以便和程序分析结果相比较。

三.程序输入补充练习1.汇编语言源程序编辑、运行及调试,输入、编辑、汇编、运行(连续、单步执行)如下程序段:

;变量定义区

XVAR DATA

30H

;定义变量 X,Y地址

YVAR DATA

38H

P10 BIT

P1.0

;位定义P1.0定义为P10

ORG

0000H

;伪指令 定义PC开始位置

LJMP

MAIN

;长跳转到主程序位置

ORG

0100H

;伪指令 主程序开始位置 MAIN: MOV SP, #9FH

;设置堆栈地址

MOV A, #55H

;A=55H

MOV XVAR, A

;XVAR(30H)=55H

MOV R0, #XVAR

;R0=30H

MOV @R0, #01H

;(30H)=01H

INC R0

;R0=31H

MOV @R0, #02H

;(31H)=02H

MOV R1, #YVAR

;R1=38H

MOV A, @R0

;A=02H

MOV @R1, A

;(38H)=02H

PUSH Acc

;压栈操作A0,A1存储acc和psw

PUSH PSW

;

MOV A, #0AAH

;A=AAH

SETB RS0

;01 选用第一区寄存器

CLR RS1

MOV R0, #5AH

;R0=5AH

MOV R1, #0A5H

;R1=A5H

POP PSW

;出栈操作释放acc和psw

POP ACC

INC R1

;R1=39H

DEC R0

;R0=30H

MOV A, @R0

;A=01H

MOV @R1, A

;(39H)=01H

CLR P1.0

SETB P1.0

;置位P1.0

MOV 90H, #00H

;(90H)=00H

MOV 90H, #55H

;(90H)=55H

MOV 90H, #0FFH

;(90H)=FFH

MOV P1, #00H

;P1=00H

MOV P1, #55H

;P1=55H

MOV P1, #0FFH

;P1=FFH

SJMP $

END(1)找出每条指令的机器码,并与第3章指令码表对照,指出每一指令的功能、寻址方式、操作数书写形式。

地址

机器码

指令

目的操作数/ / 源操作数

MOV SP, #9FH

目的操作数:直接寻址;源操作数:立即寻址 MOV A, #55H

目的操作数:寄存器寻址;源操作数:立即寻址; MOV XVAR, A

目的操作数:直接寻址;源操作数:寄存器寻址; MOV R0, #XVAR

目的操作数:寄存器寻址;源操作数:立即寻址;

MOV @R0, #01H

目的操作数:寄存器间接寻址;源操作数:立即寻址; INC R0

寄存器寻址 MOV @R0, #02H

目的操作数:寄存器间接寻址;源操作数:立即寻址; MOV R1, #YVAR

目的操作数:寄存器寻址;源操作数:立即寻址; MOV A, @R0

目的操作数:寄存器寻址;源操作数:寄存器间接寻址; MOV @R1, A

目的操作数:寄存器间接寻址;源操作数:寄存器寻址; PUSH Acc;

将Acc中的内容压入堆栈;直接寻址 PUSH PSW

将PSW压入堆栈;直接寻址 MOV A, #0AAH

目的操作数:寄存器寻址;源操作数:立即寻址; SETB RS0

位寻址 CLR RS1

位寻址 MOV R0, #5AH

目的操作数:寄存器寻址;源操作数:立即寻址; MOV R1, #0A5H

目的操作数:寄存器寻址;源操作数:立即寻址; POP PSW

按压栈顺序放入PSW; 直接寻址 POP ACC

按压栈顺序放入Acc;直接寻址 INC R1

寄存器寻址 DEC R0

寄存器寻址

MOV A, @R0

目的操作数:寄存器寻址;源操作数:寄存器间接寻址; MOV @R1, A

机器码:F7;R1=A;

目的操作数:寄存器间接寻址;源操作数:立即寻址; CLR P1.0

将p10口清零 SETB P1.0

将P10口置一; 位寻址 MOV 90H, #00H

机器码:759000;(90H)=00H;目的操作数:直接寻址;源操作数:立即寻址; MOV 90H, #55H

目的操作数:直接寻址;源操作数:立即寻址; MOV 90H, #0FFH

目的操作数:直接寻址;源操作数:立即寻址; MOV P1, #00H

目的操作数:直接寻址;源操作数:立即寻址;

MOV P1, #55H

目的操作数:直接寻址;源操作数:立即寻址; MOV 90H, #0FFH

目的操作数:直接寻址;源操作数:立即寻址; SJMP $

(2)在单步执行过程中,每执行一条命令后,观察并记录有关寄存器、内存单元的变化情况。设置断点后,再连续执行,记录30H、31H、38H单元内容,与复位后的内容进行比较,由此得出什么结论?

全速执行

全速执行后复位

执行至断点处

全速执行到结束 由上图可见,全速执行后并不会输出结果,只有当程序复位之后才会将结果显示出来,但是设置断点后,运行至断点就会显示已运行的结果,由此我得出结论:当全速运行到最后时,系统处于原地跳转状态,只要系统不停下就不显示结果,而设置断点后,到达断点就会停止运行,从而显示运算结果。而单步执行在每一步执行之后,对应地址的数值就会立刻改改变。

(3)修改ORG 100H指令后的地址,重新汇编,观察程序代码在程序存储器中存放位置的变化情况。记录你认为能说明问题的检查结果。

ORG 300H

ORG 1000H 五、在实验过程中遇到的问题及解决方法(1)

软件安装出错

解决:删除注册表,在注册表的删除过程中,必须要删干净,然后换安装包重装。

(2)

出栈时,寄存器的数值改编 解决:psw 出栈时,改变了 rs0,rs1 的值,也就是换回了 0 区寄存器。因此个寄存器的数值均为压栈前的数值。

六、实验结论

本次实验,较为简单,基本上是验证性实验,在学习了理论知识后,通过实践,简单明了的看到了各个地址的数值,并了解到程序的运行过程,单步运行更容易让我们了解到每一步指令的操作效果。另外,在实验过程中,调用各个查看窗口进行实验过程跟踪,能更加直观的认识到指令的作用

篇2:51单片机实验报告

实验代码 #include 〈reg51、h> void Delay10ms(unsigned int c); void main(){)1(elihwﻩ { ﻩ

P0

= 0x00;

Delay10ms(50);

;ffx0 =

0Pﻩ

;)05(sm01yaleDﻩ } } void Delay10ms(unsigned int c){

unsigned char a,b;

for(;c>0;c-—)

{)——b;0〉b;83=b(rofﻩ { ﻩ ﻩ

for(a=130;a〉0;a--);

} ﻩ ﻩ }

} 实验原理

W W hi i le(1)表示一直循环。

循环体内首先将 P0 得所有位都置于零,然后延时约5 5 0 *10=500ms,接着 0 P0 位全置于 1 1,于就是 D LED 全亮了。接着循环,直至关掉电源..延迟函数就是通过多个for r 循环实现得。

实验 2 流水灯(不运用库函数)

实验现象 起初 led 只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #include <reg52、h> #include <intrins、h> void Delay10ms(unsigned int c);

main(){

unsigned char LED;

LED = 0xfe;

while(1)

{ ﻩ

;DEL = 0Pﻩ

Delay10ms(50);

;1 〈〈 DEL = DELﻩ)00x0 == 0P(fiﻩ {

;efx0 = DELﻩ

} ﻩ } ﻩ} void Delay10ms(unsigned int c)

unsigned char a,b;

for(;c>0;c-—)

{)—-b;0〉b;83=b(rofﻩ { ﻩ ﻩ ﻩ

;)--a;0>a;031=a(rofﻩ

} ﻩ

} ﻩ} 实验原理

这里运用了C语言中得位运算符, , 位运算符左移, , 初始值得二进制为1 111 1 11 0, 之后左移一次变成1 111 1 100 0,当变成0000

0 0000 时通过 f if 语句重置 1 1 11 1 11110、延迟函数在第一个报告已经说出了,不再多说..实验 3 流水灯(库函数版)实验现象

最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码 #include 〈reg51、h> #include 〈intrins、h〉 void Delay10ms(unsigned int c); void main(void){

unsigned char LED;

;EFx0 = DELﻩ)1(elihwﻩ { ﻩ

P0 = LED;

;)05(sm01yaleDﻩ ﻩ

;)1,DEL(_lorc_ = DELﻩ } ﻩ} void Delay10ms(unsigned int c){

unsigned char a, b;

for(;c〉0;c——)

{ ﻩ

for(b=38;b〉0;b—-)

{ ﻩ ﻩ

;)-—a;0〉a;031=a(rofﻩ

} ﻩ } } 实验原理

利用头文件中得函数,_cro l _(,), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位 补全时都就是用那个移位移除得数据, , 由此比前一个例子不需要f if 语句重置操作..数码管实验

实验现象 单个数码管按顺序显示0-9与 A-F。

#include<reg51、h> void Delay10ms(unsigned int c);unsigned char code DIG_CODE[16]={0x3F,0x06, 0x5B,0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; void main(void){

;0 = i rahc dengisnuﻩ while(1)

{ ﻩ

P0= ~DIG_CODE[i];

;++iﻩ)61 == i(fiﻩ

;0 = iﻩ } ﻩ

;)05(sm01yaleDﻩ }

ﻩ} void Delay10ms(unsigned int c)

//Î ó² î 0us

unsigned char a, b;

for(;c>0;c—-)

{ ﻩ

for(b=38;b〉0;b--)

{

;)—-a;0〉a;031=a(rofﻩ

} ﻩ }

} 实验原理

根据数码管得点亮原理,依次找到代表 0 0 -9 ,A--F F 得位码,用循环与延迟函数就可以达到要求了。

实验 动态数码管 #include〈reg51、h> #define GPIO_DIG

P0 ﻩ#define GPIO_PLACE P1

unsigned char code DIG_PLACE[8] = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code DIG_CODE[17] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned char DisplayData[8];void DigDisplay();void main(void)

unsigned char i;

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

{ ﻩ

DisplayData[i] = DIG_CODE[i];

} ﻩ while(1)

{ ﻩ

;)(yalpsiDgiDﻩ }

ﻩ ﻩ} void DigDisplay()

;i rahc dengisnuﻩ

;j tni dengisnuﻩ for(i=0;i<8; i++)

{

;]i[ECALP_GID = ECALP_OIPGﻩ ﻩ

;]i[ataDyalpsiD = GID_OIPGﻩ

;01 = jﻩ ﻩ ﻩ

ﻩwhile(j—-);ﻩ

};00x0 = GID_OIPGﻩ ﻩ} 实验原理

依然找到相应数字与字母得编码, , 由于必须通过快速扫 描利用视觉暂留来实现数码管得显示, , 分段码与位码,不断扫描。最后如果更换数字得话, , 需要消隐操作,防止数码管重复显示所带来得不清楚..实验 外部中断 实验现象

每按一下独立按键,就会在数码管显示屏上+1.#include 〈 reg51、h 〉 #include sbit LS138A=P2^2;

sbit LS138B=P2^3;sbit LS138C=P2^4;

unsigned int LedNumVal_1,LedNumVal_2,LedOut[8];Unsigned char code Disp_Tab[]= {0x3f,0x06,0x5b,0x4f, 0x66,0x6d , 0x7d,0x07,0x7f,0x6f , 0x40};

void delay(unsigned int i)

{

char j;

for(i;i > 0; i--)

for(j = 200;j > 0;j—-);} void main(void)

unsigned char i;

P0=0xff;

P1=0xff;

P2=0xff;

IT0=1;

EX0=1;

IT1=1;

EX1=1;

EA=1;

while(1)

LedOut[0]=Disp_Tab[LedNumVal_1%10000/1000];

LedOut[1]=Disp_Tab[LedNumVal_1%1000/100]|0x80;

LedOut[2]=Disp_Tab[LedNumVal_1%100/10];

LedOut[3]=Disp_Tab[LedNumVal_1%10];

;]0001/00001%2_laVmuNdeL[baT_psiD=]4[tuOdeLﻩ

LedOut[5]=Disp_Tab[LedNumVal_2%1000/100];

LedOut[6]=Disp_Tab[LedNumVal_2%100/10];

LedOut[7]=Disp_Tab[LedNumVal_2%10];

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

{

;]i[tuOdeL = 0Pﻩ

switch(i)ﻩ

ﻩcase 0:LS138A=0;LS138B=0;LS138C=0; break; case 1:LS138A=1; LS138B=0;LS138C=0;break; case 2:LS138A=0; LS138B=1; LS138C=0;break; case 3:LS138A=1; LS138B=1;LS138C=0; break;case 4:LS138A=0;LS138B=0;LS138C=1;break;case 5:LS138A=1; LS138B=0; LS138C=1;break;case 6:LS138A=0;LS138B=1; LS138C=1; break;

case 7:LS138A=1;LS138B=1; LS138C=1; break;

}

;)051(yaledﻩ } ﻩ

} } void

counter0(void)interrupt 0

using 1 {

EX0=0;

LedNumVal_1++;

EX0=1; } void

counter1(void)interrupt 2 using 2 {

EX1=0;

LedNumVal_2++;

篇3:51单片机实验报告

近年来,单片机技术以前所未有的势头迅猛发展。在生产与技术开发领域,成为电子技术、自动化技术、计算机技术、检测技术和通信技术中的一个重要的开发工具。市场对从事单片机开发人员的需求非常迫切,这也对单片机教学提出了更高的要求。目前大部分学校开设的单片机类的课程还是以MCS-51为蓝本,以汇编语言(或C语言)为编程工具,以并行扩展为核心,讲述单片机的接口技术及单片机的嵌入式应用。但随着微电子技术和信息技术的迅猛发展,以及各种新型数据传输接口技术的出现和新器件的推出,传统的MCS-51由于自身结构的原因,在数据通信和系统扩展方面开始显得捉襟见肘,与各种新技术的发展和应用产生脱节。

AVR是最近10年发展起来的新型、基于增强型RISC结构的单片机。AVR在运行速度、内存容量、内部功能模块的集成化、以串行接口为主的外围扩展、仿真技术等方面都比MCS-51先进,比较充分和全面代表了当前8位单片机和嵌入式应用技术的发展方向。1999年,ATMEL公司与华东师范大学电子系合作,建立了国内第一个AVR实验室,并开设了AVR课程。在教学时间过程中,结合课程特点和实验需求,研制开发了具有专业特色的技术水平较高、扩展性较强、实验内容丰富的AVR单片机多功能实验开发板。

1 硬件结构

1.1 AVR实验开发板结构

传统的单片机实验板透明度不高,实验板上的芯片、接口都是固定连接的,硬件只需要很少连接,甚至不需要连接,就能直接进行编程设计。这就把单片机以硬件为主、软硬结合的训练变相地转化成了纯软件的训练。

单片机系统具有“硬件决定软件,程序基于硬件”的特点。在外表上实现相同功能的系统,其硬件设计往往有多种形式,系统软件的设计也不相同。AVR多功能实验开发板本着使学习者在硬件设计和软件设计方面全面得到真正训练和学习的目的,一改以往的固定线路、固定接口、固定芯片的模式,对开发板上的硬件资源采用了全部开放的结构,提供了比较丰富的接口,以及众多构成单片机系统最常用的、同时也是最基本的外围功能电路。板上的单片机引脚全部开放,同时将单片机系统中最常用的显示、按键、键盘等都作为独立的开放单元模块,其连接信号接口和电源接口也是开放的。这样学习者就可以非常灵活地构建自己的系统。

本文的AVR多功能实验开发板基于“模块独立、开放、灵活”的思想而设计,是一款适用于大学单片机教学和实验使用的多功能板。实验板分成三大部分:系统电源、MCU座和外围功能模块单元。其中外围功能模块单元划分为LED数码管显示、LED点阵显示、矩阵键盘、蜂鸣器、串行接口等多个功能区域,实验板的实物图如图1所示。

1.2 实验板硬件组成

1.2.1 系统电源

在8~12V输入电压范围内提供高稳定的5V/1A的系统电源,配有电源指示灯、极性保护电路及开关。一般工作时,输入电压为9V。系统电源部分采用7805为实验板工作提供需要的5V/1A电源。另外,板上还有多个高、低频电源滤波电容。系统电源部分的原理图如图2所示。

1.2.2 MCU座

实验板预留了两个40引脚的锁紧插座,供MCU插入使用。两个插座引脚全部开放,与外围没有任何连接,MCU座连接的原理图如图3所示。左边40引脚插座与6组短路排(JU1)、2组短路排(X2和X1)、JU2-GND和JU3-VCC配合,构成通用51系列40引脚单片机兼容的方式,适用于AT89S5x系列单片机和ATmega8515单片机;右边40引脚插座与10座短路排(JU4)、3组短路排(JU7)、4组短路排JU8配合,适用于ATmega16、ATmega8535和ATmega32单片机。另外,左边设计了2×5针的ISP下载接口,用于配合与STK200/300兼容的ISP下载线实现对AT89S5x和AVR单片机进行程序下载和熔丝位的配置;右边设计了2×5针的JTAG接口,用于配合使用专用的JTAG仿真器实现对含有JTAG接口的AVR单片机进行在片实时仿真调试,以及程序下载和熔丝位的配置。

由于2个插座引脚是全部开放的,当其中一个插座插入单片机后,另一个就可以作为扩展插座使用,例如插入DIP封装的EEPROM芯片24C256做I2C通信实验等。

1.2.3 外围功能模块单元

外围功能模块单元共分成A~O15个区域,各部分原理图如图4所示。其中A区为8路LEDs,用于输出显示;B区为标准2×16字符的LCD液晶显示器接口,同时还兼容3310图像LCD接口;C区为8位8段LED数码管显示电路,采用共阴极连接,动态扫描方式点亮;D区是由精密电位器与电源组成的0~5V的可调直流电压源,作为ADC的输入电压源,用于实现A/D转换、直流电压表、模拟温度计等实验;E区为8×8LED点阵显示模块;F区为4×3矩阵键盘;G区为4个独立按键;H区为7路300mA功率驱动,用于驱动小型步进电机、继电器等;I区为系统时钟电路;J区为RC滤波电路用于对PWM输出的平滑;K区使用一个2.048MHz的晶体振荡器,经过CD4060分频提供125Hz~128kHz、占空比为50%的10种频率方波脉冲信号,可作为频率、周期测量实验的输入信号;L区为40引脚窄型扩展座和标准PCB板,用于扩展和插入其他芯片;M区提供了一个无源蜂鸣器;N区为单片机外部复位电路选择;O区为RS232串行接口单元。

图4外围功能模块单元(参见下页)

2 实验板功能设计

根据AVR单片机多功能实验开发板硬件功能模块及AVR单片机自有功能,整个实验开发系统板提供了以下几项功能:

(1)系统的资源与能源。电源供电系统单元、可调直流电压单元和脉冲信号发生器单元为实验提供了必要的条件和手段。电源供电系统为实验板提供了高精度的电源;可调直流电压单元为A/D转换提供了输入信号;脉冲信号发生器单元则为计数、频率测量等提供信号源。

(2)基本的输入输出设备或接口。主要为基本实验提供必要的外围设备:按键单元、4×3键盘单元、无源蜂鸣器单元、8×8LED点阵式显示单元、8位LED数码管显示单元、2×16字符型液晶显示单元、LED显示单元、功率驱动单元以及RS232等。

(3)系统的扩展功能。单片机引脚的全面开放,采用2个40引脚的锁紧插座。扩展插座、系统时钟选择、外部复位选择等使得实验板可以非常灵活地扩展、组合,同时也适合多种类型及不同引脚数的单片机使用。由于I2C总线、SPI总线通信接口均是串行通信方式,使用连线较少,因此在做这些实验时,只要将相关的外围芯片插入扩展插座中,再使用几根连线连接电源、地和接口引脚就可以了。

本实验板对于AVR单片机所有的基本功能和单元实验,如I/O使用、ADC、时钟、中断、PWM、键盘、按键、LED、LED数码管、LCD显示、测频率、测周期、功率驱动、蜂鸣器、RS232等,都可以在板上实现。如果将这些单元有机组合,就可以实现一些实际电子产品的设计,如带音乐报时的时钟、秒表、频率计、速度表、电话拨号器、电压表、LED广告屏等。

3 结语

AVR单片机多功能实验开发板不仅可以增加更多的设计性实验内容,提高实验技术水平,而且可以加强硬件动手部分的训练,启发使用者的创造性、发散性思维,更能针对个体的兴趣,选择不同类型和深度的设计性、综合性实验内容,使不同程度的学习者在实验中既掌握AVR单片机课程的基础,又提高了综合设计能力和工程应用水平。另外,本多功能实验板还可以作为一些单片机产品设计的开发板供研发人员使用。

参考文献

[1]倪志莲.单片机课程的实验教学改革[J].实验室研究与探索,2006,25(7):843-844.

[2]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007.

[3]郝莹,孙宏军,王辉.基于PIC单片机设计型实验装置的研制[J].实验室研究与探索,2006,25(8):937-938.

[4]王勇.基于AVR单片机的一体化GPS接收机设计[J].自动化仪表,2008,29(2):65-67.

[5]廖春蓝.AVR单片机在测控实验系统中的应用研究[J].北京电子科技学院学报,2007,15(2):62-64.

[6]陈德明,孙光民,王强,等.基于AVR8位单片机的短距离立体声数字音频无线传输系统开发[J].电子技术应用,2007(9):123-125.

篇4:51单片机实验报告

【关键词】单片机 项目教学法 智能小车 教学改革

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)08C-0161-02

在电子技术快速发展的时代,单片机技术在电子行业中扮演着极其重要的的角色,掌握了单片机技术,就掌握了电子技术的核心,因此,各大中专院校的电气工程、机电工程、自动化专业及计算机专业等电类专业都把单片机作为一门重要专业课程来抓。然而,在现实教学过程中,单片机实验课程教学却存在着诸多的不足。很多学生反映该课程不好学,知识难记,程序难写,讲课内容不好理解等。教师也反映学生刚开始认真学,后来越来越不认真,最后布置的练习和作业都不做,学习态度不好等,由此产生教师的教和学生的学达不到平衡,教学效果不理想,教学过程偏离教学计划,达不到教学的预期培养目标。本文针对上述所存在的问题,以制作“智能小车”为整门课程的大项目,采用项目教学法将课程的各章节融入项目制作过程中,通过做项目,让学生在制作的过程中理解并掌握课程的知识点。

一、单片机实验教学的现状与不足

职业院校不同于普通高等院校,职业院校的学生更是异于普通高等院校的学生。普通高等院校的学生自学能力强,自觉性高,相反,职业院校的学生则大多自我认识不高,自学能力较差,自觉性不高,比较好动。如果在职业院校教学中采用传统的教学方法,教师在黑板前单纯讲课,或通过多媒体单纯授课,学生在下面听,即便教师讲得十分生动、精细,也许台下的学生也是无心听课,不能真正掌握好单片机技术。

一些教师采用计算机房进行授课,先讲一定的教材内容,然后通过计算机演示和示范程序,让学生按照示范程序进行练习,然后用Proteus软件或单片机系统板进行程序仿真。此种教学方法比上述传统方法好很多,但授课一段时间后却发现,学生基本上是将教师的示范程序照抄一遍,然后下载到Proteus软件或单片机系统板中,仿真成功后,接下来就是拿出手机开始玩游戏,没有继续强化知识的意识或精神。而那些打字慢或搬抄过程中存在错漏的学生,可能准备下课了都没打完字,也可能是因为中途编译错误太多,又找不出错误的地方,最后干脆就放弃,直接玩手机或睡觉。

为了避免上述现象问题的发生,提高教学质量和教学效果,我们应该根据职业院校学生的情况,制定出符合他们特点的教学方法,让他们对课程感兴趣,进而激发他们自主去学习和探索知识。

二、单片机实验教学项目教学法改革

经过多年的教学经验总结,本文对51单片机实验课采用项目教学法进行改革,主要由以下几个环节组成:

(一)兴趣入门。心理学上有一个专业的术语叫做“初次效果”,意思是初次见面的一瞬间就能决定胜败。这是对人说的,其实对教学课程也有同样的效果。如果在第一次给学生上这门单片机实验课时,做好开头,让学生从一开始就对这门课充满兴趣和期待,那么,可以说,这门课程的教学就算成功三分之一了。

对本课程第一次课的教学设计,大部分教师都是简单做自我介绍,提出课程的学习要求,然后就开始打开课本上新课。本文的设计则不同,为了做好“初次效果”,本文的第一次课没有直接上新课,而是跟学生一起看视频、交流和讨论,通过交流与讨论的形式让学生对单片机有一个感性的认识,再通过一定手段使学生对课程学习产生兴趣和欲望,然后才慢慢引入新课。具体内容如下:

1.相互认识。先由教师简单向学生做自我介绍,然后再对全班学生进行点名,认识班里的班干,简单了解班级的一些基本情况。

2.看视频。相比学习文字材料,职业院校的学生对图片、视频,甚至实物更加感兴趣,利用这一特点,教师在上课前准备好搬运机器人、足球机器人、工业生产自动焊接机器人等几个具有代表性的视频材料,通过多媒体播放给学生看,然后再向学生介绍这些智能机器人之所以能完成那么多智能控制功能,都是由我们即将学习的单片机芯片来控制,随即放出单片机芯片的相关图片。运用此种方法,通过播放视频和图片的形式,将全班学生的目光吸引到屏幕上,让学生从感官上对单片机有一个初步的认识。

3.项目实物演示。此环节是第一次课的高潮部分,教师准备好本门课程项目教学的项目实物——智能小车,用一纸箱装好,等到这一环节时将它亮相在学生面前,然后试运行给学生看,甚至让学生亲手操作智能小车,让智能小车动起来,最后现场给学生指出单片机芯片,由此激发学生对本课程学习的兴趣。

4.布置项目任务与讨论。通过以上几个步骤后,学生对单片机已经有一定的兴趣,此时,教师粗略地讲一下智能小车的大致工作原理,然后向学生宣布项目任务—— 制作一辆智能小车。教师将实现的功能和要求罗列出来,最后与学生一起讨论如何去完成这个项目,包括硬件部分如何制作,需要用什么电路模块,最后如何去编写程序等,拟出一个大体的方案,调动学生的积极性,激发学生求知欲。

5.材料准备。做完项目布置和讨论环节后,最后一环节就是材料准备的布置,要求学生列出自己项目所需要的材料,然后用一周的时间去准备,材料可以自己制作,也可以购买现成模块,这样,学生有事可做后,也不会再觉得课程枯燥无味,相应地学习兴趣也就提高了。

(二)硬件制作。通过前期学生的材料准备后,接下来就进入硬件的制作过程。

教师将学生带到实验室,通过分小组的形式进行硬件的制作指导。首先对全班学生提出总的制作要求和注意事项,然后将全班学生分成若干个小组,再召集各组的组长进行硬件的制作指导。比如,教师亲自动手示范指导组长们如何装配智能小车的底盘,如何安装驱动电机和轮子,如何安装电路板及相应控制电路模块等,然后再由各组长对本组的组员进行指导和装配示范,组员们按照组长的装配方法进行装配。同时,教师巡视课堂,了解每个组的制作情况和进度,对有问题或装不对的学生进行指导和提醒,最终完成项目的硬件装配与制作过程。

(三)简单驱动。项目的硬件制作完成以后,教师组织学生带上课本和智能小车进入单片机仿真实验室(或计算机机房),对硬件的相应部件进行功能测试以及程序的编写和仿真,完成一些简单功能的驱动任务。

首先驱动智能小车的运动部件,即驱动电机带动轮子转动。在驱动之前,先给学生设一个疑问:如何让轮子转进来?引发学生对本任务的思考。然后对硬件的电路及原理进行简单的讲解,引出单片机的IO口控制知识,并提示学生翻到课本的相应页码,融合课本教材相应内容进行简单的讲解。接着,教师写示范程序并下载到小车单片机中,驱动车轮转起来,再让学生按此方法进行程序的编写和驱动。

学生驱动得电机让小车跑起来后,学习兴趣肯定大大提高,场面也会很热闹。此时,教师又提出探索性任务,提示学生如何驱动LED指示灯亮起来,又如何实现灯闪铄,以及蜂鸣器的驱动等。通过完成这类小任务,学生去探索和驱动其他的一些电路,达到知识拓展的目的,同时也完成单片机IO口的简单驱动任务。

(四)功能完善。通过以上的方法驱动简单电路后,学生对单片机IO口的编程和控制已经有了一定的认识和掌握,接下来就可以引导学生一步一步地将一些功能电路模块综合起来驱动,实现从简单到复杂的智能控制过程。

比如,引导学生运用红外光电传感器来识别路面的黑线,再控制小车的运动情况,如当小车没检测到黑线时,小车一直向前行进;当检测到黑线时,小车停止前进。学生完成此任务后,教师又提出深一点要求,如当小车没检测到黑线时,小车一直向前行进;当检测到黑线时,小车转弯或调头行进等,实现综合性控制功能。

当学生掌握这些较简单的综合控制功能的编程和控制方法后,再往知识较深、程序较难、单片机功能更强的内容去学,比如超声波避障功能、液晶显示功能、定时器使用等,引导学生一步一步地、从简单到复杂地学习,最终完成智能小车所有功能的实现,从而完成本课程主要内容的授课与学习。

(五)考核评比。本课程的最后几次课是项目完成情况的考核评比与总结。当学生把课程项目的所有功能都完成后,安排一个时间对全班学生制作的项目进行演示和考核评比。在教室的讲台做一个演示台,让每个学生将自己的项目作品拿到演示台上,在全班同学面前展示和演示自己做的项目作品,看看所能实现的功能与开学初的计划是否一致,再简单讲解作品的工作原理和制作方法,最后,教师再对作品的结果进行点评和总结。

通过演示作品和教师的点评总结,学生不但收获了学习成功的喜悦,也认识了自己的一些缺陷和不足,进而努力去弥补和更正。同时,教师也能从这个环节中了解到学生学习的掌握情况和教学上存在的不足,进而对下一节课程进行完善和改进。

三、实验教学改革效果分析

51单片机实验课项目教学法的教学改革,打破了传统理论教学和单纯Proteus软件或单片机系统板仿真教学的缺陷,将整门课程改成项目作品的制作,再将课程内容知识融入项目的制作过程中,让学生既学会了课本知识,又掌握了知识的实际运用,达到理论与实践相结合的教学目的。

通过多年的尝试发现,改革后的单片机实验教学,教师的教学过程轻松了很多,对学生的指导时间多了很多,学生学习的兴趣和积极性更是大幅度地提高,课上睡觉或玩手机的学生大幅度地减少,更多学生将时间和精力投入到了项目的制作过程中,碰到问题时,学生也懂得借助网络进行相关资料的查找,学会了知识的探索,最后在毕业设计中,单片机项目的论文尤其是单片机毕业作品都明显多了很多。

综上,以制作“智能小车”为整门课程的大项目,采用项目教学法将课程的各章节融入项目制作过程中,通过学生亲自动手做项目的形式,培养学生对本课程的学习兴趣,提高学生的学习的积极性和主动性,引导学生将理论知识应用到实践中,增强学生的技能水平和实际应用能力,达到理论与实践相结合的目的。经过多年的教学实践证明,改革后的项目教学法不但提高了教育教学质量和教学效果,而且学生学习的兴趣了大为提高,实际动手能力也增强了。

【参考文献】

[1]赵永熹,黄云峰.基于项目驱动法的单片机课程体系建设[J].中国电力教育,2013(4)

[2]谢宏霖.基于“项目驱动法”的单片机类课程教学探索[J].电脑知识与技术,2012(30)

[3]杜志强.机械类专业“单片机原理及应用”课程教学探索与实践[J].理工高教研究,2010(3)

【作者简介】梁 飘(1984— ),男,壮族,广西靖西人,广西大学在读研究生,广西理工职业技术学院助理讲师,专职教师兼实验员。

篇5:“51”单片机实习报告

学院:电气与控制工程学院

专业:

班 :

班 级 :

姓名:

学号:

目录 一. 前言 二. 实训的目的及要求 三.实训原理

四.硬件的安装与调试

五.软件部分 六.系统测试 七.元器件清单 八.心得体会 九.参考文献

前言

精简开发板是一款以 8051 系列单片机为核心的精简开发板。8051 系列单片机是一款应用非常广泛的 8 位微处理芯片,由于其功能齐全,产品技术成熟,资料广泛,又是学习其他很多单片机的基础。

单片机具有成本低、体积小、可靠性高、具有高附加值、通过更改软件就可以改变控制对象等优点,单片机越来越成为电子工程师设计产品时的首选器件之一。因此拥有一块单片机开发板对单片机学习具有着极其重要的意义。

本课题设计的单片机开发板,具有一般开发板通用结构,并基于硬件进行相关软件设计。利用程序开发语言开发程序并实现 ISP 在线下载到单片机,无需配置单独的下载器。单片机使用 ISP 在线下载程序,加快了程序设计者调试的进度,使设计者所设计的程序尽快得到验证。通过对开发板上的模块进行实验,可以提高针对不同硬件进行编程的能力,同时通过实验现象对所用的硬件也有了更深一步的认识,因此该开发板具有一定的实用价值和现实意义。

实训的目的及要求 1.了解“51”精简开发板的工作原理及其结构; 2.了解复杂电子产品生产制造的全过程; 3.熟练掌握电子元器件的焊接方法与技巧,训练动手能力,培养工程实践观念。

实训原理 1.主要性能指标

输入电压:DC 4.5V~5V;典型值:5V

2.功能分区与模块简介

[1] 单片机 单片机也称单片微控制器(Single Chip Microcontroller),它集成度高、运算快、体积小、运行可靠、价格低廉,在过程控制、数据采集、机电一体化、智能仪器仪表、家用电器以及网络技术等方面得到广泛应用。

[2] 电源部分 电源部分由开关、稳压集成、电源指示灯几部分组成,本款 51 板输入电压4.5V~5V,典型输入电压为 5V,也可通过板上的稳压集成芯片 78M05 给单片机提供 5V 电压,可使单片机正常工作。

[3] 串行下载部分 这一部分由串口、下载缓冲器 MAX232 组成,通过 MAX232 芯片把 TTL 电平转换成 RS-232 电平格式,可以用于单片机与微机通信。再通过 DB9 接口由一条串口线与电脑串口相连,可以利用程序下载软件(下载方法书后将做介绍)向单片机下载程序,也可通过一些串口调试软件与电脑进行串口通信。但是,只有STC89S 系列单片机支持串口下载,而 AT89S 系列单片机不支持串口下载。

[4] ISP 下载 ISP 下载是 AT89S 系列单片机的下载方式,不能用于 STC89S 系列单片机,它由一条并口线与电脑并口相连,通过 Easy 下载软件向单片机下载程序,但下载器需另行购买。

[5] 输入/输出接口 51 板将 32 个 I/O 口全部引出:其中 P0 口、P1 口、P2 口、P3 口各有 8 个I/O 口用排针引出,排针两端为与单片机共地的 5V 电源,方便进行外接扩展,而单片机的 EA、ALE、PSEN 端口也在靠近排阻下方引出,以方便日后进行一些高级扩展。P1 口接有 8 个发光 LED,以供测试之用,P0 口外接 10K 的上拉电阻。这些 I/O 口即可做输出,又可做输入口,51 单片机内部可自行识别,不必要设置。

[6] 外部复位 复位是对单片机硬件的初始化,51 单片机具有外部复位功能,高电平有效,即在单片机 9 脚加上高电平单片机就被复位。此产品的复位电路由按键 S2,电 容 C3 和电阻 R9 组成。

系统原理图

硬件的安装与调试 1.拿到 51 单片机套件后,首先应按照附录的元器件清单表逐一检查元件数目和规格,确保产品完整。

2.详细阅读硬件说明部分,并将元件对号入座,确保一次性焊接成功。

3.先对较矮小的元件进行焊接,比如电阻、稳压集成,再对高一些的元件进行焊接,比如芯片座、排阻等,依此类推,最后焊接高大的元件,比如串口、ISP下载口等。焊接时应注意一些元件的正负极和方向。

11223344D DC CB BA AP1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN29ALE30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40STC89C52U11234567891110D Connector 9J1DS2DS3DS4DS5DS6DS7DS8DS9DS18.2KR9SW-PBS21 2crystal oscillatorY130pFC230pFC1104C410uFC3123P5Vcc16V+2V-6TO27RI28GND15C1+1C1_3C2+4C2-5TI210RO29MAX232 U2104C6104C5104C7470R1POWER470R2470R3470R4470R5470R6470R7470R8470R10Vin VoutGND78M05VR1Vcc1 23 45 67 89 10JP1RSTP1.6 P1.5P1.7VccRSTVCCP3.0 RXDP3.1 TXDP3.1 TXDP3.0 RXDVCCXTAL1XTAL2XTAL1XTAL21 21 32S12 3Vcc123P6EAPSENALERSTVccEA12345678910P012345678910P112345678910P212345678910P312P7PSENALEVCC VCC VCC VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.0 RXDP3.1 TXDP3.2P3.3P3.4P3.5P3.6P3.7电源部分复位电路 ISP 下载接口串行接口电路 晶振电路 I/O 扩展接口51 单片机系统及仿真电路

4.由于此套件标准配置不包含稳压集成 VR1(78M05),所以焊接完成后要用导线将 VR1 的 1、3 焊盘短接,芯片才能正常供电,此时只能使用 4.5-5V 的直流稳压电源供电;如果将自购 VR1(78M05)焊接在板子上,那么就可以使用 7.2V-15V 的宽电源供电。

5.焊接并检查无误后先不要急于插入芯片,应该先对芯片供电电压进行测量。插上电源,用万用表检查单片机的 20、40 脚及 MAX232 的 15、16 脚间电压,看是否为+5V(±0.5V),然后用跳线帽接通 P6 的中间一针和上面一针,使单片机 EA 端(31 脚)与电源正极相接,之后再插上芯片,进行系统测试。

软件部分 系统测试 1.串口测试 接上单片机电源和串口线,打开电源开关,电源指示灯 DS0 亮,使用 STC89C系列单片机,其本身自带了一个测试程序,上电之后 DS1-DS7 便会两个两个的闪烁。或者自己下载一个程序,如果下载成功,说明串口正常,如不成功,请仔细检查焊点及串口线。

2.I/O 口测试 下载程序一,将跳线 P5 接 ON 一端,如发现上排 LED 逐个亮或有规律的亮,说明 P1 检测正常; 根据程序一的特点,仔细分析程序二各语句功能,并猜测其结果,接着将程序二下载到单片机上,仍将跳线 P5 接 ON 一端,自己观察小灯跳变规律,看与自己分析结果是否一致。

元器件清单

元件

器件标号

元件规格

电容 C1 30pF(瓷片)

电容 C2 30pF(瓷片)

电解电容 C3 10uF(电解)

电容 C4 104(瓷片)

电容 C5 104(瓷片)

电容 C6 104(瓷片)

电容 C7 104(瓷片)

LED DS1-DS9 发光二极管(红色,¢3)

10×1 排针 P0-P3 I/O 端口 3×1 排针 2×1 排针 P5、P6 P7 LED/EA 选通开关 ALE/PSEN 功能引脚 电阻 R1-R8、R10 470Ω/330Ω(金属膜 1/4W)

电阻 R9 8.2kΩ(金属膜 1/4W)针排阻 RES 103Ω 双路自锁开关 S1 8×8 自锁开关 复位按键 S2 6×6 复位开关 8051 系列单片机 U1 STC89C52(DIP40 封装)

串口电平转换芯片 U2 MAX232(DIP16 封装)

接插件 DB9 串口(母头)

晶振 Y1 11.0592MHz

其他配件

器件标号

元件规格

DIP40芯片座 标准 DIP40 DIP16芯片座

标准 DIP16

串口下载线 标准 1.5m 4.5V 电池盒 说明书一册 标准 标准

选配元件

器件标号

元件规格

5×2 排针 ISP ISP 下载口 稳压芯片

VR1 78M05(贴片)

心得体会

我们认真学习和熟练掌握了电子器件的理论知识和使用方法,特别留意焊接过程中的焊锡使用的技术要点,以及对电路正确的验证(以防短路,烧毁器件)。

焊接完毕之后,编写程序测试硬件。我们将平时上课学到的汇编语言,根据电子器件的使用方法和特性,编写相适应的汇编程序调试。由于调试是一个比较漫长需要耐心的工作,我们从中学到许多测试经验和编程技巧,培养了坚持不懈的耐力。

通过对单片机实验开发板的硬件认识,编写测试程序对单片机开发板系统进行了完整的硬件测试,实验的测试现象达到预期要求。最终证实了此次焊接相当成功,表明这次生产实习非常圆满成功!

虽然这次的实习算起来在实验室的时间只有几天,不过因为我们都有自己的实验板,硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了。

通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

篇6:c51单片机实习报告

短距离无线传输具有抗干扰性能强、可靠性高、安全性好、受地理条件限制少、安装灵活等优点,在许多领域有着广泛的应用前景。低功耗、微型化是用户对当前无线通信产品尤其是便携产品的实际需求,短距离无线通信逐渐引起广泛关注。常见的短距离无线通信有基于802.11的无线局域网WLAN、蓝牙(blueTooth)、HomeRF及欧洲的HiperLAN(高性能无线局域网),但其硬件设计、接口方式、通信协议及软件堆栈复杂,需专门的开发系统,开发成本高、周期长,最终产品成本也高。因此这些技术在嵌入式系统中并未得到广泛应用。普通RF产品不存在这些问题,且短距离无线数据传输技术成熟,功能简单、携带方便,使其在嵌入式短程无线产品中得到了广泛应用。

PTR2000引脚简介及设计

2.1 PTR2000器件引脚功能

PTR2000是基于nRF401器件的无线数据传输模块,采用低发射频率、高灵敏度设计。该器件使用433 MHz频段,是真正的单片UHF无线收发一体器件,其工作模式包括工作频道的设置和发送、接收、待机状态,由TXEN、CS、PWM 3个引脚共同决定,其工作模式设置如表1所示。

2.2 PrR2000模块设计

该器件外围的主要电路有以下两个:

(1)与单片机的连接电路单片机AT89C52的RXD和TXD引脚与PTR2000模块的DO和DI引脚直接相连。PTR2000的模式控制引脚与单片机的控制引脚相连。

(2)与PC机的连接电路采用MAX202器件对PTR2000模块和计算机串口进行RS-232和TTL电平转换,将PTR2000与MAX202的输入和输出信号连接,转换后的信号与计算机的串口连接。

硬件设计

在无法使用有线传输的场合,采用无线数据传输模块和单片机相结合进行数据传输是较合理的方案。PTR2000利用串口进行数据传输,而单片机和PC机均带有串口,因此,可利用PTR2000作为单片机和PC机之间数据传输的无线接口,其硬件结构框图如图1所示。

该采集系统主要以AT89C52单片机为控制处理核心。由它完成对数据的采集处理以及控制数据的无线传输。AT89C52单片机具有快速8051内核、8 KB Flash E2PROM、256字节RAM。为实现无线数据传输,采用无限收发一体数据传送MODEM模块PTR2000器件,该器件内部集成高频接收、PLL合成、PSK调制/解调、参量放大、功率放大、频道切换等功能,完全符合无线数据通信的硬件要求。为降低成本,在最小硬件设计的基础上,利用C51高级C语言编程,系统的功能尽可能用软件程序实现。

3.1 单片机的时钟电路和复位电路设计

单片机时钟电路设计中,选择晶振频率11.059 2 MHz,约定PC机和单片机的通信速率为9 600 b/s,并选择相应电容与单片机的时钟引脚相连构成时钟回路。在复位电路设计中,采用复位引脚和相应的电容、电阻构成复位电路。单片机与PTR2000接口原理电路如图2所示。

3.2 单片机与PTR2000接口电路的设计

在图2中,AT89C52单片机主要完成数据的采集和处理,向PTR2000模块发送数据,并接收由PC机通过PTR2000传送的数据。和单片机相连的PTR2000模块主要将单片机的待传数据调制成射频信号,再发送到PC机端的PTR2000模块,同时接收PC机端的PTR2000模块传送的射频信号,并调制成单片机可识别的TTL信号送至单片机。单片机的RXD和TXD引脚分别和PTR2000的DO和DI引脚连接,实现串行数据传输;决定PTR2000模块工作模式的TXEN、CS、PWR 3个引脚分别和单片机I/O控制口的P2.0~P2.2相连,PTR2000工作时,由单片机中的运行控制程序实时控制其工作模式。

3.3 PC机与PTR2000接口电路的设计

该接口电路设计首先需进行电平转换。PC机的串口支持RS-232标准,而PTR2000模块支持TTL电平,选择MAX232器件进行两者间的电平转换,接口电路如图3所示。PTR2000模块进行串行输入、输出,引脚DI、DO通过电平转换器件和PC机串口相连;PTR2000的低功耗控制引脚。PWR接高电平VCC,即PTR2000固定工作在正常工作状态;频道选择引脚CS接GND低电平,即采用固定通信频道1,固定工作在433.92 MHz;PC机串口的RTS信号控制TXEN引脚,以决定PTR2000模块何时为接收和发射状态。PC机和串口的传输速率设定为9 600 b/s,和单片机保持一致。软件设计

无线通信系统的软件设计包括单片机端和PC机端两部分,两部分软件相互配合,设置各自的PTR2000模块的工作状态。

4.1 PTR2000模块程序设计

单片机和PC机端软件配合设置PTR2000的状态(发射或接收),选择固定的通信频道1(CS=0),并让PTR2000模块一直处于正常工作状态(PWM=1)。无线通信实现过程如下:

(1)发送在发送数据之前,应将PTR2000模块置于发射模式,即TXEN=1。然后等待至少5 ms后(接收到发射的切换时间)才可发射数据。发送结束后,应将模块置于接收状态,即TXEN=0。

(2)接收应将PTR2000置于接收模式,即TXEN=0。单片机不发送的绝大部分时间都处于接收状态。当单片机端发送时,PC机端应为接收;当PC机端发送时,单片机端应为接收。

4.2 串行无线通信协议设计

无线通信中,由于外部环境的干扰,通常误码率较高,因此通信协议的设计对保证通信的可靠性十分重要。协议的设计主要是帧结构的设计,在该无线通信系统中,存在指令帧和数据帧。数据帧的内容包括起始字节、数据长度字节、数据字节、结束字节和校验和字节,如表2所示。

起始字节定义为“$”字符,其数值为0x24;结束字节定义为“*”字符,其数值为0x2A。

采用校验和的方法进行帧的校验,将所有字节相加,然后将结果截短到所需的位长。发送端对待发送的数据进行校验和计算,将校验和值放在数据后一起发送;在接收端,对接收到的数据进行校验和计算,然后与收到的校验和字节比较,进行误码判断。

对于单片机,指令帧主要有3种:PC机发送给单片机的请求发送指令、错误/超时重发指令、单片机发给PC机的发送完毕指令。在该系统设计中指令帧采用数据帧的格式,将其中的。数据字节固定为一个字节,根据定义的字节判断数据状态。

4.3 程序流程

单片机开始需将无线数据传输模块PTR2000设置处于接收状态,通过串口中断识别由PC机通过无线信道传输来的指令,根据接收指令的内容采集数据并启动发送。发送前需将PTR2000模块设置为发射状态,且等待5 ms才可发送,发送完毕后,向PC机端发送“发送结束指令”,并将PTR2000模块重设为接收状态。图4为系统软件设计流程图。结束语

上一篇:大学六级考试高频出现的短语和搭配下一篇:评审管理制度