STC单片机开发板操作手册26页word资料.docx
《STC单片机开发板操作手册26页word资料.docx》由会员分享,可在线阅读,更多相关《STC单片机开发板操作手册26页word资料.docx(33页珍藏版)》请在冰豆网上搜索。
STC单片机开发板操作手册26页word资料
单片机开发板操作手册
要练说,得练听。
听是说的前提,听得准确,才有条件正确模仿,才能不断地掌握高一级水平的语言。
我在教学中,注意听说结合,训练幼儿听的能力,课堂上,我特别重视教师的语言,我对幼儿说话,注意声音清楚,高低起伏,抑扬有致,富有吸引力,这样能引起幼儿的注意。
当我发现有的幼儿不专心听别人发言时,就随时表扬那些静听的幼儿,或是让他重复别人说过的内容,抓住教育时机,要求他们专心听,用心记。
平时我还通过各种趣味活动,培养幼儿边听边记,边听边想,边听边说的能力,如听词对词,听词句说意思,听句子辩正误,听故事讲述故事,听谜语猜谜底,听智力故事,动脑筋,出主意,听儿歌上句,接儿歌下句等,这样幼儿学得生动活泼,轻松愉快,既训练了听的能力,强化了记忆,又发展了思维,为说打下了基础。
(STC/AT51/AVR全兼容单片机开发板)
一般说来,“教师”概念之形成经历了十分漫长的历史。
杨士勋(唐初学者,四门博士)《春秋谷梁传疏》曰:
“师者教人以不及,故谓师为师资也”。
这儿的“师资”,其实就是先秦而后历代对教师的别称之一。
《韩非子》也有云:
“今有不才之子……师长教之弗为变”其“师长”当然也指教师。
这儿的“师资”和“师长”可称为“教师”概念的雏形,但仍说不上是名副其实的“教师”,因为“教师”必须要有明确的传授知识的对象和本身明确的职责。
160的开发板(包括其套件和丰富的资料光盘)
单靠“死”记还不行,还得“活”用,姑且称之为“先死后活”吧。
让学生把一周看到或听到的新鲜事记下来,摒弃那些假话套话空话,写出自己的真情实感,篇幅可长可短,并要求运用积累的成语、名言警句等,定期检查点评,选择优秀篇目在班里朗读或展出。
这样,即巩固了所学的材料,又锻炼了学生的写作能力,同时还培养了学生的观察能力、思维能力等等,达到“一石多鸟”的效果。
128的开发板(包括其套件和丰富的资料光盘)
一、概述
1,多功能单片机开发板,板载资源非常丰富,仅是包括的功能(芯片)有:
步进电机驱动芯片ULN2019、
八路并行AD转换芯片ADC0804、
八路并行DA转换芯片DAC0832、
光电耦合(转换)芯片MOC3063、
八路锁存器芯片74HC573、
实时时钟芯片DS1302及备用电池、
IIC总线芯片AT24C02、
串行下载芯片MAX232CPE,
双向可控硅BTA06-600B、
4*4矩阵键盘、
4位独立按键、
DC5VSONGLE继电器、
5V蜂鸣器、
八位八段共阴数码管
5V稳压集成块78M05
八路发光二极管显示
另还有功能接口(标准配置没有芯片但留有接口,可直接连接使用):
单总线温度传感器DS18B2接口、
红外线遥控接收头SM003接口8、
蓝屏超亮字符型液晶1602接口、
蓝屏超亮点阵图形带中文字库液晶12864接口、
2(4)相五线制小功率步进电机接口、
外接交流(7V-15V)电源接口
USB直接取电接口
镀金MCU晶振座
40DIP锁紧座
外接电源和5V稳压电源的外接扩展接口及MCU所有IO口扩展
ISP下载接口(可以对AT51/AVR系列进行下载)
2,可以完成的单片机实验:
1、LED显示实验(点亮某一个指示灯、流水灯),
2、八位八段数码管显示实验(你可以任意显示段字符和数字以及开发板所有功能芯片的显示),
3、液晶显示(1602液晶显示、12864点阵中文图形液晶显示、可以显示出开发板所有功能芯片的操作),
4、继电器的操作
5、蜂鸣器的操作(你可以编写程序让它发出美妙动听的歌声)
6、可控硅的操作(胆大的朋友就利用这一独有的功能吧,你见过实验室温度实验箱没有,它的驱动就是这样的;聪明的朋友就可以自己写个程序把把加热温度温度恒定在(X±0.5)度的范围内了
7、步进电机的操作(这个是迈向自动化控制的第一步,现在的数控机床、机器人呀什么的实现精度运动控制大部分都是靠它来实现的)
8、数模转换操作(数字量在这里是怎样变换成模拟量的,这里采用的转换芯片是8路并行传输模式,响应时间仅2us)
9、模数转换操作(一个小小的程序,你旋动电位器可以看到阻值的变化在数码管上变成了一个个的非常直观数字,这里采用的转换芯片是8路并行传输模式,响应时间仅2us)
10、矩阵键盘的操作(这个是你自己定义的编码键盘,4*4=16个按键却只占有单片机的八个IO口,以此类推5*5=25个按键只要10个IO口,这样的控制是怎样实现的呢)
11、独立按键的操作(在这个里面不但可以进行常规的按键操作,您也进行单片机的外部中断和计数器的操作)
12、实时时钟的操作(自己动手编写个万年历吧,让时间在数码管或液晶上显示出来)
13、IIC总线芯片AT24C02的操作(常规的记忆需要电池,但是AT24C02却可以断电记忆数据100年不丢失)
14、红外遥控操作(可以像遥控电视机样遥控开发板,当然您还需要配备一个万能遥控板和接收头才能实现这个功能)
15、单总线温度传感器DS18B20(测试下现在的室温吧,测试精度在±0.1度;也可配合本开发板的可控硅和光电耦合制作高精度的温度实验箱了,想想这与实验室的实验箱有什么差距呢)
16、串口通信(想用电脑控制开发板或者开发板控制电脑吗,我们提供一个串口调试精灵和一个上位机软件(且提供全部的VB源代码),剩下的就靠你自己编写程序去实现了)
17、晶振采用镀金座接口(单片机内部定时时选用6M或12M晶振,下载或串口通信采用11.0592M,你想怎么换就怎么换)
18、开发板的所有IO口及外接电源及5V稳压电源的扩展接口(想自己再扩展电路吧,想利用开发板进行硬件的第二次扩展吗,这些都是可以很轻松实现)
3,产品装箱清单:
1、测试好的单片机开发板一块
2、晶振3个(12M、11.0592、6M)
3、实时时钟DS1302备用纽扣电池(3V)一块
4、跳线帽10个
5、AC220V接口帽一个
6、9针串口线一条
7、USB取电线一条
4,产品可选配件(可直接连接使用):
1、1602字符型蓝屏超亮液晶
2、12864点阵图形蓝屏超亮带中文字库液晶
3、2(4)相小功率步进电机
4、SST89E516仿真芯片
5、单总线温度传感器DS18B20
6、红外遥控接收头SM0038
7、万能遥控板(可直接遥控市场上绝大部分型号电视机)
8、USB-串口下载线(如果您是使用的笔记本或者是不含有串口的电脑)\
9、ISP下载线(可以对ATS51/AVR系列高速进行下载)
这是个完整的单片机开发系统,这些配置也能完成大部分单片机实验,只要您能够仔细的认真的掌握好以上知识,相信您已经进入到单片机的世界,并开始向更高方向发展!
下载操作:
2,现在你已经拥有这样一块多功能的单片机开发板了,第一步我们就测试开发板的性能,让你第一次的用眼睛加上你的操作去控制它
A、连接好串口下载线(附图2-1)和USB取电线(附图2-2)
附图(2-1)附图(2-2)
B、如果您使用的是笔记本或者是没有串口的电脑,则需安装USB-串口驱动并使用转换线,转换线图片见附图2-4,及操作步凑见附图2-5,及验证安装成功步凑见附图2-6,(如果是直接采用的9针串口线下载,则跳过这一步)
1)USB-串口线如图所示
附图(2-4)
2)请先不要插USB-串口转换线,后点击下载附送的USB-串口驱动步凑:
附图(2-5)
3)现在请将USB-串口线插在电脑的USB接口上,电脑会自动搜索安装,后请验证安装是否成功。
验证安装成功步凑:
附图(2-6)
(如果能看到你的硬件管理器中有个虚拟的通讯端口(则表示USB-串口下载安装成功),那么请记住是COM几,因为一会在下载软件里面要用到)
C、安装下载软件:
安装我们提供的单片机烧写软件STC-ISPV391.EXE(见附图2-7),只需将它全部复制到您的硬盘中直接打开就可(见附图2-7),
附图(2-7)
D、下载测试程序:
将我们提供的单片机开发板程序下载到开发板上(举列下载LED显示流水灯程序)见附图2-8
1)在附图(2-7)中的界面中选择
(电脑无串口请选择此项,否则跳过)
(选择附图2-6中的COM端口号)
(打开流水灯中的HEX文件)
等待
(按下单片机开发板电源开关,等待数秒就成功下载了)
在本开发板中下载STC的单片机是直接通过串口下载,但是下载AT51/AVR就不能通过串口下载了,必须利用开发板的ISP接口下载,另外还需配置专用的USB-ISP下载接口。
开发板ISP接口和原理图见附图(2.10)
附图(2.10)
USB-ISP下载转换模块见附图(2.11)
附图(2.11)
AVR/AT51的ISP下载软件界面见附图(2.12)
附图(2.12)
下面我们通过流程来仔细介绍下ISP转换模块的驱动安装方法和如何下载
1、将光盘中的这这个文件夹复制到你的硬盘中
2、在开发板和电脑USB口上连接上USB-ISP转换线(USB-ISP模块可以通过跳线冒设置是否带USB电源,默认设置为不带电源。
也就是说当2、3脚连接在ISP下载时候开发板就不用再连接USB取电线了);
跳线冒设置见附图(2.13)
附图(2.13)
3、插上电脑USB口后,电脑会提示你发现硬件,并且叫你安装
选择第2项并点下一步
将光盘中
这个驱动浏览在上面的界面中,并点下一步
电脑会自己寻找并安装好USB-ISP驱动,这时我们就可以在电脑的硬件管理器里面查看安装是否成功了
只要看到了上面的画面,那么转换线及驱动我们就安装成功
现在我们就要通过USB-ISP下载次序了,操作如下:
1、将
中的
这个、文件打开并且打开
文件,就会出现这样的一个下载界面
这时我们就可以进行ISP编程了:
打开上图界面的
装入要烧写的HEX文件,
选择你要烧写的MCU,点编程就可以了
在这里我们列出了ISP编程的一个大楷流程,更详细请查阅
二、板载资源详细介绍(以具体芯片或电路为准,介绍芯片的功能及如何操作,及显示出源程序并附带显示效果):
1)发光二极管(电路及其显示的基本原理)
A、电路原理图见附图(3-1)
附图(3-1)
上图中的八个LED分别通过一个电阻限流接在单片机的P0口上,如图所示八个LED的正极都同时接在PNP三极管的集电极,三极管的基极接在了单片机的P1^4口,先不管为什么,我们可以这样认为:
A、当P1^4是低电平、P0口是低电平,点亮发光二极管
B、当P1^4是低电平、P0口是高电平,熄灭发光二极管
C、当P1^4是高电平、P0口是低电平,熄灭发光二极管
所以要点亮LED的条件是P1^4和P0口同时为低,但如果是只要点亮P0^0上的LED呢?
就应该是先使P1^4是低电平,再使P0^0为低,其它为高就可以了
程序如下:
#include"AT89x52.h"//代入头文件
sbitSJ=P1^4;//LED的使能端
voidmain(void)
SJ=0;//使P1^4为低电平
P0=0xfe;//使P0^0口为低电平
while
(1);//程序执行到这里不动作
这时我们能看到在不但开发板上的一个LED被点亮了
有了第一个LED被点亮的列子,那么我们就可以用同样的方法点亮其它LED了,当然也可以让LED一个一个的轮流被点亮以达到一种流水灯的效果。
实列程序的效果:
上面附图是实列测试程序中的流水灯显示效果,左边一排为8位接在P0口的LED,第2个被点亮了,这就是流水灯跑到第2个的效果,右边的那个灯为电源指示灯,只要一开电源就会亮。
2)八位八段数码管显示原理及锁存器的操作
A、电路原理图见附图(3-2)
附图(3-2)
B、数码管资料见附图(3-3)
附图(3-3)
从图(3-3)可以看出这个一个四位的共阴数码管,上面的11,7…3是数码管的段选端,12…6是数码管的位选端,本开发板使用了2个这样的数码管,再结合图(3-2)可看出,数码管的位选和段选都接在了两片锁存器74HC573上,而573又接在了单片机的P0端
C、锁存器74HC573资料见附图(3-4),更为详细的芯片资料见其它
这个芯片采用的是八进位的D触发器,它可以驱动电容式或电阻式的负载。
因此它特别适合应用于缓冲寄存器、IO端口、双向的总线控制器、和操作寄存器。
当寄存器的使能端(LE)为高电平时,Q输出端和D输入端一一对应;当LE为低电平时,输出端管脚Q输出的是寄存器中已被设定的值。
当一个能开启缓冲功能的负逻辑管脚(OE)为0时,无论是在正常逻辑状态还是在高阻抗状态下,都能放置八位的输出数据。
在高阻抗状态下。
输出并没有负载或者进行控制总线。
高阻态和改进的总线驱动可以在不拉起元件的情况下控制总线传输。
OE端并不影响寄存器内部的操作。
当输出端呈高阻状态时旧的数据可以被保存或者新的数据进行输入
从图(3-4)中可看出,2-9脚为输入端,12-19为输出端,1、11脚为控制端,
A,当1脚为高电平时,不论输入值,12-19输出为高阻态,
B、当1脚为低电平时,11脚为高电平,输入值的变化直接反映到输出值的变化
11脚为低电平,输出值的不受输入值的变化而变化,而是记录了上次的输入值(就锁存了数据)
根据锁存器所具有的这一特性,我们就可以编写程序控制数码管了
另外数码管的显示方式分为两种,一种是静态显示,一种是动态显示,在这里我们是以芯片573锁存器作为重点讲
附图(3-4)
从附图(3-2)的原理图中我们可看出,两片573的输入端都是接在了MCU的P0口,也就是说数码管的位选端和段选端都是通过锁存器接在了P0端,但是我们要让数码管亮,就得分别去控制它的位选端和段选端,那么在这里要怎样分别控制呢?
可以这样:
A、给控制位选的573的11脚高电平,让它的输入和输出直通
B、给P0口数据,让这个数据通过573去控制数码管的位
C、给控制位选的573的11脚低电平,锁存上次给的数据
D、给控制段选的573的11脚高电平,让它的输入和输出直通
E、给P0口数据,让这个数据通过573去控制数码管的段
F、给控制段选的573的11脚低电平,锁存上次给的数据
就按照这个思路我们来编写一个简单的让数码管显示的程序吧(显示效果见附图(3-5))
#include"AT89x52.h"//代入头文件
#include"math.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitDUAN=P2^0;//74HC573的LE端U5LED的段选端
sbitWEI=P2^1;//74HC573的LE端U4LED的位选端
ucharTemp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴显示字库
voiddelay(uintz)//1ms延时
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
main()
uchari;
WEI=1;//给573的位选高电平
P0=0;//给数码管位数据,让它们都为低电平
WEI=0;//锁住数码管的位数据(以上3句话锁存了位数据)
DUAN=1;//给573的段选高电平,让段一直保持直通状态
while
(1)//因为数码管的位数据被锁存,我们现在再给P0口数据就是只改
{//变段的数据了
for(i=0;i<10;i++)//显示0-9,,,10个数字
delay(500);//延时
P0=Temp[i];//给数码管段数据
delay(500);
附图(3-5)
以上程序就循环在数码管上显示了0-910-个数字。
回顾下,普通的LED接法是让LED的位和段接在不同的MCU的IO口上(按照上图所示就要占用16个IO口),但现在我们使用了2片573将它们都接在了MCU的P0(8个IO口)上,节约了单片机的IO口资源,这在单片机IO口紧张的情况下是很有用的
4)液晶显示
由于液晶显示比较复杂,在这里我们不打算详细介绍它的工作原理,只对其接口电路进行简单的介绍
1)1602字符型液晶
A、1602实物图见附图(3.6)
附图(3.6)
B、电路原理图(1602和12864)见附图(3-7)
附图(3-7)
C、1602引脚定义及时序见附图(3.8,3.9)
附图(3.8)
附图(3.9)
从附图(3.6,3.7)中我们可以看出1602和12864的都是使用的八位并行数据,而它们的数据引脚都并接在了P0口,VCC为DC5V电源,VSS为地线,其中除了DB0-DB7为数据线外,另还有几个可操作引脚是RS,R/W,E,其操作方法请严格按照附图(3.8)的读写时序图。
以上液晶的资料较为简单,详细的资料和测试程序另有收录,下面只列出可参照1602的如何写的程序
写命令子函数:
voidwrite_cmd(ucharcmd)//带要写的命令,无返回值
ucharCMD;
CMD=cmd;
while(lcd_busy());//判忙标志,这里也可以用一个普通的延时解决
rs=0;//参照时序图
rw=0;
cs=1;
nop();//稍微延时
P0=CMD;//给P0口附值
cs=0;
写数据子函数:
voidwrite_data(uchardata1)//带要写的数据,无返回值
ucharDATA;
DATA=data1;
while(lcd_busy());
rs=1;//参照时序图
rw=0;
cs=1;
nop();
P0=DATA;
cs=0;
1602液晶显示效果见附图(3.10)
附图(3.10)
从附图(3.10)中可看见中有个00显示不亮,这不是液晶本身的问题,而是程序处理延时时间的不准确所造成的。
如果显示的是数码管,延时不好会造成闪烁的现象
2)12864带中文字库点阵型液晶
A、12864实物图见附图(3.11)
附图(3.11)
B、12864引脚定义及时序见附图(3.12,3.13)
附图(3.12)
读时序
写时序
附图(3.13)
从原理附图(3.7)和12864接口附图(3.12)中我们应注意一点,(3.12)中12864的17脚是液晶的复位引脚,在(3.7)中我们把它直接接到了MCU的P2^7中.。
这个问题大家在编程需注意。
我们在操作液晶的时候一般只是让它显示需要的内容,那就是写数据/命令,下面将列出12864的写子函数,以做参考,其它测试程序另有收录。
写命令子函数:
voidlcd_wcmd(ucharcmd)//写命令RS=L,RW=L,E=高脉冲,D0-D7=指令码。
while(lcd_busy());//判忙
LCD_RS=0;//参照时序图
LCD_RW=0;
LCD_EN=0;
_nop_();
_nop_();
P0=cmd;
delayNOP();
LCD_EN=1;
delayNOP();
LCD_EN=0;
写数据子函数
voidlcd_wdat(uchardat)//写数据RS=H,RW=L,E=高脉冲,D0-D7=数据。
while(lcd_busy());
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delayNOP();
LCD_EN=1;
delayNOP();
LCD_EN=0;
以上只是列出了它的写时序。
这个液晶不但能显示汉字也能显示图画,而且汉字不用自己编码,都是芯片自带了的。
操作很方便很实用
5)键盘操作
键盘的操作在这里分为两种,独立键盘和距阵编码键盘
A、键盘的实物见附图(5.1)
附图(5.1)
上面附图中按键共有21个,在左边的上面4排4*4个为距阵键盘,下面1排4个为4位独立按键,在右边为一个复位按键
B、键盘的原理图见附图(5.2)
附图(5.2)
C、先说简单的独立键盘吧,就是原理附图(5.2)上的最下面的4个按键,这4个按键分别连接在MCU的P30,P31,P32,P33,上,我们可以先让这几个脚为高电平,当有键按下时某个被按下的按键所连接到的MCU引脚就变成了低电平,在编程时我们不论是采用哪种方法都很容易的判别出来。
这里就不列出源程序了
D、距阵键盘就要复杂得多了
1),原理图分析:
原理附图(5.2)上的上面16个按键,每4个列连在了P30、P31、P32、P33和每4个行连在了P34、P35、P36、P37上
2)编程思路:
由P30-P33送出扫描信号,而由P34-P37读取按键数据返回代码,具体如下:
以程序扫描的方式来检查那一按键被按下,一次扫描一行4个按键,扫描的顺序如下:
a、送出扫描信号1110以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
b、送出扫描信号1101以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
c、送出扫描信号1011以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
d、送出扫描信号0111以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
e、回到步凑a,继续做按键扫描。
列出键盘扫描子程序:
ucharKeyboard()//扫描子函数
uchari,j,pc;
for(i=0;i<4;i++)//循环4次扫描4行
P3=keyboard_Scan[i];//送行扫描代码
pc=P3;
pc=pc>>4|0xf0;//假如说有按键按下
for(j=0;j<4;j++)//将扫描值与扫描按键值比较
if(keyboard_Scan[j]==pc)in=i+j*4;//计算按键值
while(keyboard_Scan[i]!
=P3)//松手检测
P3=keyboard_Scan[i];将扫描后的值返回MCU
returnin;//返回按键值
以上的程序在实列测试程序中(列子)中加入另外一些代码,就可以通过按下某个按键后让这个值在LED上显示出来
6)、步进电机
步进电机的实物见附图(6.1)
附图(6.1)
附图(6.1)是本开发板选配的高精度2(4)相5(6)线制步进电机,全新(30元)
八成新(8元)。
步进电机内部原理图见附图(6.2)
附图(6.2)
附图(6.2)为一个两相步进电机的内部原理图,这和附图(6.1)的电机是一样的。
附图(6.3)为开发板步进电机连线原理图
附图(6.3)
附图(6.4)为开发板步进电机连线实物图
附图(6.4)
附图(6.4)为步进电机驱动芯片ULN2019内部方框图
B.步进电机概述
步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机