最新51开发板手册1汇总Word文档格式.docx
《最新51开发板手册1汇总Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新51开发板手册1汇总Word文档格式.docx(27页珍藏版)》请在冰点文库上搜索。
![最新51开发板手册1汇总Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/5a9460bf-c65e-4ccb-907d-bdefc55e74d1/5a9460bf-c65e-4ccb-907d-bdefc55e74d11.gif)
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
报警与音乐演奏-------------------------------------------------------------------------------13
7.
4×
4键盘扩展----------------------------------------------------------------------------------13
8.
看门狗+上电自动复位+手动复位+电源监控----------------------------------------------14
9.
128*64点阵式液晶显示----------------------------------------------------------------------14
10.
RS232串行通讯-------------------------------------------------------------------------------15
11.
红外信号发射与接收-------------------------------------------------------------------------16
温度测量---------------------------------------------------------------------------------------16
I2C接口的E2PROM--------------------------------------------------------------------------17
时钟芯片---------------------------------------------------------------------------------------18
PS2接口---------------------------------------------------------------------------------------18
(Ⅱ)综合实验
16.可调式电子万年历-----------------------------------------------------------------------------19
1.流水灯
实验内容:
利用单片机I/O口输出高低变化的电平,控制流水灯按程序设置的功能闪烁.
接线说明
J6接入单片机P0口.
注意:
单片机端口有两种操作方式,一种是写端口,如P0=0xff;
另一种是读端口,如if(P0==0xff),即读I/O口P0的状态,值为0xff时满足条件.
程序清单:
/***************************************************************
函数功能:
控制8个流水灯闪烁
接线说明:
流水灯接线柱接到P0口
学习内容:
单片机IO口(输入/输出)的应用
****************************************************************/
#include<
reg52.h>
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个灯均灭
abb=0x7f;
abb=abb>
>
//8个灯换个方向依次点亮
P0=0x00;
//8个灯均灭
}
delay(intk)//延时函数,大致延时K毫秒
intd,n;
for(d=0;
d<
k;
d++)
for(n=0;
n<
125;
n++){;
}//由经验值,12M晶振时大概的延时时间(延时1ms)
2.方波输出
.利用板上NE555组成振荡器产生方波.
占空比及周期可以通过相关电阻,电容的数值计算得出.(线路已经接好,上电后L2即开始
闪烁)
.通过单片机定时器产生方波
通过设定定时器的定时值,计数值满时溢出产生中断,在中断服务程序中使相应管脚输出电平反相,从而产生方波信号.
单片机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;
TMOD=TMOD&
0xf0|0x01;
//定时器0工作在方式1
EA=1;
ET0=1;
//延时10ms
while
(1){;
.单片机输出PWM波形(可用示波器观察相应引脚上的输出信号)
输出PWM信号的原理与产生方波大致一样.设定一个数组,存入不同的延时值,定时器装入初值,溢出后产生中断,在中断服务取出数组中的定时值赋给定时器的数据寄存器,从而产生PWM波形.高低电平的维持时间有数组的值决定.
单片机I/O口P1.0接到流水灯上的任意一个.
/*******************************************************************
利用内部定时器输出PWM信号控制流水灯
P1.0接到流水灯上的任意一个
输出低电平1000微秒,高电平15000微秒(12M的晶振时),
可应用于电力电子技术中升压斩波电路等做IGBT的触发信号等.
*******************************************************************/
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;
{
P1_0=0;
0x0f|0x10;
//不改变定时器0的工作状态,定时器1工作于方式1
//定时器存入初值
//CPU开中断
//定时器1开始工作
}//等待定时器中断
3.按键中断
通过设定单片机中断的形式,如下降沿产生中断或低电平产生中断.按键输入低电平到相
应中断输入管脚,单片机识别出中断信号,如果CPU和相应外部中断使能有效(即EA---CPU中断使能位,EX0,EX1---外部中断使能位),则进入中断服务程序.
中断按键的线路已经连接好,不用另外接线.数码管用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON4分别接到P2.7……P2.4)
/****************************************************************
利用内部中断控制数码管显示
数码管用跳线冒接入
单片机中断(外部)的应用
单片机识别出中断0或中断1就转向中断服务程序
*****************************************************************/
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;
//开CPU中断
P2=0xff;
IP=0x04;
//设置中断优先级,外部中断0的级别设为最高,外部中断1和其他中断同级
//不设优先级则按单片机硬件决定
if(flag1==1)
P0=0xd5;
//显示3
P2=0x00;
flag1=0;
delay();
if(flag2==1)
P0=0xdb;
//显示6
flag2=0;
//清除显示使能
数码管每个显示数字共用数据线(8根线),每个分别有一个使能管脚,显示数据采用隐消的编程方法,即每一位显示一段时间再轮换.
数码管用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON4分别接到P2.7……P2.4).数码管和液晶不能同时接入系统,否则任一部分都不能正常使用.
/*************************************************************************
数码管数值动态显示
用跳线冒接入数码管
常用的输出显示器件的编程应用
用隐消的方法实现数码管的动态显示,显示部分整理成库文件,方便以后直接应用
*************************************************************************/
LED8888.h>
//调用封装好的显示库函数
intj,k;
k=1286;
//显示值,实现数值累加显示
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<
j;
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;
//销隐
99)
P2=P2&
0xbf;
//P2.6输出低电平,选通百位数
P0=shuju[k%1000/100]+0x20;
//取出百位数,点亮数码管百位后的那一点
//销隐
9)
0xdf;
//P2.5输出低电平,选通十位数
P0=shuju[k%100/10];
//取十位数
=0)
0xef;
P0=shuju[k%10];
//取出个位数
利用单片机计数器功能,计数外部输入的脉冲信号,计算得出频率值.
FIN接入单片机I/O口P3.5.数码管接入
/**********************************************************************
计数外部(555电路)的脉冲
FIN接入单片机I/O口P3.5.
**********************************************************************/
intcount=0;
//显示值赋初值
TMOD=0x55;
//计数器1工作在方式1
TL1=(65536-5)%256;
//设置初值,计数4次后产生定时/计数器中断
TH1=(65536-5)/256;
//启动计数器
//开CPU中断,不开中断也行,没有用到计数器中断
ET1=1;
count=TL1;
//显示当前计数值
Led(count);
通过单片机内部定时器,输出频率改变的信号给蜂鸣器电路,并改变节拍即可产生音乐.
NC接到单片机I/O口P1.2
原理:
采用矩阵扫描的形式,识别按键,然后转入相应处理,程序参见光盘部分.
接线柱J15接到单片机P1口.(J15的第一个脚对应接P1.0),数码管接入.
看门狗+上电自动复位电路+手动复位电路+电源监控
外部看门狗:
采用MAX813L,程序跑飞时可以强制复位,相当于一个定时器,有一个设定的计数值,计数没有溢出之前将其计数值清零,然后重新计数,这个过程即:
”喂狗”,如果在计数溢出之前没有清零,则计数器溢出,从而产生强制复位信号.工业控制干扰大的场合必用看门狗电路防止出现意外事故.
附带功能:
电源检测功能,当电源电压低于门限值时相关引脚电平跳变,可以输入到单片机中断口,使单片机保存数据等.
NF接到P3.2,NG接到P1.4,J13中将看门狗输出与复位脚用短路冒短接起来。
数码管接入.可以试着停止喂狗的语句看数码管显示有何变化.
128*64点阵式液晶显示
所用的液晶型号为FM12864J(20个接口),使能信号E为低电平有效.驱动程序见程序部分。
液晶模块用跳线冒接入(即AA连接到P0.0,BB连接到P0.1依次接入,CON1…CON5分别接到P2.7……P2.3).
RS232串行通讯
串行通讯可以实现单片机与PC机方便的通讯,51的输入/输出缓冲器共用一个地址,但是两个不同的寄存器,可以分别用于缓存待发射的和要接收的程序,程序参见光盘部分.
通讯波特率的设定:
51单片机通过定时器中的定时值来设定波特率。
开发板上的串口接到PC机串口.RXD接到P3.0,TXD接到P3.1,数码管接入.注意数码管显示的数据为十进制,以十六进制发送11,则数码管显示为17.
红外信号发射与接收
红外发射采用红外发射二极管,用软件产生38KHZ(也可为其他频率的)的载波信号,单片机对信号进行调制然后发射出去,所谓载波调制是非常简单的过程,看看下面的程序即可明白;
红外