XD单片机学习板使用手册V20.docx

上传人:b****5 文档编号:3989101 上传时间:2022-11-26 格式:DOCX 页数:48 大小:1.36MB
下载 相关 举报
XD单片机学习板使用手册V20.docx_第1页
第1页 / 共48页
XD单片机学习板使用手册V20.docx_第2页
第2页 / 共48页
XD单片机学习板使用手册V20.docx_第3页
第3页 / 共48页
XD单片机学习板使用手册V20.docx_第4页
第4页 / 共48页
XD单片机学习板使用手册V20.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

XD单片机学习板使用手册V20.docx

《XD单片机学习板使用手册V20.docx》由会员分享,可在线阅读,更多相关《XD单片机学习板使用手册V20.docx(48页珍藏版)》请在冰豆网上搜索。

XD单片机学习板使用手册V20.docx

XD单片机学习板使用手册V20

 

XD2007/8单片机学习板

使用手册

版本:

V2.00

 

ZJ单片机学习网

完成日期:

2009-09-10

目录

第1章XD2007/8单片机学习板功能简介

1.1概述

1.2.XD2007/8单片机学习板主要功能

1.3.STC89C52RC单片机性能

1.4.STC89系列单片机选型

第2章XD2007/8单片机学习板原理电路说明

第3章XD2007/8单片机学习板实践指导

3.1基本入门实践部分

1.基本I/O口的输出实践

2.基本I/O口的输入实践

3.总线操作实践

3.2综合提高实践部分

1.单片机I/O串口实践

2.单片机点阵汉字显示实践

3.单片机A/D、D/A综合实验

4.单片机秒表、报警综合实验

5.单片机温度测量、通信综合实验

第5章XD2007/8单片机学习板的功能扩展

第4章Keil软件平台与STC_ISP下载软件的安装使用

4.1Keil软件平台的安装使用

4.2STC_ISP下载软件的安装使用

第6章常见问题

 

第1章XD2007/8单片机学习板功能简介

1.1概述

XD2007/8单片机电路板是专为在校学生和单片机爱好者开发的一款单片机学习板,亦可作为工程人员开发参考之用。

本学习板采用51内核的STC89C5x系列单片机为核心控制器,指令集与MCS-51完全兼容,是学习51系列单片机入门或提高开发技能的好平台。

针对课程和学习提高要求,编写了多个实践测试程序,对全面学习和掌握单片机开发技能很有帮助。

由于该板选择了STC系列单片机,对于程序(目标码)下载提供了便利(只用串口即可完成)。

1.2XD2007/8单片机学习板主要功能

XD2007/8单片机学习板如图1所示。

从图1可以看出,XD2007/8学习板可以直接学习的内容有:

⑴完全可以学习STC89C5x单片机的所有资源(中断、定时/计数、E2PROM等操作);

⑵通过蜂鸣器与按键学习I/O口的操作;

⑶通过LED灯学习总线的编程控制方法;

⑷通过A/D变换器学习数据采集的编程与热敏电阻测温原理;

⑸通过D/A变换器学习数字量到模拟量的转换及各种波形的产生原理;

⑹通过DS18B20数字温度传感器学习单线I/O接口编程方法;

⑺通过16×16点阵学习图形或汉字的显示原理;

⑻通过74HC595学习串进并出编程方法与动态显示原理;

⑼通过UART串口学习单片机与PC机的通信方法和编程技巧;

⑽通过总线接口完全可以实现其它扩展功能。

1.3STC89C52RC单片机性能

⑴1个8位字长的CPU和指令系统;

⑵1个片内振荡器及时钟电路;

⑶内部有8KB的E2PROM(程序存储器);

⑷64KB的外部程序存储器寻址空间;

⑸64KB的外部数据存储器寻址空间(片内集成有256字节RAM);

⑹SRAM数据存储器256字节(分低128字节和高128字节);

⑺片内有2K字节E2POM;

⑻3个16位定时器/计数器;

⑼1个可编程的全双工串行接口;

⑽32条可编程的I/O端口(分4个8位并行I/O端口);

⑾有6个中断源、2个优先级中断控制器;

⑿1个布尔处理器;

⒀有111条指令;

⒁有内部看门狗定时器;

⒂有双数据指针(双DPTR);

⒃时钟可加倍;

⒄高抗电(ESD)保护;

⒅低功耗,掉电<0.1µA、正常4mA~7mA;

⒆有DIP-40脚封装及TQFP-44脚封装。

1.4STC89系列单片机选型

STC89系列单片机选型见表1所示。

注:

STC系列单片机网站:

www.mcu-

第2章XD2007/8单片机学习板原理电路说明

XD2007/8学习板原理电路如图2~图6所示。

其中,图2是STC89C5xCPU、总线锁存器(74HC573)、外部扩展接口(74HC573)、上电复位电路、时钟电路和DS18B20测温等部分。

图3是地址译码器(U6,74HC138)、RS232串口电平转换(RS232)、A/D转换器(TLC549)、D/A转换器(TLC5615)、按键及LED灯等电路部分。

图4是16×16点阵显示器驱动电路(2U1、2U2、2U7和2U8)、总线扩展接口及电源等部分。

图5是16×16点阵显示器原理电路。

图6是XD2007/8单片机学习板印制板(PCB)图。

第3章XD2007/8单片机学习板实践指导

XD2007/8单片机学习板软件编程既可以用51汇编也可以用C51编写。

考虑到程序的可读性,本指导用C语言编写。

对于每一例子经“KeilµVision2”编译成“文件名.HEX”文件后,再由“STC_ISP_V3.5”下载软件将“文件名.HEX”烧入XD2007/8学习板即可看到结果。

3.1基本入门实践部分

1.基本I/O口的输出实践

通过图2中的蜂鸣器电路(V1与蜂鸣器),经SPEAK(P1.0引脚)控制其发声。

源程序如下:

#include"reg52.h"

sbitSPEAK=P1^0;//定义蜂鸣器引脚

voiddelay(unsignedintx)//延时函数

{unsignedinti;

for(i=0;i

}

voidmain(void)

{unsignedintj=0x100;

while

(1)

{j=j+0x300;

SPEAK=~SPEAK;//产生波形发声

delay(j);//延时变调

if(j>0x4000)j=0x200;

}

}

2.基本I/O口的输入实践

通过图2的蜂鸣器与图3的K1、K2实现按键输入操作功能,当按K1时停止发声,当按K2时又继续发声。

源程序如下:

#include"reg52.h"

sbitSPEAK=P1^0;//定义蜂鸣器引脚

sbitK1=P1^1;//定义K1按键

sbitK2=P2^4;//定义K2按键

voiddelay(unsignedintx)//延时函数

{unsignedinti;

for(i=0;i

}

voidmain(void)//主函数部分

{unsignedintj=0x100;

start:

j=0x100;

while

(1)

{j=j+0x300;

SPEAK=~SPEAK;//产生波形发声

delay(j);//延时变调

if(K1==0)gotok1;//按K1停止发声

if(j>0x4000)

{while

(1)

{

j=j-0x300;

SPEAK=~SPEAK;//产生波形发声

delay(j);//延时变调

if(j<0x100)gotostart;

if(K1==0)gotok1;//按K1停止发声

}

}

}

k1:

while

(1)

{SPEAK=1;//关声音

if(K2==0)gotostart;//按K2开始发声

}

}

3.总线操作实践

通过图2的U4、图3的U6及总线LED指示灯实现的LED等闪烁功能。

如果用汇编程序其指令是“MOVX指令”,如果用C程序则用指针操作,源程序如下:

#include"reg52.h"

sbitSPEAK=P1^0;//定义蜂鸣器引脚

voiddelay(unsignedintx)//延时函数

{unsignedinti;

for(i=0;i

}

voidmain(void)

{

unsignedcharxdata*p1;//定义指针变量,指向外部存储器空间

unsignedcharidatay;//定义数据

y=0x05;

p1=0x1000;//指向1000H口地址(LED灯)

while

(1)

{SPEAK=~SPEAK;//产生波形发声

delay(0x6000);//延时

y=~y;//LED等数据取反

*p1=y|0x80;//LED灯闪烁点亮(总线操作)

}

}

3.2综合提高实践部分

1.单片机I/O串口实践

一、实验电路描述

在实际应用当中,利用普通I/O口作串进并出是常用方法。

图4中,两个74HC595级联实现16位串进并出是点阵显示器的行驱动电路。

如果目的不只是点阵显示器的行驱动也可用于其他16个控制(数字)输出的应用。

二、软件编程

根据74HC595的工作时序结合图4:

①由LEDDI(14脚)依次送入高位串行数据(D15~D0)位;②在每1位有效后,必由LEDCLK(11脚)输入时钟(上升沿有效);③当对应16位数据均输入器件后,由LEDALE(12脚)送入低到高的锁存信号。

数据立即再现到1L~16L端口。

C程序如下:

#include/*包含52资源定义头文件*/

sbitLEDALE=P1^3;/*定义74HC595锁存信号*/

sbitLEDDI=P1^7;/*定义74HC595的串行输入信号*/

sbitLEDCLK=P3^3;/*定义74HC595的时钟信号*/

voiddelay_l(unsignedintn)/*长延时*/

{unsignedinti;

for(i=0;i

}

/*串行输出16位数据函数*/

voidout_16bit(unsignedintnumb)

{unsignedchari;

unsignedintx;

x=numb;

LEDALE=0,LEDCLK=0;/*接口初始化*/

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

{LEDDI=(x&0x8000);/*如果x&0x8000为真LEDDI=1*/

LEDCLK=1;LEDCLK=1;/*送时钟上升沿*/

LEDCLK=0;LEDCLK=0;

x=x<<1;/*数据左移1位*/

}

LEDALE=1;/*送锁存信号上升沿*/

LEDALE=0;

}

voidmain(void)/*测试主函数*/

{unsignedcharxdata*Y0;/*定义外部指针变量*/

unsignedintx;

unsignedchari,j=0;

Y0=0x1000;/*将外部地址1000H赋给Y0*/

x=0x5555;

while

(1)/**在第1-16列上显示x的值,操作U4*/

{x=~x;/*x数值取反*/

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

{out_16bit(x);/*输出x的非*/

j=i;j<<=3;/*计算合理的列值*/

*Y0=j;

delay_l(0x4000);/*延时*/

}

}/*while

(1)结束*/

}/*main结束*/

在本例中读者如果将“delay_l(0x4000)”延时函数中的0x4000,改成0x30后,再观看显示结果有何不同。

2.单片机点阵汉字显示实践

一、硬件电路描述

市面上已有很多有关点矩阵显示器的产品,如广告活动字幕机、股票显示板、活动布告栏等。

它的优点是可按需要的大小、形状、单色或彩色来组合,可与计算机或单片机系统连接,做各种广告性文字或图形显示。

点阵式LED显示器的种类可分为5×7、5×8、6×8、8×8等4种;而按LED发光变化颜色来分,可分为单色、双色、三色;按LED的极性排列方式又可分为共阳极与共阴极。

本实验作为一种原理性的学习,采用4块8×8的共阳极单色点阵式LED组成16×16的点阵来显示汉字或图形。

16×16的点阵电路如图5所示。

16行驱动与16列译码电路如图4所示。

2片74HC138译码输出控制图4的三极管的16列。

而2片74HC595连接起来作为16位数据的输出控制图5的16行。

采用这种电路可以大大减少单片机I/O管脚的使用,而且可扩展更多的点阵驱动。

读者通过基本LED点阵屏的编程练习,可以实现“静态”、“动态”和“滚屏”显示汉字或图形的方法,从中可以获得学习单片机的乐趣。

二、软件编程

根据XD2008综合实验电路,用C实现的汉字静态及动态显示程序如下:

#include/*包含52资源定义头文件*/

#include/*XBYTE的头文件*/

sbitLEDALE=P1^3;/*定义74HC595锁存信号*/

sbitLEDDI=P1^7;/*定义74HC595的串行输入信号*/

sbitLEDCLK=P3^3;/*定义74HC595的时钟信号*/

sbitK1=P1^1;/*k1按键输入脚*/

sbitK2=P2^4;/*k2按键输入脚*/

#defineY0XBYTE[0x1000]/*Y0的口地址*/

unsignedcharled123;/*定义LED灯变量*/

/*-----------有关汉字显示字模---------------*/

unsignedintcodedis_numb1[16]={0x4000,0x4FFE,0x4814,0x4824,

0x4844,0x7F84,0x4804,0x4804,0x4804,0x7F84,0x4844,0x4844,

0x4844,0x4FFE,0x4000,0x0000};/*西*/

unsignedintcodedis_numb2[16]={0x0101,0x0901,0x3101,0x2102,

0x21E2,0x2F14,0xA514,0x6108,0x2114,0x2124,0x21C2,0x2103,

0x2902,0x3100,0x2100,0x0000};/*安*/

unsignedintcodedis_numb3[16]={0x0000,0x0000,0x1FF0,0x1220,

0x1220,0x1220,0x1220,0xFFFC,0x1222,0x1222,0x1222,0x1222,

0x1FF2,0x0002,0x000E,0x0000};/*电*/

unsignedintcodedis_numb4[16]={0x0080,0x0080,0x4080,0x4080,

0x4080,0x4082,0x4081,0x47FE,0x4880,0x5080,0x6080,0x4080,

0x0080,0x0180,0x0080,0x0000};/*子*/

unsignedintcodedis_numb5[16]={0x0820,0x4840,0x4980,0x4E00,

0x7FFF,0x8A00,0x8920,0x0020,0x4420,0x3340,0x0040,0x0040,

0xFFFF,0x0080,0x0080,0x0000};/*科*/

unsignedintcodedis_numb6[16]={0x1080,0x1082,0x1101,0xFFFE,

0x1200,0x1402,0x0002,0x1304,0x12C8,0x1230,0xFE30,0x1248,

0x1384,0x1206,0x1004,0x0000};/*技*/

unsignedintcodedis_numb7[16]={0x0400,0x0401,0x0402,0x0404,

0x0408,0x0430,0x05C0,0xFE00,0x0580,0x0460,0x0410,0x040C,

0x0406,0x0403,0x0402,0x0000};/*大*/

unsignedintcodedis_numb8[16]={0x0200,0x0C40,0x0840,0x4840,

0x3A40,0x2A40,0x0A42,0x8A41,0x7AFE,0x2B40,0x0A40,0x1840,

0xEA40,0x4C40,0x0840,0x0000};/*学*/

unsignedintcodedis_numbz0[]={

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/*不显示*/

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000,/*!

*/

0x0000,0x4040,0x4042,0x5F43,0x5264,0x5254,0x7E48,0x5248,

0x5248,0x5254,0x7FD4,0x5272,0x5242,0x5F41,0x4041,0x4040,/*要*/

0x0000,0x1002,0x1002,0x1012,0x97D2,0x9552,0x9552,0x9552,

0xFFFE,0x5552,0x5552,0x5552,0x57D2,0x5012,0x1002,0x1002,/*重*/

0x0000,0x0004,0x0046,0x7ECC,0x5258,0x5220,0x53C8,0x5204,

0x5202,0x7FFF,0x0002,0x5800,0xC400,0x23FF,0x1100,0x0880,/*很*/

0x0000,0x0906,0x2941,0x3922,0x491C,0x0970,0xFF88,0x0484,

0x0482,0x0008,0x7C88,0x4488,0x47FC,0x4404,0x7CFC,0x0004,/*践*/

0x0000,0x2040,0x3040,0x2842,0x2047,0x2048,0x2050,0x6FE0,

0xA050,0x2948,0x2DC4,0x3242,0x2042,0x3041,0x0841,0x0000,/*实*/

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};

unsignedintcodedis_numbz[]={

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,/*不显示*/

0x0000,0x2040,0x3040,0x2842,0x2047,0x2048,0x2050,0x6FE0,

0xA050,0x2948,0x2DC4,0x3242,0x2042,0x3041,0x0841,0x0000,/*实*/

0x0000,0x0906,0x2941,0x3922,0x491C,0x0970,0xFF88,0x0484,

0x0482,0x0008,0x7C88,0x4488,0x47FC,0x4404,0x7CFC,0x0004,/*践*/

0x0000,0x0004,0x0046,0x7ECC,0x5258,0x5220,0x53C8,0x5204,

0x5202,0x7FFF,0x0002,0x5800,0xC400,0x23FF,0x1100,0x0880,/*很*/

0x0000,0x1002,0x1002,0x1012,0x97D2,0x9552,0x9552,0x9552,

0xFFFE,0x5552,0x5552,0x5552,0x57D2,0x5012,0x1002,0x1002,/*重*/

0x0000,0x4040,0x4042,0x5F43,0x5264,0x5254,0x7E48,0x5248,

0x5248,0x5254,0x7FD4,0x5272,0x5242,0x5F41,0x4041,0x4040,/*要*/

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000,/*!

*/

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,

0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};

voiddelay_l(unsignedintn)/*长延时*/

{unsignedinti;

for(i=0;i

}

voiddelay_s(unsignedcharn)/*短延时*/

{unsignedinti;

for(i=0;i

}

/*串行输出16位行数据函数*/

voiddisplay_r(unsignedintnumb)

{unsignedchari;

unsignedintx;

x=~numb;/*数据取反*/

LEDALE=0,LEDCLK=0;

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

{LEDDI=(x&0x8000);

LEDCLK=1;LEDCLK=1;

LEDCLK=0;LEDCLK=0;

x=x<<1;

}

Y0=led123|0x80;/*退出时关显示器D=1*/

LEDALE=1;

LEDALE=0;

}

/*正显示16×16点阵汉字*/

voiddisp_16rz(unsignedintnumb[])

{unsignedchary0data=0,abcd=0,i,j;

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

{display_r(numb[i]);/*送行数据*/

j=abcd<<3;/*计算列的位置*/

y0data=j|(led123&0x07);

Y0=y0data;/*显示一列数据*/

abcd++;/*列加1*/

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

当前位置:首页 > 小学教育 > 数学

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

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