




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实验最小板指导手册临沂大学信息学院物联网设备研发中心目 录第1章 开发套件介绍11.1 性能特点1第2章 开发环境构建22.1串口驱动安装与程序下载22.2 安装 keil uvision4软件62.2.1 keil c51 安装62.2.2 keil uvision4示例程序7第3章 基础实验部分11实验一 流水灯点亮实验11实验二 继电器控制实验13实验三 控制数码管实验15实验四 矩阵键盘实验18实验五 蜂鸣器报警实验23实验六 步进电机控制实验27实验七 rs232串口通信30实验八 ds18b20温度采集实验32实验九 ad/ da转换实验40实验十 1602显示实验52实验十一 12864显示实验57无线环境监测实验箱实验指导手册第1章 开发套件介绍xc1020物联网实验开发套件是一款功能强大的物联网和无线传感网络开发设备,它提供了资源丰富的软硬件开发平台和网络监测软件。套件还提供了基于c语言的开发环境、调试器、编译器等工具。完善的硬件、软件及技术支持使得用户可以将该套件广泛应用于工业、科研和教学等领域本套设备采用了nordic 公司的nrf24l01和nrf24le1芯片作为主控接收模块和无线节点模块,采集信息可以通过rs232接口、rs485接口、gprs网络等进行传输和远程监控;所有硬件设计、软件设计全部开源,便于后期产品开发,而用户不需要支付任何其他费用。1.1 性能特点1.硬件参数l stc89c52 8位mcul 12864液晶显示l 1602液晶显示l pcf8591数模/模数转换芯片l 直流步进电机控制l rs232通信接口l ds18b20温度采集l 5v直流继电器控制系统l 5v bell报警系统l 矩阵键盘控制系统2.开发环境l keil uvision4 开发套件l stc-isp下载工具3.典型应用:l mcu 原理应用实验l 传感器实验l 红外报警4.配件清单l 主控系统主板1l 液晶显示屏2l 12v电源1l 5v电源1l usb线1l rs232线1l usb转串口线1第2章 开发环境构建串口驱动程序安装软件位于光盘根目录串口驱动文件夹下。2.1串口驱动安装与程序下载1.串口驱动安装图2.1 发现新硬件向导usb转串口线插入电脑后会提示如上图2.1找到新硬件向导的信息,点击“取消”按钮。图2.2 串口驱动文件夹手动打开串口驱动程序文件夹(见图2.2),双击ch34ser文件安装驱动,点击“install”安装,成功后点击“完成”(见图2.3),重新启动电脑即可完成串口安装。如果更换一个新的usb口会出现同样的硬件安装对话框,请点击安装重复以上步骤即可。图 2.3 安装完成右键点击桌面上“我的电脑”图标,点击“管理”选项,打开“计算机管理”选项卡,如图2.4所示,点击左侧的“设备管理器选项”,然后点击右侧的“端口”选项,显示虚拟串口标号,如图2.5所示。图2.4 计算机管理选项卡图2.5 usb串口显示2.程序下载 双击桌面上串口助手快捷图标,如图2.6所示,打开串口下载软件,如图2.7所示,在步骤1中“mcu type”下拉菜单下选择mcu的类型,此处选择“stc89c5x、rd+”系列的“stc89c52rc”;在步骤2 点击“打开程序文件”按钮,找到mcu运行的“hex”文件所在的文件夹,打开该“hex”文件;在步骤3的com下拉菜单中找到安装的串口标号,此处选择“com7”,各个usb口的串口标号不同,具体标号按照图2.5所示查询;步骤4的选项选择默认;点击步骤5的“down/下载”按钮,如图2.8所示,关掉开发板电源,然后稍等片刻打开电源,等待下载完成即可。图2.6 串口助手图标图2.7 串口下载软件图2.8 开发板上电以上步骤中,第5步的操作顺序非常重要,冷启动:即电源完全关掉,然后重新上电。2.2 安装 keil uvision4软件2.2.1 keil c51 安装双击光盘中开发板光盘资料各种配套软件keil c51完全破解版setup文件夹中setup.exe可执行安装文件,出现如图2.9的界面:图2.9 keil c51 安装界面点击“browse”按钮选择安装路径,我们这里选择 d:keil,点击“next”按钮,出现如图2.10所示信息填写对话框。2.10信息填写对话框输入用户名及e-mail地址,点击“next”按钮进行安装,最后点击“finish”按钮完成安装,如图2.11所示。 图2.11安装完成对话框2.2.2 keil uvision4示例程序1、打开程序: 双击桌面上keil uvision4文件图标(如下图),打开keil uvision4软件。 图2.12 keil uvision4图标2、新建工程:点击“project”菜单选择“new uvision project”选项后填写新建立的工程名后保存到某个文件夹下,如图2.13所示,在弹出的对话框里选择mcu型号(此处我们选stc公司的stc89c52),如图2.14所示,右边description列表框中显示mcu的基本说明,单击“ok”按钮。图2.13 新建工程图2.14 选择mcu型号3、设置工程:右击窗口左侧“target 1”,在弹出的快捷菜单中点击“options for target 1”命令,在弹出的对话框中点击“output”选项卡,在“create hex file”选项前的方框内打勾 (输出hex文件),单击“ok”结束,如图2.15所示。图2.15 target选项卡选中target选项,修改xtal(mhz) 为11.0592如图改为11.05924、新建源程序文件:选“file”下拉菜单中的“new”命令,打开程序编辑窗口输入编辑源程序,然后单击工具栏的“保存”按钮保存文件(汇编源程序:文件名.asm; c源程序:文件名.c)。5、为工程添加源文件: 单击“target 1”前面的+号,展开里面的内容“source group 1”,如图2.16所示;右击“source group 1”,在弹出的快捷菜单中选择“add files to group source group 1”命令,如图2.17所示;选择刚才的文件,文件类型选择“c source file(*.c)”,单击“add”按钮后点击“close”按钮,如图2.18所示。图2.16 target 1展开图图2.17 选择add files to group source group 1 图2.18 添加文件6、编译:点击工具栏“rebuild all target files”源程序进行编译。当程序有语法错误时,会在输出窗口(build output)中显示错误信息和警告信息,修改编译成功后会生成 hex文件,如图2.19所示。图2.19 build output 窗口7、下载、调试:编译成功后,用串口助手将.hex文件下载到单片机内部rom中运行,见图2.7和2.8,在运行过程中若发现错误要重新修改程序,并编译后再下载运行。第3章 基础实验部分基础实验部分主要为熟悉开发环境,掌握mcu及配套模块的控制,以便后续高端物联网网络实验中能够集中精力进行射频控制芯片及无线节点模块的开发。基础实验部分包含以下实验项目。实验一 流水灯点亮实验一、实验目的1、熟悉keil uvision4开发环境2、掌握软件程序开发流程3、掌握led工作原理及封装模型4、掌握led显示控制二、硬件设计1、led工作原理及封装模型发光二极管具有单向导电性,通过5ma左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在320ma之间,当发光二极管发光时,测量它两端电压约为1.7v,这个电压又叫做发光二极管的“导通压降”;为了限制通过发光二极管的电流不要太大,通常给发光二极管加“限流电阻”。图3.1和3.2分别为直插式发光二极管和贴片式发光二极管实物图。发光二极管正极又称为阳极,负极又称为阴极,电流只能从阳极流向阴极。直插式发光二极管长脚为阳极,短脚为阴极;贴片式发光二极管有彩色标记的一端为阴极。 图3.1直插式发光二极管 图3.2贴片式发光二极管2、主控系统主板led设计原理图3.3 mcu控制led灯图3.3为mcu控制led灯亮或灭的原理图,其中jp1为10k 欧姆的排阻,p1为插针接口,用于连接需要使用的 io 口,此处我们连接p1口。要控制某个发光二极管,也就是控制mcu的p1口某一位,当p1口的某一位为低电平时,其控制的led亮,当p1口的某一位为高电平时,其控制的led灭。烧录代码,关闭开发板电源,然后将单片机的p1口与开发板的八个插针p1连接,打开开发板电源。可观察到八个led灯依次循环点亮。用户可以编写程序实现不同频率的闪烁多个led灯。三、参考程序/*/*rfid_mcu单片机开发系统演示程序 流水灯实验 */*mcu:stc89c52rc ,晶体频率:11.0592mhz */* 时间: 2013/09/16 */#include #include /内含_crol_(k,1)循环左移1位函数unsigned char i,j,k,l;sbit cs=p25;void delay100ms()for(i=0;i10;+i)for(j=0;j100;+j)for(k=0;k255;+k);void main()cs=1;l=0xfe;while(1)p1=l;delay100ms();l=_crol_(l,1); 实验二 继电器控制实验一、实验目的1、理解继电器的工作原理和特点2、掌握得用单片机的io口控制继电器的方法3、掌握延时子程序的使用4、了解弱电控制强电的方法二、硬件设计1、电磁继电器的工作原理电磁继电器是有触点电磁电器的一种,一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的,示意图如图3.4所示。图3.4 电磁继电器示意图在各种自动控制设备中,都要求用一个低压电路控制一个高压的电气电路。这样不仅可以为电子线路和电气电路提供良好的电隔离,还可以保护电子电路和人员安全,而电磁继电器一般有两股电路,低压控制电路和高压工作电路。它利用电磁效应实现电路开、关控制作用,很好地实现了低压控制高压这一功能。2、主控系统板继电器的设计图3.5 mcu控制继电器当mcu的p1.6输出0时,电磁继电器吸合,p1.6输出1时,电磁继电器释放。在电磁继电器驱动电路中,三极管是很重要的一个元件,它有两个作用,一个是放大作用,一个是开关作用。其次,稳压二极管也有着重要作用,它是用于保护三极管的,当继电器处于吸合状态时,稳压二极管截止,不会对电路产生影响。当继电器释放时,由于继电器线圈存在电感,会产生很强的感应电压,该感应电压的正极加在三极管上。如果电压过大,就有可能使处于截止状态的三极管损坏。加入二稳压极管后,当感应电压出现时,将使稳压二极管导通,所以不会产生过高的的感应电压,保护了三极管。烧录代码,用户不用接线。可以控制继电器相隔一段时间开关状态互换。用户可以编写程序实现不同时间段的开关状态转换。三、参考程序/*/*rfid_mcu开发系统演示程序 继电器控制演示实验 */*mcu:stc89c52rc ,晶体频率:11.0592mhz */* 时间: 2012/12/01 */*/#include sbit jdq=p16;unsigned char i,j,k;/*延时函数*/void delay100ms()for(i=0;i10;+i)for(j=0;j100;+j)for(k=0;k225;+k);/*主函数*/void main()while(1)jdq=0;delay100ms();jdq=1; delay100ms();实验三 控制数码管实验一、实验目的1、掌握数码管显示原理2、掌握锁存器原理及应用二、硬件连接原理1、数码管两种接法我们最常用的是七段式和八段式led数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小led发光二极管,通过控制不同的led的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个led的阴极连在一起,让其接地,这样给任何一个led的另一端高电平,它便能点亮。而共阳极就是将八个led的阳极连在一起。其原理图如图3.6所示。abcdeggndfdpgndabcefgddpabcdefgdpdpgfedcba5v(a)引脚图(b)共阴极(c)共阳极图3.6 数码管原理图2、共阴极数码管编码 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 2 3 4 5 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 a b 0x39 , 0x5e , 0x79 , 0x71 , 0x00 c d e f 无显示请思考共阳极数码管的编码。3、主控系统板数码管的硬件连接图3.7 数码管的硬件连接该硬件连接使用了两个74hc573锁存器用来控制数码管的位选则和段选择控制。74hc573锁存器的引脚图和真值表如下所示,当为高电平时,无论le与d端为何种电平状态,其输出都为高阻态,此时锁存器处于不可控状态,为避免此种情况,设计电路时 图3.8 74hc573引脚 表3.1 74hc573真值表必须将锁存器的端接低电平,当le为h时,d与q同为h或l,而当le为l时,无论d为何种状态,q都保持上一次的数据状态,因此我们将锁存器的le端与mcu的某一引脚相连,便可通过控制锁存器的le端与所存器的数据输入端d来改变锁存器的数据输出端的数据状态。本系统板数码管的硬件连接采用u1元件74hc573锁存器控制数码管的a,b,c,d,e,f,g引脚的数据输入;用u2元件74hc573锁存器控制数码管的位选端wm1,wm2,wm3,wm4,wm5,wm6,wm7,wm8,u1和u2都和mcu的p0口相连,两个所存器的锁存端分别通过mcu的p2口的p26和p27控制。如果想让第一个数码管显示数字,此时只打开第一个数码管的位选wm1,操作时我们先给u2锁存器的端le一个高电平,然后将数据从mcu的p1口直接送出到u2的数据输出端,然后关闭u2锁存端,此时p0口输出数据位0xfe,位选确定后,再确定段选,所以接着用操作u2一样的方法操作u1。烧录代码,用户不用接线。可以实现四个数码管显示0,四个数码管显示8。用户可以编写程序实现数码管扫描显示。三、参考程序/*/*rfid_mcu单片机开发系统演示程序 4位共阴极数码管显示检验 */*验证4位共阴极数码管显示是否正确,锁存器为74hc5738位锁存器 */*锁存器在控制信号为高电平时将输入信号锁存 */*mcu:stc89c52rc ,晶体频率:11.0592mhz */* 时间: 2012/12/01 */*/#include #define uint unsigned int#define uchar unsigned charsbit datacs=p26;sbit chipcs=p27;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x07,0x39,0x5e,0x79,0x71;void delay(uchar ms)uchar i,j;for(i=ms;i0;i-)for(j=110;j0;j-);void main()uchar num;while(1)for(num=0;num255;num+)datacs=0;chipcs=0;p0=0x3f; /数码管选显示0datacs=1; /打开段选芯片的使能datacs=0; /关闭段选芯片的使能p0=0xf0; /数码管位选 在前四个数码管显示chipcs=1; /打开位选芯片的使能chipcs=0; /关闭位选芯片的使能delay(5);p0=0x7f;datacs=1;datacs=0; p0=0x0f;chipcs=1; chipcs=0; delay(5);实验四 矩阵键盘实验一、实验目的1、掌握非编码键盘的工作原理和键盘的扫描方式2、掌握键盘的去抖方法和键盘应用程序的设计二、硬件连接原理1、矩阵式键盘扫描原理在矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5v上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这一点是识别矩阵按键是否被按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。扫描方式是利用cpu完成其他工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,cpu不再响应键输入要求,直到cpu重新扫描键盘为止。键盘扫描程序一般应包括以下内容: (1)判别有无键按下。 (2)键盘扫描取得闭合键的行、列值。 (3)用计算法或查表法得到键值。 (4)判断闭合键是否释放,如没释放则继续等待。 (5)将闭合键键号保存,同时转去执行该闭合键的功能。 2、去抖概念:按键是机械器件,按下或者松开时有固定的机械抖动,抖动图如图3.28所示。图3.28 按键被按下时的电压变化图3.28看出按键按下和松开的瞬间出现机械抖动,这个抖动时间虽然很短,一般1015ms,不同按键抖动不同,但对应单片机来说,很轻松就能检测到,单片机是us 级别。但这个结果并不是我们需要的,实际上只进行一次按键操作,但有可能执行了多次按键结果,这就是抖动造成的,所以大多数产品实际使用中都使用了按键去抖功能。按键去抖分为硬件去抖和软件去抖,硬件去抖最简单的就是按键 2 端并联电容,容量根据实验而定。软件去抖使用方便不增加硬件成本,容易调试,所以现在大都使用软件去抖。软件去抖原理:(1) 检测到按键按下后进行 1015ms 延时,用于跳过这个抖动区域(2) 延时后再检测按键状态,如果没有按下表明是抖动或者干扰造成,如果仍旧按下,可以认为是真正的按下。并进行对应的操作。(3) 同样按键释放后也要进行去抖延时,延时后检测按键是否真正释放。程序样例中没有使用按键释放去抖程序,用户可以参考按下去抖程序自行添加。多数时候按键需要在释放时才起作用,像电脑鼠标一样,这个时候需要检测按键是否释放,如果没有释放则一直等待。3、主控系统板矩阵键盘的硬件连接图3.29 矩阵键盘原理图烧录代码,用户不用接线。可以实现按键值在数码管显示。用户可以编写程序实现按键控制继电器的开关。三、参考程序/*/*rfid_mcu单片机开发系统演示程序 键盘矩阵检测 */* 按键不同,数码管显示不同的数字 */*横着:p3.0 p3.1 p3.5 p3.4 竖着:p1.7 p1.6 p3.6 p3.7 */*mcu:stc89c52rc ,晶体频率:11.0592mhz */* 时间: 2012/12/01 */*/#include sbit datacs=p26;sbit chipcs=p27;unsigned char i=100;unsigned char j,k,temp,key;sbit row1=p20; /行端口定义sbit row2=p21;sbit row3=p35;sbit row4=p34;sbit col1=p17; /列端口定义sbit col2=p16;sbit col3=p36;sbit col4=p37;/*延时函数*/void delay(unsigned char i) for(j=i;j0;j-) for(k=125;k0;k-);unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共阴数码管显示段码09/*数码管显示函数*/void display(unsigned char num) p0=tablenum; /p1=0xff; datacs=1; datacs=0; p0=0x00; chipcs=1; chipcs=0;/*按键扫描函数*/void keyscan(void) /p3=0x00;col1=0;col2=1;col3=1;col4=1;temp=p3;temp=temp&0x3f; if(col1=0) /假设第一列有按键if(temp!=0x3f) /没有按键退出这次对第一列键盘扫描temp=p3;switch(temp)case 0xfe: key=0; break; /0键被按下时导通,则对应端口变为低电平 case 0xfd:key=1;break; case 0xdf:key=2;break; case 0xef:key=3;break;col1=1;col2=0;col3=1;col4=1;temp=p3;temp=temp&0x3f;if(col2=0)if(temp!=0x3f)temp=p3;switch(temp)case 0xfe:key=4;break; case 0xfd:key=5;break; case 0xdf:key=6;break; case 0xef:key=7;break;col1=1;col2=1;col3=0;col4=1;temp=p3;temp=temp&0x3f;if(temp!=0x3f)temp=p3;switch(temp)case 0xbe:key=8;break; case 0xbd:key=9;break; case 0x9f:key=10;break; case 0xaf:key=11;break;col1=1;col2=1;col3=1;col4=0;temp=p3;temp=temp&0x3f;if(temp!=0x3f)temp=p3;switch(temp)case 0x7e:key=12;break; case 0x7d: key=13;break; case 0x5f:key=14;break; case 0x6f:key=15;break;void main() datacs=0; chipcs=0; / p1=0xff; while(1) p3=0xff; keyscan();display(key); 实验五 蜂鸣器报警实验一、实验目的1、学习蜂鸣器的基础知识2、掌握用i/o驱动中等电流负载的正确方法3、掌握中断处理程序的编写方法二、硬件连接原理1、蜂鸣器原理蜂鸣器是常见的电子讯响器件,与扬声器相比,明显优势是体积很小,但缺点是低频响应很差,一般不能很好地产生200hz以下的低频声音。按制造工艺,蜂鸣器可分为电磁式、压电式等。按功能,蜂鸣器分为有源和无源两大类,也称做直流蜂鸣器和交流蜂鸣器。对直流蜂鸣器,只要加上正向电源(可能需要限流电阻)就能发出一定频率的响声,操作简单,但是只有响与不响两种状态。而交流蜂鸣器需要输入有一定驱动能力的交流信号才能发声,发声频率即交流信号的频率,因此能够发出各种不同音调的响声,可用来演奏简单乐曲。蜂鸣器在正常工作时,一般需要数十毫安的驱动电流,这大大超过了stc8052的i/o承受能力。对这种中等电流负载的驱动方法,一般可采用晶体管。2、中断控制原理外部中断的初始化设置共有三项内容:中断总允许即ea=1,外部中断允许即exi=1(i=0或1),中断触发方式设置。中断触发方式设置一般有两种方式:电平触发方式和脉冲(边沿)触发方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚int0(p3.2)和int1(p3.3)引入,本实验由int0(p3.2)引入。中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:tcon、ie、scon及ip。3、主控系统板蜂鸣器的硬件连接图3.23蜂鸣器原理图烧录代码,用户不用接线。可以听见蜂鸣器产生的音乐旋律。用户可以自己编写程序实现有按键时蜂鸣器发出响声。三、参考程序/*/*rfid_mcu单片机开发系统演示程序蜂鸣器控制演示实验 */*mcu:stc89c52rc ,晶体频率:11.0592mhz */* 时间: 2012/12/01 */*/ /*/#include reg52.hunsigned char count;sbit _speak =p32 ;/讯响器控制脚unsigned char code song = /祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00, /路边的野华不要采0x30,0x1c,0x10,0x20,0x40,0x1c,0x10,0x18,0x10,0x20,0x10,0x1c,0x10,0x18,0x40,0x1c,0x20,0x20,0x20,0x1c,0x20,0x18,0x20,0x20,0x80,0xff,0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xff,0x20,0x20,0x1c,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x20,0x1c,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1c,0x10,0x20,0x10,0x1c,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x15,0x1f,0x05,0x20,0x10,0x1c,0x10,0x20,0x20,0x26,0x20,0x2b,0x20,0x30,0x20,0x2b,0x40,0x20,0x30,0x1c,0x10,0x18,0x20,0x15,0x20,0x1c,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2b,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1c,0x10,0x18,0x40,0x1c,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x13,0x40,0x18,0x80,0x00,;void time0_init()tmod = 0x01;ie = 0x82;th0 = 0xd8;tl0 = 0xef;/12mz晶振,10msvoid time0_int() interrupt 1th0 = 0xd8;tl0 = 0xef;count+;/长度加1/*-功能:1ms延时子程序-*/void delay_xms(unsigned int x) unsigned int i,j; for( i =0;i x;i+ ) for( j =0;j3;j+ ); /*-功能:歌曲播放子程序i为播放哪一段曲目-*/void play_song(unsigned char i)unsigned char temp1,temp2;unsigned int addr;count = 0;/中断计数器清0addr = i * 217;while(1)temp1 = songaddr+; if ( temp1 = 0xff ) /休止符 tr0 = 0; delay_xms(100); else if ( temp1 = 0x00 ) /歌曲结束符 return; else temp2 = songaddr+; tr0 = 1; while(1) _speak = _speak; delay_xms(temp1); if ( temp2 = count ) count = 0; break; /*-功能:主程序-*/void main()time0_init();/定时器0中断初始化while(1)play_song(0);/播放实验六 步进电机控制实验一、实验目的1、掌握步进电机的运行原理和控制方法2、掌握mcu控制步进电机正反转动的编程方法二、硬件连接原理1、工作原理步进电机是工业控制及仪表中常用的控制元件之一。它可以直接受数字信号控制,它具有快速启停、精确步进及定位的特点。因而在数控设备、打印机、绘图仪以及其它需要紧密定位的设备上使用。(1)结构: 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。 0、1/3、2/3,(相邻两转子齿轴线间的距离为齿距以表示),即a与齿1相对齐,b与齿2向右错开1/3,c与齿3向右错开2/3,a与齿5相对齐。(2)旋转: 如a相通电,b,c相不通电时,由于磁场作用,齿1与a对齐,(转子不受任何力以下均同)。 如b相通电,a,c相不通电时,齿2应与b对齐,此时转子向右移过1/3,此时齿3与c偏移为1/3,齿4与a偏移(-1/3)=2/3。如a相通电,b,c相不通电,齿4与a对齐,转子又向右移过1/3 这样经过a、b、c、a分别通电状态,齿4(即齿1前一齿)移到a相,电机转子向右转过一个齿距,如果不断地按a,b,c,a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论