STC单片机开发板操作手册资料_第1页
STC单片机开发板操作手册资料_第2页
STC单片机开发板操作手册资料_第3页
STC单片机开发板操作手册资料_第4页
STC单片机开发板操作手册资料_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。STC单片机开发板操作手册-单片机开发板操作手册(HYPERLINK/auction/item_detail-db2-0fe7df8a61a9218715b75e4fade62d5d.htmt_blankSTC/AT51/AVR全兼容单片机开发板)160的开发板(包括其套件和丰富的资料光盘)128的开发板(包括其套件和丰富的资料光盘)概述多功能单片机开发板,板载资源非常丰富,仅是包括的功能(芯片)有:步进电机驱动芯片ULN2003、八路并行AD转换芯片ADC0804、八路并行DA转换芯片DAC0832、

2、光电耦合(转换)芯片MOC3063、八路锁存器芯片74HC573、实时时钟芯片DS1302及备用电池、IIC总线芯片AT24C02、串行下载芯片MAX232CPE,双向可控硅BTA06-600B、4*4矩阵键盘、4位独立按键、DC5VSONGLE继电器、5V蜂鸣器、八位八段共阴数码管5V稳压集成块78M05八路发光二极管显示另还有功能接口(标准配置没有芯片但留有接口,可直接连接使用):单总线温度传感器DS18B2接口、红外线遥控接收头SM003接口8、蓝屏超亮字符型液晶1602接口、蓝屏超亮点阵图形带中文字库液晶12864接口、2(4)相五线制小功率步进电机接口、外接交流(7V-15V)电源接

3、口USB直接取电接口镀金MCU晶振座40DIP锁紧座外接电源和5V稳压电源的外接扩展接口及MCU所有IO口扩展ISP下载接口(可以对AT51/AVR系列进行下载)2,可以完成的单片机实验:1、LED显示实验(点亮某一个指示灯、流水灯),2、八位八段数码管显示实验(你可以任意显示段字符和数字以及开发板所有功能芯片的显示),3、液晶显示(1602液晶显示、12864点阵中文图形液晶显示、可以显示出开发板所有功能芯片的操作),4、继电器的操作5、蜂鸣器的操作(你可以编写程序让它发出美妙动听的歌声)6、可控硅的操作(胆大的朋友就利用这一独有的功能吧,你见过实验室温度实验箱没有,它的驱动就是这样的;聪明

4、的朋友就可以自己写个程序把把加热温度温度恒定在(X0.5)度的范围内了7、步进电机的操作(这个是迈向自动化控制的第一步,现在的数控机床、机器人呀什么的实现精度运动控制大部分都是靠它来实现的)8、数模转换操作(数字量在这里是怎样变换成模拟量的,这里采用的转换芯片是8路并行传输模式,响应时间仅2us)9、模数转换操作(一个小小的程序,你旋动电位器可以看到阻值的变化在数码管上变成了一个个的非常直观数字,这里采用的转换芯片是8路并行传输模式,响应时间仅2us)10、矩阵键盘的操作(这个是你自己定义的编码键盘,4*4=16个按键却只占有单片机的八个IO口,以此类推5*5=25个按键只要10个IO口,这样

5、的控制是怎样实现的呢)11、独立按键的操作(在这个里面不但可以进行常规的按键操作,您也进行单片机的外部中断和计数器的操作)12、实时时钟的操作(自己动手编写个万年历吧,让时间在数码管或液晶上显示出来)13、IIC总线芯片AT24C02的操作(常规的记忆需要电池,但是AT24C02却可以断电记忆数据100年不丢失)14、红外遥控操作(可以像遥控电视机样遥控开发板,当然您还需要配备一个万能遥控板和接收头才能实现这个功能)15、单总线温度传感器DS18B20(测试下现在的室温吧,测试精度在0.1度;也可配合本开发板的可控硅和光电耦合制作高精度的温度实验箱了,想想这与实验室的实验箱有什么差距呢)16、

6、串口通信(想用电脑控制开发板或者开发板控制电脑吗,我们提供一个串口调试精灵和一个上位机软件(且提供全部的VB源代码),剩下的就靠你自己编写程序去实现了)17、晶振采用镀金座接口(单片机内部定时时选用6M或12M晶振,下载或串口通信采用11.0592M,你想怎么换就怎么换)18、开发板的所有IO口及外接电源及5V稳压电源的扩展接口(想自己再扩展电路吧,想利用开发板进行硬件的第二次扩展吗,这些都是可以很轻松实现)3,产品装箱清单:测试好的单片机开发板一块晶振3个(12M、11.0592、6M)实时时钟DS1302备用纽扣电池(3V)一块跳线帽10个AC220V接口帽一个9针串口线一条USB取电线一

7、条4,产品可选配件(可直接连接使用):1、1602字符型蓝屏超亮液晶2、12864点阵图形蓝屏超亮带中文字库液晶3、2(4)相小功率步进电机4、SST89E516仿真芯片5、单总线温度传感器DS18B206、红外遥控接收头SM00387、万能遥控板(可直接遥控市场上绝大部分型号电视机)8、USB-串口下载线(如果您是使用的笔记本或者是不含有串口的电脑)9、ISP下载线(可以对ATS51/AVR系列高速进行下载)这是个完整的单片机开发系统,这些配置也能完成大部分单片机实验,只要您能够仔细的认真的掌握好以上知识,相信您已经进入到单片机的世界,并开始向更高方向发展!下载操作:现在你已经拥有这样一块多

8、功能的单片机开发板了,第一步我们就测试开发板的性能,让你第一次的用眼睛加上你的操作去控制它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接口上,电脑会自动搜索安装,后请验证安装

9、是否成功。验证安装成功步凑:附图(2-6)(如果能看到你的硬件管理器中有个虚拟的通讯端口(则表示USB-串口下载安装成功),那么请记住是COM几,因为一会在下载软件里面要用到)C、安装下载软件:安装我们提供的单片机烧写软件STC-ISPV391.EXE(见附图2-7),只需将它全部复制到您的硬盘中直接打开就可(见附图2-7),附图(2-7)D、下载测试程序:将我们提供的单片机开发板程序下载到开发板上(举列下载LED显示流水灯程序)见附图2-81)在附图(2-7)中的界面中选择(电脑无串口请选择此项,否则跳过)(选择附图2-6中的COM端口号)(打开流水灯中的HEX文件)等待(按下单片机开发板电

10、源开关,等待数秒就成功下载了)在本开发板中下载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

11、电源,默认设置为不带电源。也就是说当2、3脚连接在ISP下载时候开发板就不用再连接USB取电线了);跳线冒设置见附图(2.13)附图(2.13)插上电脑USB口后,电脑会提示你发现硬件,并且叫你安装选择第2项并点下一步将光盘中这个驱动浏览在上面的界面中,并点下一步电脑会自己寻找并安装好USB-ISP驱动,这时我们就可以在电脑的硬件管理器里面查看安装是否成功了只要看到了上面的画面,那么转换线及驱动我们就安装成功现在我们就要通过USB-ISP下载次序了,操作如下:将中的这个、文件打开并且打开文件,就会出现这样的一个下载界面这时我们就可以进行ISP编程了:打开上图界面的装入要烧写的HEX文件,选择你

12、要烧写的MCU,点编程就可以了在这里我们列出了ISP编程的一个大楷流程,更详细请查阅板载资源详细介绍(以具体芯片或电路为准,介绍芯片的功能及如何操作,及显示出源程序并附带显示效果):发光二极管(电路及其显示的基本原理)A、电路原理图见附图(3-1)附图(3-1)上图中的八个LED分别通过一个电阻限流接在单片机的P0口上,如图所示八个LED的正极都同时接在PNP三极管的集电极,三极管的基极接在了单片机的P14口,先不管为什么,我们可以这样认为:当P14是低电平、P0口是低电平,点亮发光二极管当P14是低电平、P0口是高电平,熄灭发光二极管当P14是高电平、P0口是低电平,熄灭发光二极管所以要点亮

13、LED的条件是P14和P0口同时为低,但如果是只要点亮P00上的LED呢?就应该是先使P14是低电平,再使P00为低,其它为高就可以了程序如下:#includeAT89x52.h/代入头文件sbitSJ=P14;/LED的使能端voidmain(void)SJ=0;/使P14为低电平P0=0 xfe;/使P00口为低电平while(1);/程序执行到这里不动作这时我们能看到在不但开发板上的一个LED被点亮了有了第一个LED被点亮的列子,那么我们就可以用同样的方法点亮其它LED了,当然也可以让LED一个一个的轮流被点亮以达到一种流水灯的效果。实列程序的效果:上面附图是实列测试程序中的流水灯显示效

14、果,左边一排为8位接在P0口的LED,第2个被点亮了,这就是流水灯跑到第2个的效果,右边的那个灯为电源指示灯,只要一开电源就会亮。八位八段数码管显示原理及锁存器的操作电路原理图见附图(3-2)附图(3-2)数码管资料见附图(3-3)附图(3-3)从图(3-3)可以看出这个一个四位的共阴数码管,上面的11,73是数码管的段选端,126是数码管的位选端,本开发板使用了2个这样的数码管,再结合图(3-2)可看出,数码管的位选和段选都接在了两片锁存器74HC573上,而573又接在了单片机的P0端锁存器74HC573资料见附图(3-4),更为详细的芯片资料见其它这个芯片采用的是八进位的D触发器,它可以

15、驱动电容式或电阻式的负载。因此它特别适合应用于缓冲寄存器、IO端口、双向的总线控制器、和操作寄存器。当寄存器的使能端(LE)为高电平时,Q输出端和D输入端一一对应;当LE为低电平时,输出端管脚Q输出的是寄存器中已被设定的值。当一个能开启缓冲功能的负逻辑管脚(OE)为0时,无论是在正常逻辑状态还是在高阻抗状态下,都能放置八位的输出数据。在高阻抗状态下。输出并没有负载或者进行控制总线。高阻态和改进的总线驱动可以在不拉起元件的情况下控制总线传输。OE端并不影响寄存器内部的操作。当输出端呈高阻状态时旧的数据可以被保存或者新的数据进行输入从图(3-4)中可看出,2-9脚为输入端,12-19为输出端,1、

16、11脚为控制端,A,当1脚为高电平时,不论输入值,12-19输出为高阻态,B、当1脚为低电平时,11脚为高电平,输入值的变化直接反映到输出值的变化11脚为低电平,输出值的不受输入值的变化而变化,而是记录了上次的输入值(就锁存了数据)根据锁存器所具有的这一特性,我们就可以编写程序控制数码管了另外数码管的显示方式分为两种,一种是静态显示,一种是动态显示,在这里我们是以芯片573锁存器作为重点讲附图(3-4)从附图(3-2)的原理图中我们可看出,两片573的输入端都是接在了MCU的P0口,也就是说数码管的位选端和段选端都是通过锁存器接在了P0端,但是我们要让数码管亮,就得分别去控制它的位选端和段选端

17、,那么在这里要怎样分别控制呢?可以这样:给控制位选的573的11脚高电平,让它的输入和输出直通给P0口数据,让这个数据通过573去控制数码管的位给控制位选的573的11脚低电平,锁存上次给的数据给控制段选的573的11脚高电平,让它的输入和输出直通给P0口数据,让这个数据通过573去控制数码管的段给控制段选的573的11脚低电平,锁存上次给的数据就按照这个思路我们来编写一个简单的让数码管显示的程序吧(显示效果见附图(3-5)#includeAT89x52.h/代入头文件#includemath.h#defineuintunsignedint#defineucharunsignedcharsbi

18、tDUAN=P20;/74HC573的LE端U5LED的段选端sbitWEI=P21;/74HC573的LE端U4LED的位选端ucharTemp=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共阴显示字库voiddelay(uintz)/1ms延时uintx,y;for(x=z;x0;x-)for(y=110;y0;y-);main()uchari;WEI=1;/给573的位选高电平P0=0;/给数码管位数据,让它们都为低电平WEI=0;/锁住数码管的位数据(以上3句话锁存了位数据)DUAN=1;/给573的段选高电

19、平,让段一直保持直通状态while(1)/因为数码管的位数据被锁存,我们现在再给P0口数据就是只改/变段的数据了for(i=0;i10;i+)/显示0-9,10个数字delay(500);/延时P0=Tempi;/给数码管段数据delay(500);附图(3-5)以上程序就循环在数码管上显示了0-910-个数字。回顾下,普通的LED接法是让LED的位和段接在不同的MCU的IO口上(按照上图所示就要占用16个IO口),但现在我们使用了2片573将它们都接在了MCU的P0(8个IO口)上,节约了单片机的IO口资源,这在单片机IO口紧张的情况下是很有用的液晶显示由于液晶显示比较复杂,在这里我们不打算

20、详细介绍它的工作原理,只对其接口电路进行简单的介绍1)1602字符型液晶A、1602实物图见附图(3.6)附图(3.6)电路原理图(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)的读写时序图。以上液晶的资料较为简单,详细的资料和测试程序另有收录,下面只列

21、出可参照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液晶显示效果见附图(

22、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的P27中.。这个问题大家在编程需注意。我们在操作液晶的时候一般只是让它显示需

23、要的内容,那就是写数据/命令,下面将列出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_

24、RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;以上只是列出了它的写时序。这个液晶不但能显示汉字也能显示图画,而且汉字不用自己编码,都是芯片自带了的。操作很方便很实用键盘操作键盘的操作在这里分为两种,独立键盘和距阵编码键盘键盘的实物见附图(5.1)附图(5.1)上面附图中按键共有21个,在左边的上面4排4*4个为距阵键盘,下面1排4个为4位独立按键,在右边为一个复位按键键盘的原理图见附图(5.2)附图(5.2)先说简单的独立键盘吧,就是原理附图(5.2)上的最下面的4个按键,这4个按键分别连接在MCU的

25、P30,P31,P32,P33,上,我们可以先让这几个脚为高电平,当有键按下时某个被按下的按键所连接到的MCU引脚就变成了低电平,在编程时我们不论是采用哪种方法都很容易的判别出来。这里就不列出源程序了距阵键盘就要复杂得多了1),原理图分析:原理附图(5.2)上的上面16个按键,每4个列连在了P30、P31、P32、P33和每4个行连在了P34、P35、P36、P37上2)编程思路:由P30-P33送出扫描信号,而由P34-P37读取按键数据返回代码,具体如下:以程序扫描的方式来检查那一按键被按下,一次扫描一行4个按键,扫描的顺序如下:送出扫描信号1110以扫描第一行的4个按键,读取按键数据,判

26、断该行是否有键按下,如有则连接被按下的该键返回线为0;送出扫描信号1101以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;送出扫描信号1011以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;送出扫描信号0111以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;回到步凑a,继续做按键扫描。列出键盘扫描子程序:ucharKeyboard()/扫描子函数uchari,j,pc;for(i=0;i4|0 xf0;/假如说有按键按下for(j=0;j4;j+)/将扫描值

27、与扫描按键值比较if(keyboard_Scanj=pc)in=i+j*4;/计算按键值while(keyboard_Scani!=P3)/松手检测P3=keyboard_Scani;将扫描后的值返回MCUreturnin;/返回按键值以上的程序在实列测试程序中(列子)中加入另外一些代码,就可以通过按下某个按键后让这个值在LED上显示出来6)、步进电机步进电机的实物见附图(6.1)附图(6.1)附图(6.1)是本开发板选配的高精度2(4)相5(6)线制步进电机,全新(30元)八成新(8元)。步进电机内部原理图见附图(6.2)附图(6.2)附图(6.2)为一个两相步进电机的内部原理图,这和附图(

28、6.1)的电机是一样的。附图(6.3)为开发板步进电机连线原理图附图(6.3)附图(6.4)为开发板步进电机连线实物图附图(6.4)附图(6.4)为步进电机驱动芯片ULN2003内部方框图B步进电机概述步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转

29、过一定的角度(称为步距角)。正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。C、步进电机的特性步进电机转动使用的是脉冲信号,而脉冲是数字信号,这恰是计算机所擅长处理的数据类型。从20世纪80年代开始开发出了专用的IC驱动电路,今天,在打印机、磁盘器等的OA装置的位置控制中,步进电机都是不可缺少的组成部分之一。总体上说,步进电机有如下优点:1不需要反馈,控制简单。2与微机的连接、速度控制(启动、停止和反转)及驱动电路的设计比较

30、简单。3没有角累积误差。4停止时也可保持转距。5没有转向器等机械部分,不需要保养,故造价较低。6即使没有传感器,也能精确定位。7根椐给定的脉冲周期,能够以任意速度转动。但是,这种电机也有自身的缺点。8难以获得较大的转矩9、不宜用作高速转动10在体积重量方面没有优势,能源利用率低。11超过负载时会破坏同步,低速工作时会发出振动和噪声。D、步进电机的种类目前常用的步进电机有三类:1、反应式步进电动机(VR)。采用高导磁材料构成齿状转子和定子,其结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。2、永磁式步进电动机(PM)。转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。用转子和

31、定子之间的吸引和排斥力产生转动,转动步的角度一般是7.50。它的出力大,动态性能好;但步距角一般比较大。3、混合步进电动机(HB)。这是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构。此类电机综合了反应式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机,在计算机相关的设备中多用此类电机。E、步进电机的工作原理现以反应式三相步进电机为例说明其工作原理。三相步进电机的定子铁心上有六个形状相同的大齿,相邻两个大齿之间的夹角为60度。每个大齿上都套有一个线圈,径向相对的两个线圈串联起来成为一相绕组。各个大齿的内表面上又有若干个均匀分布的小齿。转子

32、是一个圆柱形铁心,外表面上圆周方向均匀的布满了小齿。转子小齿的齿距是和定子相同的。设计时应使转子齿数能被二整除。但某一相绕组通电,而转子可自由旋转时,该相两个大齿下的各个小齿将吸引相近的转子小齿,使电动机转动到转子小齿与该相定子小齿对齐的位置,而其它两相的各个大齿下的小齿必定和转子的小齿分别错开正负1/3的齿距,形成“齿错位”,从而形成电磁引力使电动机连续的转动下去。和反应式步进电动机不同,永磁式步进电动机的绕组电流要求正,反向流动,故驱动电路一般要做成双极性驱动。混合式步进电动机的绕组电流也要求正,反向流动,故驱动电路通常也要做成双极性。E.1、步进电机的励磁方式步进电机有2相、4相和5相电

33、机。在4相电机中有4组线圈,若电流按顺序通过线圈则使电机产生转动。2相电机中有2组线圈。从图9.3可以发现,在各线圈中引出中间端子,因此若以中间端子为基准即可实现4相,称这4为A、B、C、D的励磁相。本实验使用的就是这种方式的4相电机,而励磁方式中有1相(单向)励磁、2相(双向)励磁和12相(单双向)励磁方式。此外,如果转动的方向不正确,可以交替1、2端子或3、4号端子(1).1相励磁方式按ABCD的顺序总是仅有一个励磁相有电流通过,因此,对应1个脉冲信号电机只会转动一步,这使电机只能产生很小的转矩并会产生振动,故很少使用。ABCDT11000T20100T30010T40001表2.T1T4

34、表示脉冲周期;ABCD表示电机的各相,1表示此时有一个脉冲,0表示没有(2).2相励磁方式按AB、BC、CD、DA的方式总是只有2相励磁,通过的电流是1相励磁时通过电流的2倍,转矩也是1相励磁的2倍。此时电机的振动较小且应答频率升高,目前仍广泛使用此种方式。ABCDT11100T20110T30011T41001表3.T1T4表示脉冲周期;ABCD表示电机的各相,1表示此时有一个脉冲,0表示没有脉冲(3).12相励磁方式即实验中所有的励磁方式,它按A、AB、B、BC、C、CD、D、DA的顺序交替进行线圈的励磁。与前述的2个线圈励磁方式相比,电机的转速是原来的1/2,应答频率范围变为原来的2倍。

35、转子以滑动的方式转动。ABCDT11000T21100T30100T40110T50010T60011T70001T81001表4.T1T8表示脉冲周期;ABCD表示电机的各相,1表示此时有一个脉冲,0表示没有脉冲结合以上所诉我们可知:1、本开发板实用连接4/2相5/6线制的高精度步进电机,当然也可连接5线以下的低精度电机或者是普通直流电机,但电机功率不能选择太大;2、电机通过ULN步进电机驱动芯片连接在MCU的P1.0-1.3口,且从ULN2003内部框图可看见:此芯片除了具有驱动的功能外还实现的信号反向的功能;3、我们要在本开发板上编写程序控制步进电机,首先得将步进电机连接在开发板的步进电

36、机接口上,开发板驱动电压为5V;7)、DS1302实时时钟在很多单片机系统中都要求带有实时时钟电路,如最常见的数字钟、钟控设备、数据记录仪表,这些仪表往往需要采集带时标的数据,同时一般它们也会有一些需要保存起来的重要数据,有了这些数据,便于用户后期对数据进行观察、分析。本小节就介绍市面上常见的时钟芯片DS1302的应用。DS1302是美国DALLAS公司推出的一款高性能、低功耗、带内部RAM的实时时钟芯片(RTC),也就是一种能够为单片机系统提供日期和时间的芯片。通过本小节的学习,我们将会把RTC相关的一些技术粗略介绍一下,然后介绍DS1302与单片机之间的软硬件应用。DS1302时钟芯片简介

37、DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。DS1302在本开发板中连接的原理图见附图(7-1)

38、附图(7-1)DS1302在本开发板中的具体位置见附图(7-2)附图(7-2)我们提供的实列源代码效果是:1、在数码管上显示时间为10点59分50秒;2、可以直观观察到时间的走动,10秒钟后时间为11点00分00秒DS1302的内部结构DS1302的外部引脚功能说明见附图(7-3)所示:(7-3)DS1302封装图X1,X232.768kHz晶振引脚GND地RST复位I/O数据输入/输出SCLK串行时钟VCC1电池引脚VCC2主电源引脚DS1302的内部结构如附图(7-4)所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一

39、样的,就是对特定的地址进行读写操作。附图(7-4)DS1302的内部结构图DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入的二极管数目,以调节电池充电电压。不过对我们目前而言,最需要熟悉的是和时钟相关部分的功能,对于其它参数请参阅数据手册。DS1302的工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+

40、8位数据),在多字节方式下为8加最多可达248的数据。DS1302的寄存器和控制命令对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表1所示:寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期

41、寄存器1000101年寄存器1000110写保护寄存器1000111慢充电寄存器1001000时钟突发寄存器1011111表1:日历、时钟寄存器与控制字对照表最后一位RD/W为“0”时表示进行写操作,为“1”时表示读操作。DS1302内部寄存器列表如表2所示:寄存器名称命令字取值范围各位内容写读76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240AHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMON

42、TH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR表2:DS14302内部主要寄存器分布表DS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作

43、,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表1所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。物理上,DS1302的通讯接口由3个口线组成,即RST,SCLK,I/O。其中RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序参考图5,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手册里没有明确说

44、明),如果不是特别确定,则把程序设计成这样:平时SCLK保持低电平,在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在SCLK保持为低电平的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。DS1302数据传输图8)AT24C02操作DS1302在本开发板中的具体位置见附图(8-1)附图(8-1)DS1302本开发板中的原理连线见附图(8-2)附图(8-2)8.1IIC总线工作原理I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。起始和终止信号:SCL线为高电平期间,SDA线由高电平向

45、低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。数据传送格式(1)字节传送与应答每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据。AT24C02的芯片地址如下图,1010为固定,A0,A1,A2正好与芯片的1,2,3引角对应,为当前电路中的地址选择线,三根线可选择8个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,TX-1B实验板上三根地址线都为0。最后一位R/W为告诉从机下

46、一字节数据是要读还是写,0为写入,1为读出。AT24C02的芯片地址(0 xa0为写,0 xa1为读)任一地址写入数据格式任一地址读取数据格式参照程序:voidinit()/初始化sda=1;scl=1;delay();voidstart()/开始信号sda=1;delay();scl=1;delay();sda=0;delay();voidstop()/停止信号sda=0;delay();scl=1;delay();sda=1;delay();voidrespons()/应答信号uchari;scl=1;delay();while(sda=1)&(i255)i+;scl=0;delay();

47、voidwrite_byte(uchardate)/写一个字节uchari,temp;temp=date;for(i=0;i8;i+)scl=0;delay();temp=1;sda=CY;delay();scl=1;delay();scl=0;delay();sda=1;delay();ucharread_byte(void)/读一个字节uninti,j;scl=0;delay();sda=1;delay();for(i=0;i8;i+)/*循环8次读出一个字节数据*/scl=1;delay();j=(j1)|sda;scl=0;delay();returnj;voidwrite_add(u

48、charaddress,uchardate)/指定地址写数据start();/*初始信号*/write_byte(0 xa0);/*写入芯片地址0XA0*/respons();/*应答信号*/write_byte(address);/*写入芯片内部寄存器地址ADDRESS*/respons();/*应答信号*/write_byte(date);/*写入数据*/respons();/*应答信号*/stop();/*停止信号*/ucharread_add(ucharaddress)/指定地址读数据uchardate;start();/*初始信号*/write_byte(0 xa0);/*写入芯片地

49、址0XA0*/respons();/*应答信号*/write_byte(address);/*写入芯片内部寄存器地址ADDRESS*/respons();/*应答信号*/start();/*初始信号*/write_byte(0 xa1);/*初始信号*/respons();/*写入芯片地址0XA1(读)*/date=read_byte();/*读出数据*/stop();/*停止信号*/returndate;/*返回读出值*/voidinit_MCU(void)/MCU初始设置TMOD=0 x01;TCON=0 x10;TH0=(65536-500)/256;TL0=(65536-500)%25

50、6;IE=0 x82;以上列出了对AT24C02操作的时序图和子函数,可以对照观察。我们提供的实列源代码效果是:1、在数码管上显示自加的一个数字(0-255循环自加)2、关闭开发板电源,数据存储在AT24C02中,打开电源时,数据从断电瞬间的数据再自加。从而实现断电记忆的功能(如断电数据是199,打开电源时数据从199开始自加)。9)继电器和蜂鸣器继电器和蜂鸣器实物图见附图(9.1)附图(9.1)继电器和蜂鸣器开发板连线原理图见附图(9.2)附图(9.2)此部分硬件电路及原理简单,在这里就只简要说明下:蜂鸣器和继电器同时通过一个三极管驱动后连接在MCU的P321口上;当控制使P32为低电平后再

51、跳线(J15)连接1、2端向对应的蜂鸣器受控制动作;当控制使P32为低电平后再跳线(J15)连接2、3端向对应的继电器受控制动作;跳线(J19)为继电器输出接口,常开/闭端在开发板上有明显的符号标志。注:在开发板的测试程序显示效果:蜂鸣器唱歌(歌曲名“祝你生日快乐”),使用晶振为11.0592M继电器约每分钟动作(断开/闭和)一次,能听见清脆机械动作声音10)单总线温度传感器DS18B20和SM0038红外接收头DS18B20和SM0038实物图见附图(10.1)附图(10.1)DS18B20和SM0038开发板连线原理图见附图(10.2)附图(10.2)注:安装时,接收头和传感器园头方向应向

52、右10-1)红外接收红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。红外线是太阳光线中众多不可见光线中的一种,由德国科学家霍胥尔于1800年发现,又称为红外热辐射,他将太阳光用三棱镜分解开,在各种不同颜色的色带位置上放置了温度计,试图测量各种颜色的光的加热效应。结果发现,位于红光外侧的那支温度计升温最快。因此得到结论:太阳光谱中,红光

53、的外侧必定存在看不见的光线,这就是红外线。也可以当作传输之媒界。太阳光谱上红外线的波长大于可见光线,波长为0.751000m。红外线可分为三部分,即近红外线,波长为0.751.50m之间;中红外线,波长为1.506.0m之间;远红外线,波长为6.0l000m之间。真正的红外线夜视仪是光电倍增管成像,与望远镜原理全完不同,白天不能使用,价格昂贵且需电源才能工作。通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。红外发射原理图红外接收原理图一体化红外接收头遥控发射器及其编码遥控发射器专用芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运

54、用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以LC7461组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”上述“0”和“1”组成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户

55、识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码用于核对数据是否接收准确。当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后

56、,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右即可。根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。10-2)单总线温度传感器DS18B20“一线总线”接口的温度传感器具有独特而且经济的特点,是用户可轻松的组建传感器网络,为测量系统的构建引入全新思路。DS18B20可以程序设定9-12位的分辨率,精度为0.5度。更宽的电压适用

57、范围。分辨率还可设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。关于DS18B20的器件介绍我们有专门的一个PDF中文资料,在这里就不在重述了另,我们提供的DS18B20测试程上也有详细的注释说明。注:在开发板上插上温度传感器后(传感器外型圆头向上),即可以在数码管上显示出实时温度。温度测试的实际效果见下图11)串口通信DS18B20和SM0038实物图见附图(11.1)开发板实物图DS18B20和SM0038开发板原理图图见附图(11.2)附图(11.2)串口调试软件界面图见附图(11.3)附图(11.3)注:我们熟悉本开发板的串口通信部分,不但能给MCU下载程序,也可以通过

58、上面的串口调试软件来通过电脑来控制开发板,也可以通过编写程序让开发板来控制电脑,实现开发板与电脑的双向通信。在测试程序中我们提供的源代码再配合串口调试软件就可以实现电脑控制开发板了。具体的效果为:我们在串口调试软件中输入16进制代码,可以让这个代码在开发板上用LED显示出12)ADC0804模拟数字转换ADC0804及其附属电路实物图见附图(12.1)附图(12.1)ADC0804及其附属电路接线原理图见附图(12.2)附图(12.2)从附图(12.2)中可见跳线设置(J18)为ADC0804的输入模拟量的扩展,当不需要外接扩展电路时候,应用跳线将J18的1、2脚短接。所谓A/D转换器就是模拟

59、/数字转换器(ADC),是将输入的模拟信号转换成数字信号。信号输入端可以是传感器或转换器的输出,而ADC的数字信号也可能提供给微处理器,以便广泛地应用ADC0804是8位COMS依次逼近型A/D转换器、三态锁定输出、存取时间135US、分辨率8位、转换时间100US、总误差正负1LSB。ADC0804内部结构图见附图(12.3)附图(12.3)附图(12.3)表示ADC0804的AD转换原理为逐次逼近式ADC0804外部引脚功能图见附图(12.4)附图(12.4)附图(12.5)为ADC0804的启动和转换操作时序图,在时列程序中我们并没有对INTR进行操作,只是等待了一段时间默认为它时间到了

60、,当然这没有运行INTR时能有效的利用ADC0804的快速响应的特性,但是作为一个演示,我们已经展示出了ADC0804的功能和操作方法。附图(12.5)注:在我们提供的测试程序效果为:1、将ADC0804的输入扩展跳线的1、2脚短路设置;2、调节模拟信号输入可调节电位器,使其改变输入的模拟电压,我们可观察数码管的数字变化。13)DAC0832数模转换DAC0832及其附属电路实物图见附图(13.1)附图(13.1)DAC0832及其附属电路接线原理图见附图(13.2)附图(13.2)从附图(13.2)中可见1、跳线设置(J13)为ADC0804的输出模拟量的扩展,当不需要外接扩展电路时候,应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论