最新51开发板手册1汇总.docx

上传人:b****7 文档编号:10724506 上传时间:2023-02-22 格式:DOCX 页数:27 大小:166.41KB
下载 相关 举报
最新51开发板手册1汇总.docx_第1页
第1页 / 共27页
最新51开发板手册1汇总.docx_第2页
第2页 / 共27页
最新51开发板手册1汇总.docx_第3页
第3页 / 共27页
最新51开发板手册1汇总.docx_第4页
第4页 / 共27页
最新51开发板手册1汇总.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

最新51开发板手册1汇总.docx

《最新51开发板手册1汇总.docx》由会员分享,可在线阅读,更多相关《最新51开发板手册1汇总.docx(27页珍藏版)》请在冰豆网上搜索。

最新51开发板手册1汇总.docx

最新51开发板手册1汇总

 

51开发板手册1

AT89S52单片机开发板实验手册

概述:

AT89S52多功能单片机开发板

特点:

1.板载资源丰富,常见的控制对象基本已经包括.

2.采用在系统方式(ISP)编程,通过下载电路下载程序,不用烧录器即可下载程序,调试方便.

3.可由直流稳压电源或通过USB数据线供电.扩展了若干个电源接口,板上电源可以外接给其

他电路板使用.

4.所有板上资源均用排针引出.

5.红外发射/接收,PS/2接口接入键盘,时钟芯片,数字温度计测温等模块的程序编成了子

函数,已经模块化,工程应用需要时可以直接调用.

6. 提供程序,常用软件(编译软件,烧录软件,字模提取,串口上位机软件,C语言所有库函数

等),视频教程(主要为计算机屏幕操作的录像),开发板用户手册,原理图,器件Datasheet

等.配套提供的所有程序均可直接运行,注释已经尽量详细,能满足从单片机入门到进阶的

需要.

7.基于以上各模块,提供了综合应用的实例,即:

可通过PC机键盘或通过红外发射进行控制

的电子万年历等.(具体见实验介绍).

 

本开发板含有如下功能模块:

01. 流水灯       (控制8个超亮LED闪烁)

02. 方波,PWM信号输出

03. 按键中断

04. 四位数码管动态显示

05. 计数脉冲信号并显示

06. 报警与音乐演奏

07. 4×4键盘扩展

08. 看门狗+上电自动复位+手动复位+电源监控

09. 128*64点阵式液晶显示 (可显示画面和文字等)

10. RS232串行通讯     (单片机通过串口与PC机进行通讯,板上数码管和上位机软

件均可显示通讯的数据,提供上位机软件)

11. 红外信号发射与接收  (单片机控制红外二极管发射红外信号并接收信号,也可以通

过遥控器发射,单片机控制接收信号并处理)

12. 温度测量

13. I2C接口的E2PROM   (AT24C08,8K容量,可用于断电时存储数据等场合,单片机软件

模拟I2C总线协议与之通讯)

14. 时钟芯片       (扩展时钟芯片以获取年/月/日,当前时间,星期等信息)

15. PS2接口        (可外接PC机的键盘做系统的输入)

16. 可通过键盘/红外遥控控制的电子万年历  (液晶屏显示年/月/日,当前时间,星期,闹

铃定闹的时间,倒计时状态等;可以修改闹铃时间和倒计时的起始时间;可显示环境温度;可通过PS/2接口接入键盘或通过红外发射来校正时间,开/关闹铃等.)

实验注意事项:

1.通电时,最好不要用手拿着电路板,防止短路;接线时必须断开电源(开关为J2).

2.焊接JTAG座之前,需要将其2脚的针拔出,可确保调试器的VCC不与板子的VCC接到一起。

3.要确保程序正常下载,需要做到:

1>单片机P1.5,P1.6,P1.7三个引脚不能接到功能模块;

2>单片机复位端J13的2脚,不能接到上电自动复位端(即J13的1脚),也不能接到看门狗的复位输出(即J13的3脚)。

3>确保USB调试器的驱动安装正确,在确保第1>点和第2>点的情况下,调试器还是不能下载程序,则可尝试更新调试器的驱动,再尝试下载。

4.程序下载完成后,将J13的1脚和2脚通过短路帽短接,再按下按键S17手动复位单片机:

程序下载完成后往往需要复位单片机,单片机才能正常工作。

5.数码管和液晶屏不能同时接到开发板,否则二者都不能正常使用.

6.程序以相应目录下的为准,本手册的部分代码只作为功能介绍之用,不能保证是最新版本。

编程软件和烧录软件等的使用见视频教程。

实验目录

 

(Ⅰ)基本实验

1. 流水灯-------------------------------------------------------------------------------------------4

2. 方波-PWM信号输出---------------------------------------------------------------------------6

3. 按键中断----------------------------------------------------------------------------------------8

4. 四位数码管动态显示-------------------------------------------------------------------------10

5. 计数脉冲信号并显示-------------------------------------------------------------------------12

6. 报警与音乐演奏-------------------------------------------------------------------------------13

7. 4×4键盘扩展----------------------------------------------------------------------------------13

8. 看门狗+上电自动复位+手动复位+电源监控----------------------------------------------14

9. 128*64点阵式液晶显示----------------------------------------------------------------------14

10. RS232串行通讯-------------------------------------------------------------------------------15

11. 红外信号发射与接收-------------------------------------------------------------------------16

12. 温度测量---------------------------------------------------------------------------------------16

13. I2C接口的E2PROM--------------------------------------------------------------------------17

14. 时钟芯片---------------------------------------------------------------------------------------18

15. PS2接口---------------------------------------------------------------------------------------18

 

(Ⅱ)综合实验

16.可调式电子万年历-----------------------------------------------------------------------------19

 

(Ⅰ)基本实验

1.流水灯

实验内容:

利用单片机I/O口输出高低变化的电平,控制流水灯按程序设置的功能闪烁.

接线说明

J6接入单片机P0口.

注意:

单片机端口有两种操作方式,一种是写端口,如P0=0xff;另一种是读端口,如if(P0==0xff),即读I/O口P0的状态,值为0xff时满足条件.

程序清单:

 

/***************************************************************

函数功能:

控制8个流水灯闪烁

接线说明:

流水灯接线柱接到P0口

学习内容:

单片机IO口(输入/输出)的应用

****************************************************************/

#include

delay(intk);//延时函数预定义

main()

{

inti;

intdata1=0x7f;

intdata2=0xfe;

while

(1)

{

intabb=0xfe;//变量abb赋初值

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

{

P0=abb;

delay(1000);//延时1秒

abb=abb<<1;//8个灯依次点亮

}

P0=0xff;//8个灯均灭

delay(1000);

abb=0x7f;

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

{

P0=abb;

delay(1000);

abb=abb>>1;//8个灯换个方向依次点亮

}

P0=0xff;//8个灯均灭

delay(1000);

P0=0x00;//8个灯均灭

delay(1000);

P0=0xff;//8个灯均灭

delay(1000);

}

}

delay(intk)//延时函数,大致延时K毫秒

{

intd,n;

for(d=0;d

{

for(n=0;n<125;n++){;}//由经验值,12M晶振时大概的延时时间(延时1ms)

}

}

2.方波输出

<1>.利用板上NE555组成振荡器产生方波.

占空比及周期可以通过相关电阻,电容的数值计算得出.(线路已经接好,上电后L2即开始

闪烁)

<2>.通过单片机定时器产生方波

通过设定定时器的定时值,计数值满时溢出产生中断,在中断服务程序中使相应管脚输出电平反相,从而产生方波信号.

接线说明:

单片机P1.2接到流水灯上(J6)的任意一个

 

程序清单:

/***********************************************************************

函数功能:

利用内部定时器输出方波控制流水灯

接线说明:

P1.2接到流水灯上(J6)的任意一个

学习内容:

单片机内部定时器/计数器的应用

编程思想:

单片机内部定时器最大定时值不超过一秒,可以用累加的方式增加定时时间

***********************************************************************/

#include

inttime=0;

sbitP1_2=P1^2;//定义控制脚

voidtimeout1()interrupt1using2//定时器0的中断服务程序

{

if(++time==100)//延时100*10ms(即1秒)时输出反向

{

P1_2=~P1_2;

time=0;

}

TH0=(65536-10000)/256;//重装数据,延时10ms

TL0=(65536-10000)%256;

TR0=1;

}

main()

{

TMOD=TMOD&0xf0|0x01;//定时器0工作在方式1

EA=1;

ET0=1;

TH0=(65536-10000)/256;//延时10ms

TL0=(65536-10000)%256;

TR0=1;

while

(1){;}

}

<3>.单片机输出PWM波形(可用示波器观察相应引脚上的输出信号)

输出PWM信号的原理与产生方波大致一样.设定一个数组,存入不同的延时值,定时器装入初值,溢出后产生中断,在中断服务取出数组中的定时值赋给定时器的数据寄存器,从而产生PWM波形.高低电平的维持时间有数组的值决定.

接线说明:

单片机I/O口P1.0接到流水灯上的任意一个.

 

程序清单:

/*******************************************************************

函数功能:

利用内部定时器输出PWM信号控制流水灯

接线说明:

P1.0接到流水灯上的任意一个

学习内容:

单片机内部定时器/计数器的应用

编程思想:

输出低电平1000微秒,高电平15000微秒(12M的晶振时),

可应用于电力电子技术中升压斩波电路等做IGBT的触发信号等.

*******************************************************************/

#include

sbitP1_0=P1^0;//定义变量P1_0代表I/O口P1口的0脚

biti=0;

inttab[2]={1000,15000};

voidtimeserver()interrupt3using3//定时器1中断服务程序

{

P1_0=~P1_0;//输出取反

i=~i;

TH1=(65536-tab[i])/256;

TL1=(65536-tab[i])%256;

TR1=1;

}

 

main()

{

P1_0=0;

TMOD=TMOD&0x0f|0x10;//不改变定时器0的工作状态,定时器1工作于方式1

TH1=(65536-tab[i])/256;//定时器存入初值

TL1=(65536-tab[i])%256;

EA=1;//CPU开中断

TR1=1;//定时器1开始工作

while

(1){;}//等待定时器中断

}

 

3.按键中断

通过设定单片机中断的形式,如下降沿产生中断或低电平产生中断.按键输入低电平到相

应中断输入管脚,单片机识别出中断信号,如果CPU和相应外部中断使能有效(即EA---CPU中断使能位,EX0,EX1---外部中断使能位),则进入中断服务程序.

接线说明:

中断按键的线路已经连接好,不用另外接线.数码管用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON4分别接到P2.7……P2.4)

 

程序清单:

/****************************************************************

函数功能:

利用内部中断控制数码管显示

接线说明:

数码管用跳线冒接入

学习内容:

单片机中断(外部)的应用

编程思想:

单片机识别出中断0或中断1就转向中断服务程序

*****************************************************************/

#include

bitflag1=0,flag2=0;

voidservice_int1()interrupt0//外部中断0的中断服务程序,0为中断源序号,2为//使用的寄存器(可更改)

{

flag1=1;//允许数码管显示数据

}

voidservice_int2()interrupt2//外部中断1的中断服务程序

{

flag2=1;//允许数码管显示数据

}

voiddelay()//延时程序

{

intj;

for(j=32400;j>0;j--){;}

}

voidmain()

{

EX0=1;//开外部中断

EX1=1;

EA=1;//开CPU中断

P0=0x00;

P2=0xff;

IP=0x04;//设置中断优先级,外部中断0的级别设为最高,外部中断1和其他中断同级

//不设优先级则按单片机硬件决定

while

(1)

{

P0=0x00;

P2=0xff;

if(flag1==1)

{

P0=0xd5;//显示3

P2=0x00;

flag1=0;

delay();

}

if(flag2==1)

{

P0=0xdb;//显示6

P2=0x00;

flag2=0;//清除显示使能

delay();

}

}

}

 

4. 四位数码管动态显示

数码管每个显示数字共用数据线(8根线),每个分别有一个使能管脚,显示数据采用隐消的编程方法,即每一位显示一段时间再轮换.

接线说明:

数码管用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON4分别接到P2.7……P2.4).数码管和液晶不能同时接入系统,否则任一部分都不能正常使用.

 

程序清单:

/*************************************************************************

函数功能:

数码管数值动态显示

接线说明:

用跳线冒接入数码管

学习内容:

常用的输出显示器件的编程应用

编程思想:

用隐消的方法实现数码管的动态显示,显示部分整理成库文件,方便以后直接应用

*************************************************************************/

#include

#include//调用封装好的显示库函数

main()

{

intj,k;

k=1286;//显示值,实现数值累加显示

while

(1)

{

for(j=1;j<70;j++)

{

Led(k);//数码显示

}

k+=1;

}

}

 

以下为LED8888.h

charshuju[10]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7};//数码管显示数字0-9

voidled8888_Delay(intj)//延时函数

{

intm;

for(m=0;m

{

inti;

for(i=0;i<300;i++){;}//约1ms

}

}

 

voidLed(intk)

{

if(k>999)

{P2=P2&0x7f;//P2.7输出低电平,选通千位数

P0=shuju[k/1000];//取千位数

led8888_Delay

(2);//延时

P2=P2|0xff;//销隐

}

if(k>99)

{

P2=P2&0xbf;//P2.6输出低电平,选通百位数

P0=shuju[k%1000/100]+0x20;//取出百位数,点亮数码管百位后的那一点

led8888_Delay

(2);//延时

P2=P2|0xff;//销隐

}

if(k>9)

{

P2=P2&0xdf;//P2.5输出低电平,选通十位数

P0=shuju[k%100/10];//取十位数

led8888_Delay

(2);//延时

P2=P2|0xff;//销隐

}

if(k>=0)

{P2=P2&0xef;

P0=shuju[k%10];//取出个位数

led8888_Delay

(2);

P2=P2|0xff;

}

}

 

5. 计数脉冲信号并显示

利用单片机计数器功能,计数外部输入的脉冲信号,计算得出频率值.

接线说明:

FIN接入单片机I/O口P3.5.数码管接入

 

程序清单:

/**********************************************************************

函数功能:

计数外部(555电路)的脉冲

接线说明:

FIN接入单片机I/O口P3.5.

学习内容:

单片机内部定时器/计数器的应用

**********************************************************************/

#include

#include

intcount=0;//显示值赋初值

main()

{

TMOD=0x55;//计数器1工作在方式1

TL1=(65536-5)%256;//设置初值,计数4次后产生定时/计数器中断

TH1=(65536-5)/256;

TR1=1;//启动计数器

EA=1;//开CPU中断,不开中断也行,没有用到计数器中断

ET1=1;

while

(1)

{

count=TL1;//显示当前计数值

Led(count);

}

}

6. 报警与音乐演奏

通过单片机内部定时器,输出频率改变的信号给蜂鸣器电路,并改变节拍即可产生音乐.

接线说明:

NC接到单片机I/O口P1.2

 

7. 4×4键盘扩展

 

原理:

采用矩阵扫描的形式,识别按键,然后转入相应处理,程序参见光盘部分.

接线说明:

接线柱J15接到单片机P1口.(J15的第一个脚对应接P1.0),数码管接入.

 

8. 看门狗+上电自动复位电路+手动复位电路+电源监控

外部看门狗:

采用MAX813L,程序跑飞时可以强制复位,相当于一个定时器,有一个设定的计数值,计数没有溢出之前将其计数值清零,然后重新计数,这个过程即:

”喂狗”,如果在计数溢出之前没有清零,则计数器溢出,从而产生强制复位信号.工业控制干扰大的场合必用看门狗电路防止出现意外事故.

附带功能:

电源检测功能,当电源电压低于门限值时相关引脚电平跳变,可以输入到单片机中断口,使单片机保存数据等.

接线说明:

NF接到P3.2,NG接到P1.4,J13中将看门狗输出与复位脚用短路冒短接起来。

数码管接入.可以试着停止喂狗的语句看数码管显示有何变化.

9. 128*64点阵式液晶显示

所用的液晶型号为FM12864J(20个接口),使能信号E为低电平有效.驱动程序见程序部分。

接线说明:

液晶模块用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON5分别接到P2.7……P2.3).

10. RS232串行通讯

串行通讯可以实现单片机与PC机方便的通讯,51的输入/输出缓冲器共用一个地址,但是两个不同的寄存器,可以分别用于缓存待发射的和要接收的程序,程序参见光盘部分.

通讯波特率的设定:

51单片机通过定时器中的定时值来设定波特率。

接线说明:

开发板上的串口接到PC机串口.RXD接到P3.0,TXD接到P3.1,数码管接入.注意数码管显示的数据为十进制,以十六进制发送11,则数码管显示为17.

 

11. 红外信号发射与接收

红外发射采用红外发射二极管,用软件产生38KHZ(也可为其他频率的)的载波信号,单片机对信号进行调制然后发射出去,所谓载波调制是非常简单的过程,看看下面的程序即可明白;

红外

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

当前位置:首页 > 考试认证 > 交规考试

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

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