基于STC15单片机小系统开发实验箱指导书.doc_第1页
基于STC15单片机小系统开发实验箱指导书.doc_第2页
基于STC15单片机小系统开发实验箱指导书.doc_第3页
基于STC15单片机小系统开发实验箱指导书.doc_第4页
基于STC15单片机小系统开发实验箱指导书.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

吉首大学实践教学系列series of practical teaching of jishou university基于stc15单片机小系统板实验指导书主编:硬件设计:stc公司软件设计:stc公司物理机电工程学院实验分组:2012电科分组:分为二组,第一组时间4-18周(双周)星期四56节;第二组时间4-18周(双周)星期四78节;地点总理楼6楼(电梯那边)微机原理实验室。实验分组:2012物理、应物分组:分为二组,第一组时间4-18周(双周)星期五56节;第二组时间4-18周(双周)星期五78节;地点总理楼6楼(电梯那边)微机原理实验室。 第一章 stc单片机系统概述stc单片机系统板是宏晶科技赞助支持建设的,结合吉首大学物理机电工程学院的单片机原理与接口课程教学需要,适用于物理科学与信息工程学院各专业学生的单片机原理与接口课程实验教学,stc单片机系统板,选择目前在单片机应用系统中使用广泛的,具有较大的片上rom和ram的stc15系列单片机为核心,扩展串并显示模块、矩阵键盘、ad模拟采样键盘、双串通信、日历芯片、spi接口的大容量flash存储器,扩展32kb sram存储器、红外收发模块、lcd12864液晶显示模块接口等。stc公司为此开发板提供了详细的库函数,是广大青年学习的首选。实验箱外观图打开方式:双手捏住如上图红圈所示的实验箱的把手处,双手分别向两边用力即可打开实验箱。实验板布局图2.1 实验一 led灯显示控制实验目的1学习并掌握led灯电路与编程控制方法;实验重点和难点1. 熟练掌握keil c51 集成编译环境的使用;2. 熟练掌握stc isp软件的使用方法;3. 并口的结构及程序设计方法.实验课时2学时实验仪器微型计算机,stc单片机系统实验箱实验原理1led电路原理及参数估算方法图1 led 电路led电路主要包括电阻r52r54,发光二极管led7led10,如果单片机以+5v供电,则电阻r的取值方法如下:p1口为低电平时,电压约为0.3v以下;发光二极管正向导通时的压降(红色为1.7v左右,蓝、绿为2.5v左右);发光二极管正常发光时的电流约为120ma;因此限流电阻较大可取r(5v-0.3v-1.7v)/(0.001a)3k左右.2. keil c51软件的基本使用方法(1)启动keil c51集成编译环境,并新建项目选择项目文件的保存路径,并输入项目名led。选择所采用的微处理器,这里可选择与stc89c52兼容的at89c52。系统会提示是否拷贝初始化系统的启动代码,选择不拷贝。单击新建一个文本文件,输入源程序,并存盘为led.c如果没有看到项目工作区可以单击显示项目工作区,右击项目工作区的source group,将源程序添加入项目。单击重新编译项目,如果有错,将会提示如下,修改到没有错误为止。右击项目工作区的target1,进入设置目标选项。一定要将create hex file选项选中:再执行重新编译即可生成可下载到单片机上的二进制文件了,该文件存放在项目所在路径,主文件名与项目名同名。3. stc-isp的使用方法启动stc_isp程序,将出现以下界面,根据提示进行操作即可。正确下载后显示:4.硬件连接:将pc的usb口与单片机的usb/micro-usb口用2-3交换的db9线连接起来,通过pc的usb口,给单片机系统供电。5.编程原理:5.1、配置端口5.2 流程图:(开始)-(配置io口的工作方式初始化)-主循环:关所有led灯,延时500ms;开第一只led灯,延时500ms;开第二只led灯,延时500ms;开第三只led灯,延时500ms;开第四只led灯,延时500ms;重复上述。实验内容与步骤1熟悉keil c51编译环境2. 练习stc-isp下载程序 3. 修改源程序,以其它不同的方式显示跑马灯,并将程序写入到实验报告中。本实验注意事项1第一次实验,请仔细按照指导书操作,以免出现莫名其妙的错误2. 请老师检查实验结果。实验报告整理数据、记录实验现象、源程序等并写入实验报告,交纸质文档。附实验参考程序572.2 实验二 七段数码管显示仿真实验目的1学习并掌握七段数码管电路与编程控制方法;实验重点和难点1. 进一步掌握keil c51 集成编译环境的使用;2. 七段数码管的电路结构及程序设计方法.3. 掌握使用protues软件进行仿真的方法。实验课时2学时实验仪器微型计算机,stc单片机系统实验箱实验原理1七段数码管的结构与原理四位七段数码管外形及内部原理结构如下图所示:可分为共阳极与共阴极两种类型,二者的字形码是按位取反的关系,在电路结构上,二者应用时是有区别的,其驱动电路不同。下图为共阴七段数码管电路:字形码从p0口送出,位选从p2口(p2.4p2.7),共阴端采用pnp管加的驱动电路,用排阻约470*8上拉到vcc。排阻的取值可参考实验一的计算方法。如果采用共阳极七段数码管,应该采用如下的驱动电路:本实验系统采用的是共阴极七段数码管。2字形码字形0,1,2,3.。9,a,b,c,d,e,f分别对应十六进制值:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;小数点对应0x80位。3基本程序显示一个数字参数说明:zf需要显示的字符(0-f);zw显示在哪一位上(1-4);dot是否加小数点。void lightseg7(unsigned char zf,unsigned char zw,unsigned char dot) zx_port=0; zx_port=zxzf|dot;switch(zw) case 1:seg7_1=0;seg7_2=1;seg7_3=1;seg7_4=1; delay20ms();break; case 2:seg7_1=1;seg7_2=0;seg7_3=1;seg7_4=1; delay20ms();break; case 3:seg7_1=1;seg7_2=1;seg7_3=0;seg7_4=1; delay20ms();break; case 4:seg7_1=1;seg7_2=1;seg7_3=1;seg7_4=0; delay20ms();break; zx_port=0;4仿真软件prouteus软件的使用内容参考教材单片微机原理与接口技术-基于stc15系列单片机,第46-51页。实验内容与步骤1熟悉keil c51编译环境,编写七段数码管显示子程序和测试程序,要求在四位数码管上显示不同的数字符号,并循环显示。2. 在protues软件中画出实验电路原理图,并仿真出七段数码管显示的数据。并将程序写入到实验报告中。本实验注意事项1请仔细按照指导书操作,以免出现莫名其妙的错误2. 请老师检查实验结果。实验报告整理数据、记录实验现象、源程序等并写入实验报告,交纸质文档。附实验参考程序2.3 实验三 串并扩展七段数码管显示实验实验目的1学习并掌握使用串并扩展输出端口芯片74hc595的工作原理和编程方法;2、进一步掌握七段数码管电路显示电路的设计和编程控制方法;实验重点和难点1. 进一步掌握keil c51 集成编译环境的使用;2. 七段数码管的电路结构及程序设计方法.3. 掌握使用74hc595的编程方法。实验课时2学时实验仪器微型计算机,stc单片机系统实验箱实验原理1.实验箱中串并显示部分原理图:2.编程原理(1)74hc595管脚介绍及逻辑功能表(2)根据上述逻辑真值表编写74hc595的驱动程序/* 向hc595发送一个字节函数 */void send_595(u8 dat)u8i;for(i=0; i8; i+)dat = 8)display_index = 0;/8位结束回0(4)主程序中循环调用显示扫描程序实现显示功能。实验内容与步骤1熟悉keil c51编译环境,修改程序,要求在8个数码管上显示一组电话号码。2.并将程序写入到实验报告中。本实验注意事项1请仔细按照指导书操作,以免出现莫名其妙的错误2. 请老师检查实验结果。实验总结整理数据、记录实验现象、源程序等并写入实验报告,交纸质文档。附实验参考程序2.4 实验四 独立按键处理实验目的1学习并掌握独立按键电路与编程控制方法;2. 进一步掌握串并扩展显示的编程方法实验重点和难点1. 独立按键的电路结构及程序设计方法.实验课时2学时实验仪器微型计算机,stc单片机系统实验箱实验原理1独立按键的结构与原理由于单片机并行口资源有限,并且单片机应用系统力求越小越好,按键的复用也成为一种需求。独立按键电路包括按键(sw17sw18)、串连电阻(r10,r11);按键采用带四个引脚的轻触型按键。软件编程读取按键之前需将连接按键的引脚先置高电平,关闭并行口内部的mos管,然后再读取引脚,才能正确地将按键信号读入内部总线。2基本程序按键扫描unsigned char scankey(void) /0 无键,1,2相应键被按一次 key1=1;key2=1; key_delay(30); if(key1=0) while(key1=0) key_delay(10); return(1); else if(key2=0) while(key2=0) key_delay(10); return(2); return (0); 实验内容与步骤1熟悉keil c51编译环境,编写按键扫描了程序和测试主程序,要求按1键显示的按键次数加1, 按2键显示的按键次数加10。2. 练习stc-isp下载程序 本实验注意事项1请仔细按照指导书操作,以免出现莫名其妙的错误实验报告整理数据、记录实验现象、源程序等并写入实验报告,交纸质文档。附实验参考程序2.5 实验五 外部中断程序设计实验目的1学习并掌握中断系统的结构和外部中断处理程序的编程方法;实验重点和难点1. 进一步掌握keil c51 集成编译环境的使用;2. 中断系统结构.实验课时2学时实验仪器微型计算机,stc单片机系统实验箱实验原理1stc15f2k60s2单片机的中断结构与原理2.外部中断输入引脚连接图。3.中断服务程序的声明。中断函数无参无返回值,使用interrupt n 关键字指明响应哪一个外部事件。n=0为外部中断0,n=2为外部中断1./-/中断服务程序void exint0() interrupt 0 /int0中断入口 p10 = !p10; /将测试口取反 flag = int0; /保存int0口的状态, int0=0(下降沿); int0=1(上升沿)/-/中断服务程序void exint1() interrupt 2 /int1中断入口 p10 = !p10; /将测试口取反 flag = int1; /保存int1口的状态, int1=0(下降沿); int1=1(上升沿)需要改写上述程序,完成实验三中所要求的功能。4.中断初始化。 int0 = 1; it0 = 0; /设置int0的中断类型 (1:仅下降沿 0:上升沿和下降沿) ex0 = 1; /使能int0中断 int1 = 1; it1 = 0; /设置int1的中断类型 (1:仅下降沿 0:上升沿和下降沿) ex1 = 1; /使能int1中断 ea = 1;实验内容与步骤1熟悉keil c51编译环境,编写显示程序和测试主程序,要求按1键显示的按键次数加1, 按2键显示的按键次数加10。2. 练习stc-isp下载程序 本实验注意事项1请仔细按照指导书操作,以免出现莫名其妙的错误实验总结1 附实验参考程序2.6 实验六 定时打铃器的设计实验目的1学习并掌握定时器的编程方法;2.进一步掌握中断系统的结构和编程;实验重点和难点1. 定时器的工作原理及编程方法;实验课时2学时实验仪器微型计算机,stc单片机系统实验箱。实验原理实验内容与步骤1设计并实现秒表的基本功能;本实验注意事项实验报告附实验参考程序2.7 串行通信实验目的(1)掌握串行口工作方式和程序设计方法;(2)了解实现串行通信的硬环境,数据格式的协议,数据交换的协议;(3)了解pc机通信的基本要求和程序设计方法。实验重点和难点(1)串行口工作方式1下的单片机端编程方法;(2)pc端串行通信程序的编程方法。实验课时4学时实验仪器stc单片机实验系统、微型计算机。实验原理串行通信基础串行通信是一种能把二进制数据按位传送的通信,它所需传输线极少,适用于分级、分层和分布式控制系统及远程通信。串行通信可分为异步通信和同步通信。在异步通信中字符帧格式和波特率是两个重要的指标。(1)字符帧 也称为数据帧,由起始位、数据位、奇偶校验位和停止位组成。起始位位于字符帧开头,只占1位,始终为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息;数据位紧跟起始位之后,可取5、6、7或8位,低位在前高位在后;奇偶校验位在数据位之后仅占1位,用于表征串行通信中采用奇校验还是偶校验;停止位位于字符帧末尾,为逻辑1高电平,通常可以取1、1.5或2位。(2)波特率 波特率定义为每秒钟传送的二进制的位数(bps),用于表征数据传输的速度。图81异步通信的字符帧格式同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息,这里的信息帧和异步通信中的字符帧不同,通常含有若干个数据字符。它由同步字符、数据字符和校验字符crc等部分组成。图82同步通信中的字符帧结构串行通信中串行i/o数据的实现方式可以分为两种:软件方式和硬件方式。软件方式中,采用两层循环,外层循环控制发送字符的个数,内层循环控制字符帧的位数,如需要将内部ram20h起,长度为len的数据,按照字符帧格式为11位(1位起始位,7位数据位,1位奇偶校验位和2位停止位)从p1.0引脚串行输出字符帧,实现的示例程序如下:org 0sout:mov r0,#20h;数据块的起始地址送r0next:mov r2,#0bh;字符帧长度送r2clr c;清cymov a,r0;待发送数据送arlc a;起始位送acc.0inc r0;数据块指针指向下一个待传输的数据loop:mov r1,a;发送字符暂存于r1anl a,#01h;屏蔽a中的高7位anl p1,#0feh;清除p1.0orl p1,a;在p1.0上输出串行数据mov a,r1;恢复a中的值acall delay;延时rrc a;准备输出下一位setb c;在cy中形成停止位djnz r2,loop;若一帧未发完,则loopdjnz len,next;若所有字符未发完则nextret;若所有字符已发完,则返回硬件实现方式中采用uart芯片,其硬件框图如图3所示。其工作原理是:当串行发送时,cpu通过数据总线将8位并行数据送到“发送数据缓冲器”,然后并行送给“发送移位寄存器”,在发送时钟和发送电路的控制下通过txd线逐位地发送出去,起始位和停止位是由uart在发送时自动添加上去的,uart发送完一帧后产生中断请求,cpu响应中断后可以把下一个字符送到“发送数据缓冲器”,重复上述过程;当串行接收时,uart监视rxd线,并在检测到rxd线上有一个低电平时就开始一个新的字符接收过程,uart每接收到1位二进制数据位后则使“接收移位寄存器”左移一次,连续接收到一个字符后则并行传送到“接收数据缓冲器”,并通过中断促使cpu从中取走所接收的字符。uart的硬件结构框图如图83所示。图83 uart硬件框图2.mcs51单片机的串行接口mcs51内部含有一个可编程的全双工串行通信接口sio,具有uart的全部功能,该接口电路不仅能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。其电路功能框图如图84所示。在异步通信中,发送和接收都是在发送时钟和接收时钟控制下进行的,发送时钟和接收时钟必须同字符位数的波特率保持一致,它们既可以由主机时钟经分频获得,也可由内部定时器t1或t2的溢出率经16分频后提供。串行口的发送过程源于cpu执行如下一条指令:mov sbuf,a ,当发送电路成功地将这一字节发送出去后,产生一中断请求,cpu清除发送中断标志后,可执行下一条mov sbuf,a指令将下一个数据放入发送缓冲区并发送出去。串行口完成一个字符的接收后,将产生一个中断,cpu可执行mov a,sbuf 将数据读走,并清除接收中断标志。串行控制寄存器scon和pcon负责对串行通信工作方式的配置,同时在方式1和方式3中还需要结合t1定时器完成配置。mcs51对串行口的控制是通过scon实现的,也与电源控制寄存器pcon有关。图85描述了scon和pcon各位的含义。串行口的工作方式和所用的波特率对照表如表81所示。图84 mcs-51串行口发送和接收电路框图 图85 scon和pcon中各位定义3.串行口的通信波特率方式0 的波特率:在方式0 下,串行口的波特率是固定的,其值为fosc/12(fosc为主机晶振频率);方式2的波特率:在方式2下,通信波特率为fosc/32或fosc/64,其选定公式为:波特率(2smod64)fosc方式1或方式3的波特率:在这两种方式下,串行口的波特率是由定时器的溢出率决定的,因而波特率是可变的,相应的公式为:波特率(2smod32)定时器t1的溢出率而 定时器t1的溢出率(fosc/12)(1(2k初值)因此 波特率(2smod32)(fosc/12)(1(2k初值)(式中,k为定时器t1的位数,它和定时器t1的设定方式有关)。基本程序模块中断处理程序void scon_int(void) interrupt 4 using 2 if (ri=1) ri=0; c1=sbuf; dispbufj=c1-0; dispbufj=7; j+; if(j3) j=0; else ti=0; 实验内容和步骤1单片机向pc机发送字符,pc机启动超级终端程序接收所发送的字符;2pc机运行超级终端程序发送数字在单片机系统的seg7上显示;本实验注意事项1.附实验参考程序实验八 数字电子钟设计实验目的1设计具有:时间显示、闹钟提示、秒表计时及日历显示功能的数字电子钟。并都能调整,走时准确,闹钟时间到时蜂鸣器有滴滴声提示,在断电后重启闹钟设置时间不变,日历显示能区分大月份、小月份以及年份是否为闰年时二月份的天数。实验重点和难点1 mcs-51定时器的使用。实验课时4学时实验仪器stc单片机实验系统、微型计算机。实验原理1数字钟硬件结构框图单片机stc15f2k60s2数码管和发光二极管显示isp下载电路晶振复位电路按键电源蜂鸣器图数字钟硬件框架如图所示,晶振给单片机提供时钟频率,电源给单片机提供5v电压,单片机通过isp烧录程序,控制着显示,闹铃提示等部分。2各模块电路原理参考丹萌实验系统原理图,这里不再重复。 3. 数字钟程序流程图开始从eprom中读闹钟时间初始化定时器t2显示时间等待中断发生如图是本设计的主程序,当给单片机充电时,首先从单片机的eprom中读取上一次设置的闹钟时间,然后初始化定时器,显示当前的时间等待中断发生。中断服务子程序的功能:(1)扫描按键,根据set键按键的次数决定修改哪一个时间数据;(2)进入秒表功能;(3)处理闹铃;(4)单位时间计时计数功能。中断发生定时器t2中断服务子程序tf2=0是否到15ms扫描按键ycount%2=0&set=3&miaobiao_open_flag=0?秒表启动y闹钟时间到?y蜂鸣器响一分钟n返回set=0p26按下?yp07亮?y闹钟启动n闹钟关闭p27按下y蜂鸣器声音关set=1set=2set=3set=4set=5进入时间调整,按下p25小时加一,按下p26分钟加一进入闹钟调整,按下p25闹钟小时加一,按下p26闹钟分钟加一走时程序进入秒表计时,按下p25开始计时,按下p26停止计时,按下p27计时清0进入年份显示,按下p25年份加一,按下p26年份减一进入月日显示,按下p25月份加一,按下p26天数加一判断set的值nset=6时间显示结束n4eprom的使用因为本设计要求断电后重起闹钟设置时间不变,所以用到单片机stc89c52rc中的eprom,利用iap技术可实现eprom,内部flash擦写次数为100,000次以上。stc89c52rc系列isp/iap特殊功能寄存器如下:isp_data: isp/iap 操作时的数据寄存器。isp/iap 从flash 读出的数据放在此处,向flash 写的数据也需放在此处。isp_addrh: isp/iap 操作时的地址寄存器高八位。isp_addrl: isp/iap 操作时的地址寄存器低八位。isp_cmd: isp/iap 操作时的命令模式寄存器,须命令触发寄存器触发方可生效。isp_trig: isp/iap 操作时的命令触发寄存器。在ispen(isp_contr.7) = 1 时,对isp_trig 先写入46h,再写入b9h,isp/iap 命令才会生效。isp_contr: isp/iap 控制寄存器,地址在 0e7h 单元。表isp_contr寄存器各位的含义b7b6b5b4b3b2b1b0reset valueispenswrsswrstcmd_fall1wt2wt1wt00000,1000ispen: isp/iap 功能允许位。0:禁止isp/iap 编程改变flash,1:允许编程改变flashswbs: 软件选择从用户主程序区启动(0),还是从isp 程序区启动(1)。swrst: 0: 不操作;1: 产生软件系统复位,硬件自动清零。cmd_fail: 如果送了isp/iap 命令,并对isp_trig 送46h/b9h 触发失败,则为1,需由软件清零。具体实现程序模块如下:/关闭iap功能,把与isp有关的特殊功能寄存器清0void isp_disable(void) isp_contr=0x00;/禁止isp/iap操作 isp_cmd=0x00;/去除isp/iap命令 isp_trig=0x00; /防止isp/iap命令误触发uchar byte_read(uchar data adh,uchar data adl)/字节读 uchar data rddata=0; isp_contr=enable_isp; isp_cmd=0x01;isp_addrh=adh;isp_addrl=adl; isp_trig=0x46; isp_trig=0xb9; nop=nop; rddata=isp_data;isp_disable();return rddata;void sector_erase(void)/擦除扇区 isp_contr=enable_isp; isp_cmd=0x03;isp_addrh=0x20;/扇区地址isp_addrl=0x00; isp_trig=0x46; isp_trig=0xb9; nop=nop;isp_disable();void byte_program(uchar data adh,uchar data adl,uchar data rddata)/字节编程 isp_contr=enable_isp;/打开iap功能,设置flash操作等待时间 isp_cmd=0x02;isp_addrh=adh;isp_addrl=adl;isp_data=rddata; isp_trig=0x46; isp_trig=0xb9; nop=nop;isp_disable();void alarm_read(void)/闹钟时间读程序 uchar data i=0x00;alarm1hour=byte_read(0x20,i+); alarm1minute=byte_read(0x20,i+);void alarm_save(void)/闹钟时间保存程序 uchar data i=0; sector_erase();/擦除扇区,再保存当前改变的闹钟时间设置nop=nop; nop=nop;nop=nop; byte_program(0x20,i+,alarm1hour);byte_program(0x20,i+,alarm1minute);注意事项:1 . 同一次修改的数据放在同一扇区中,不是同一次修改的数据放在另外的扇区, 就不须读出保护。2.如果一个扇区只用一个字节,那就是真正的eprom,stc 单片机的data flash 比外部eprom 要快很多,读一个字节/ 编程一个字节大概是0.2us/60us。3. 如果在一个扇区中存放了大量的数据,某次只需要修改其中的一个字节或一部分字节时,则另外的不需要修改的数据须先读出放在stc 单片机的ram 中,然后擦除整个扇区,再将需要保留的数据和需修改的数据一并写回该扇区中。这时每个扇区使用的字节数是使用的越少越方便(不需读出一大堆需保留数据)。扇区擦除,没有字节擦除,只有扇区擦除,5 1 2 字节/ 扇区, 每个扇区用得越少越方便,如果要对某个扇区进行擦除,而其中有些字节的内容需要保留,则需将其先读到单片机内部的r a m 中保存,再将该扇区擦除,然后将须保留的数据写回该扇区,所以每个扇区中用的字节数越少越好,操作起来越灵活越快.5 定时器t2的使用(1)t2的特殊功能寄存器 89c52比8051增加了一个16位多功能定时器,相应地增加了6个特殊功能寄存器:th2(0cdh)、tl2(0cch)、rcap2h(0cbh)、rcap2l(0cah)、t2mod(0c9h)、t2con(0c8h)。t2主要有3种工作方式:捕捉方式、常数自动再装入方式和串口的波特率发生器方式。th2、tl2组成16位计数器,rcap2h、rcap2l组成一个16位寄存器。在捕捉方式中,当外部输入端t2ex(p1.1)发生负跳变时,将th2、tl2的当前计数值锁存到rcap2h、rcap2l中,在常数自动再装入方式中,rcap2h、rcap2l作为16位计数初值常数寄存器。(2)t2cont2con为t2的状态控制寄存器,其格式如下:tf2exf2rclktclkexen2tr2c/cp/t2的工作方式主要由t2con的d0、d2、d4、d5位控制,对应关系如表4-2所示表3-2定时器t2方式选择rclk+tclkcp/tr2工作方式00116位常数自动再装入方式01116位捕捉方式11串行口波特率发生器方式0停止计数(3) t2mod另外t2还有可编程的时钟输出方式,在16位常数自动再装入方式中可控制为加1技术计数或减1计数。它们由t2mod控制。t2mod为t2的方式寄存器,格式如下:t2oedcent2oe:t2时钟输出允许位,c/t2 =0、t2oe=1,t2(p1.0)输出可编程时钟。dcen:dcen=1时,t2可构成加减计数器。在16位常数自动再装入方式中,若dcen=1,t2ex=1,t2加“1”计数;dcen=1,t2ex=0为减“1”计数。t2初始化程序如下:/系统初始化,用定时器t2void init_time(void) rcap2h=0xee; rcap2l=0x00; tl2=0x00;/5ms定时 th2=0xee; t2con=0x04; t2mod=0x00; et2=1; ea=1;实验内容与步骤1分模块编写数字钟程序,下载并调试。本实验注意事项1 实验总结附实验参考程序3.2 温度采集与传输实验目的1设计一种分布式的温度检测系统,它采用单片机采集温度,通过串口送给现场pc机,同时现场pc机又作为服务器,通过互联网tcp/ip协议传输到远程终端,实现远程监测与远程控制现场温度,并可以绘制实时温度曲线。实验重点和难点1 单片机端的温度数据采集。2 单片机与pc机的串行通信;3. 现场pc与远程pc的通信;4. 温度曲线的描绘。实验课时12 学时实验仪器丹萌单片机实验系统、联想启天2400微型计算机。实验原理1总体结构框图温度采集与传输系统,由pc机visualbasic模块,单片机温度采集模块、串行通信模块3个模块组成,系统总体框图如图2.4所示:图2.4 系统设计总模块图单片机模块将采用at89c52芯片;温度采集模块使用数字温度传感器ds18b20;串行通信模块采用max232芯片;计算机通信则直接借助现有的因特网,实现远程数据的传输。2温度传感器模块本系统采用了ds18b20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。(1) ds18b20的管脚及特点ds18b20可编程温度传感器有3个管脚,gnd为接地线,dq为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。vdd为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.05.5v。本文使用外部电源供电。主要特点有:(1).用户可自设定报警上下限温度值。(2).不需要外部组件,能测量55+125范围内的温度。(3).10+85范围内的精度为0.5。(4).通过编程可实现9l2位的数字读数方式,可在至多750ms内将温度转换成12位的数字,测温分辨率可达0.0625。(5).独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。(2)ds18b20的数据部件64位光刻rom,rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码,每个ds18b20的64位序列号均不相同。温度传感器可完成对温度的测量,其内部包括一个高速暂存ram(便笺式的内部存储器)和一个非易失性的可电擦除的eeprom,后者存放高温和低温触发器th,tl和结构寄存器。便笺存储器包含了9个连续字节(08),前两个字节是测得的温度信息,字节0的内容是温度的低8位,字节1是温度的高8位,字节2是th(温度上限报警),字节3是tl(温度下限报警),字节4是配置寄存器,用于确定输出分辨率9到12位。第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,校验前面所有8个字节的crc码,可用来保证通信正确。非易失性的温度报警触发器th和tl由一个字节的eeprom组成,使用一个存储器功能命令可对th,tl写入。配置寄存器也由一个字节的eeprom组成,使用一个存储器功能命令可对配置寄存器写入。配置寄存器各位的意义如表3.1所示:表3.1 配置寄存器tmr1r011111低五位一直都是1,tm是测试模式位,用于设置ds18b20在工作模式还是测试模式。在ds18b20出厂时该位被设置为0,用户不要去改动。r1,r0用来设置分辨率,如表3.2所示(ds18b20在出厂时被设置为12位)表3.2 ds18b20分辨率设置编码表r1r0分辨率最大转换时间009位98.75ms0110位187.5ms1011位375ms1112位750ms(3) ds18b20电路连接ds18b20电路连接如图3.3所示:图3.3 ds18b20电路连接如图3. 单片机与pc机串口通信模块(1) max232简介max232芯片是maxim公司特别为满足eia/tea232e的标准而设计的。它们在eia/tia232e标准串行通信接口中日益得到广泛的应用,它们具有功耗低、工作电源为单电源,外接电容仅为0.1或1f、采用双列直插封装形式、接收器输出为三态ttl/cmos等优越性,为双组rs2232接收发送器,工作电源为+5v,波特率高,仅需外接0.1f或1f的电容。其价格低,可在一般需要串行通信的系统中使用。(2) max232电路原理图max232电路连接原理图如图3-7所示:图3-7 max232电路连接原理图(3)pc机间通信模块将pc机接入互联网,通过tcp/ip协议,即可轻松实现远程通信.在本设计中,将采用winsock控件,实现数据传送。4. 软件设计(1)软件模块结构图(2)单片机模块流程图单片机初始化后读取当前温度并在液晶上显示出来,开中断,等待上位机请求命令,若为请求读取当前温度,则通过串口传送当前温度值至上位机;若为警戒信号,则控制继电器,启动温控装置。单片机主程序流程图如图4.2所示:(3)串行通信模块将数据采用字符串的形式发送,每次发送的数据块以“$”结尾,即“数据+$”,上位机判断接收到“$”,表示此次数据传送完成。发送数据函数如下:void send_data(void)unsigned char j;for(j=0;jcount;j+)sbuf=bufferj; while(!ti); ti=0;count=0;(4)服务器模块通过vb6.0做出服务器端控制界面如图4.3所示:图4.3 服务器端控制界面(5)远程客户机模块通过vb6.0做出客户端控制界面如图4.4所示:图4-4 客户端控制界面实验内容与步骤1 编写温度传感器模块程序,可参考实验2.8;2 编写串行通信模块程序,可参考实验2.9;3. 编写现场pc机程序,采用vb+mscomm编程;4 编写远程pc机上的程序,采用vb+winsock编程;本实验注意事项1 本实验综合性,调试难度高。实验总结附实验参考程序3.3 智能恒温控制系统实验目的1设计一个利用多台普通空调实现较大空间内的恒温控制,协调各空调的工作时间,达到高效控制和节能的目的。实验重点和难点1 单片机温度采集;2 多机串行通信;3. 空调遥控器解码、编码;4. 功率控制与协调;实验课时12学时实验仪器多台stc单片机实验系统、微型计算机,空调机;实验原理1总体结构图2软件结构图(1)测温终端软件结构(2)遥控器软件结构(3)恒温节能控制器软件结构实验内容与步骤1 分模块进行程序设计,单片机温度采集可参考实验2.8;串行通信可参考实验2.9;空调遥控器解码可参考实验2.5;空调遥控器编码可参考实验2.6;2 进行系统集成与调试安装;本实验注意事项1 本实验实用性强,难度大;实验总结附实验参考程序4.1 直流电机调速仿真实验目的1了解直流电机调速方法2掌握产生pwm波的程序设计 3. 掌握定时中断,外部中断程序的编写实验重点和难点1pwm波产生原理和方法2. 中断的基本原理和程序设计方法实验课时2学时实验仪器丹萌单片机实验系统、联想启天2400微型计算机。实验原理1pwm(脉宽调制)是单片机上常用的模拟量输出方法,通过外接转换电路,可以将占空比不同的脉冲转换成不同的电压,以驱动直流电机转动从而得到不同的转速.可采用此方法实现直流电动机转速控制.2原理图实验内容与步骤1画原理

温馨提示

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

评论

0/150

提交评论