温控步进电机的实现

上传人:pu****.1 文档编号:466288445 上传时间:2023-05-27 格式:DOC 页数:8 大小:530KB
返回 下载 相关 举报
温控步进电机的实现_第1页
第1页 / 共8页
温控步进电机的实现_第2页
第2页 / 共8页
温控步进电机的实现_第3页
第3页 / 共8页
温控步进电机的实现_第4页
第4页 / 共8页
温控步进电机的实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《温控步进电机的实现》由会员分享,可在线阅读,更多相关《温控步进电机的实现(8页珍藏版)》请在金锄头文库上搜索。

1、基于Proteus的单片机温控步进电机电路及程序仿真设计一课设目的:1通过本设计,使学生综合运用单片机原理及应用及电子技术等课程的内容,为以后从事基于单片机的检测与控制工作奠定一定的基础。2主要掌握芯片DS18B20、ULN2803等器件的使用,掌握步进电机的使用。3学会用Keil C51语言编写一个完整的程序。4掌握单片机应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。5掌握Proteus软件的应用。二课设内容:采用单片机内部定时器,设计1s定时,每秒检查一次由温度传感器输入的当前温度。设置温度的上限(t2)和下限(t1),假定当前温度为t。由此可知:若

2、tt2,则控制步进电机顺时针旋转;若tt1,则控制步进电机逆时针旋转;若t1tt2,步进电机停止转动。三问题分析及设计思路:由设计要求可知,需要通过由温度传感器采集的温度来控制步进电机的转动,因此可以在源程序中加入相应的语句加以实现。电路原理图的设计思路如下:1单片机P1.0接温度传感器DS18B20,采集外界的当前温度。DS18B20的电源和地线分别接VCC和GND。2单片机P2.0P2.3接74LS04,74LS04的输出接ULN2803,ULN2803的输出通过电阻接步进电机。3设计程序每秒检查一次由温度传感器输入的当前温度,根据设置的温度控制步进电机转动的方向或停止步进电机。四电路原理

3、图:五. 程序流程图: NYYaa=0x25aa=0x20读取数据aa延时电机正转显示温度aa电机反转初始化六实验源程序:#include #define uchar unsigned char#define uint unsigned intuchar code fortab9=0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06,0x00;uchar code revtab9=0x0e,0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x00; int time=500;void disp(uchar cc);void dsend(uchar

4、 bb);void dmsec (unsigned int count);void tmreset (void);void tmpre (void);bit tmrbit (void);unsigned char tmrbyte (void);void tmwbyte (unsigned char dat);void tmstart (void);uchar tmrtemp (void);void dfor(void);void drev(void);rom();/对调用的函数进行初始化定义uchar code temper_tab100=0x00,0x01,0x02,0x03,0x04,0x

5、05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x60,0x61,0x62,0x63,0x64,0x

6、65,0x66,0x67,0x68,0x69,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99; /定义温度范围,0到100度uchar code dis_code10=0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09; /01 2 3 4 5 6 7 8 9sbit TMDAT = P10;/根据

7、实实际情况设定uchar TMP;/读取后温度值存于TMP中,将其除以2即可得出实际温度;uchar f;/结果是否为负温,“0”为正温,“1”为负温。/正转子程序void dfor(void) uchar i; uint j; for(i=0;i=8;i+) P2=fortabi; for(j=0;jtime;j+); /中断服务子程序(反转)void drev(void) /interrupt 1 using 0 uchar i; uint j; for(i=0;i=8;i+) P2=revtabi; for(j=0;j4; dsend(bb); void dsend(uchar bb)

8、uchar i=bb; SBUF=dis_codei; while(TI=0);TI=0;/延时部分/void dmsec (unsigned int count) / /unsigned int i; /while (count) / /i = 115; / while (i0) i-; /count-; / / / 发送复位/void tmreset (void) / /unsigned int i; /TMDAT = 0; /i = 103; /while (i0) i-; / 延时 900 uS(11.0592Mhz时) /TMDAT = 1; /i = 4; /while (i0) i-; / /判断DS1820是否存在的子程序。最好不要用,因为当器件不存在时将会进入死循环/ 等待存在脉冲/void tmpre (void)/判断器件是否存在 / /unsigned int i; /while (TMDAT); /while (TMDAT); /i = 4; while (i0) i-; / / 读一位/bit tmrbit (void) / / unsigned int i; /bit dat; /TMDAT = 0; i+; /TMDAT = 1; i+; i+;/微量延时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号