历史上的今天
今天是:2024年12月23日(星期一)
2019年12月23日 | 基于51单片机的温控电机proteus仿真及源程序
2019-12-23 来源:51hei
温控电机项目特别提醒:
用Proteus软件进行电路仿真时,TLC549和AT89C51的电源引脚均隐藏了,在制作电路板时一定要给TLC549的Pin8接+5V,Pin4接地;AT89C51的的Pin40接+5V,Pin20接地。
单片机温控电机源程序如下:
//产生频率为100Hz的PWM
#include #define uchar unsigned char #define uint unsigned int sbit TLC549_SCLK=P1^5; //定义P1.5引脚位名称为TLC549_SCLK sbit TLC549_SDO=P1^3; //定义P1.3引脚位名称为TLC549_SDO sbit TLC549_CS=P1^4; //定义P1.4引脚位名称为TLC549_CS sbit L298_in1=P2^0;//定义P2.0引脚位名称为L298_in1 sbit L298_in2=P2^1;//定义P2.1引脚位名称为L298_in2 sbit L298_ena=P2^2;//定义P2.1引脚位名称为L298_in2 uchar duty=0;//PWM波形的占空比 uchar TLC549_data( )//TLC549的A/D转换程序 { uchar result;//定义result存放A/D转换结果 uchar i=0,j; TLC549_CS=1;//TLC549的CS引脚输出高电平,为A/D转换做准备 TLC549_CS=0; //TLC549的CS引脚输出低电平,开始一个A/D转换周期 result=0;//A/D转换结果清零 TLC549_SDO=1;// 51单片机读数据时得先把管脚置1 for(i=0;i<8;i++) { if(TLC549_SDO==1) result=result|(0x80>>i);// 从高位到低位依次获取A/D转换的结果 TLC549_SCLK=1; TLC549_SCLK=0;//输出TLC549的下降沿,从SDO端送出一位A/D转换结果 for(j=0;j<2;j++);//下降沿产生后,400ns后新的位被写到数据线上,所以需延时 } TLC549_CS=1;//一个周期结束后,TLC549的CS端设置为高电平 return result;//返回A/D转换结果 } void T0_int( ) { TMOD=0x02; //定时器T1工作于方式2 TH0=256-100; //送初值 TL0=256-100; EA=1; //设置总中断允许 ET0=1 ; //设置允许T1中断 TR0=1; //启动定时器T1 } void time1_int(void) interrupt 1 //T1中断服务程序, { static uchar i; i++; if(i==100) i=0; if(i else L298_ena=0; } void main() { uint tt; T0_int(); while(1) { tt=TLC549_data();//读取温度转换的数字量 tt=tt*100/250;//计算温度值,根据LM35的特性,温度每变化1°C对应的输出电压为10mV //LM35输出的信号经过放大电路放大了4.9倍,经过TLC549进行A/D转换得到 //数字量tt。所以由tt可得到温度值=数字量tt/51/4.9*100 if((tt<10)||(tt>50))//温度低于10°C或高于50°C,电机停转 { L298_ena=0; L298_in2=0; L298_in2=0; } else if(tt<=20) { duty=45; L298_in2=0; L298_in1=1; } else if(tt<=30) { duty=100; L298_in2=0; L298_in1=1; } else if(tt<=40) { duty=45; L298_in2=1; L298_in1=0; } else { duty=100; L298_in2=1; ……………………
下一篇:一个波形发生器的单片机课程设计
史海拾趣
|
2006年7月28日 20:46:13 星期五 关于功耗的有效值法测量实验 Measure test for RMS method of power loss 摘 要:本文推导有效值法测 ...… 查看全部问答> |
|
首先谢谢各位大虾! 我现在正用 evc 做一个项目,系统是Wince 4.2 ,用mfc开发,可是有一个程序当我用同一个SDK,当设备为模拟器时,便已无错误,正常运行,可是,当设备为真实的设备时,编译通过无错误,下载到设备上后却无法运行,提示“不是有效 ...… 查看全部问答> |
|
关于keil调试时载入外部hex报err 61或全部是ff问题的解决 先说一下环境,os:Windows 7 professional 32 bit,KEIL MDK-ARM 4.53,烧写程序STMicroelectronics Flash Loader Demonstrator 2.5.0,单片机芯片stm32f103RB。本人大一,正在学习stm32开发。目的是想给一块stm32板重写个程序来驱动数码管显示时间 ...… 查看全部问答> |
|
Debug时,该如何看每个函数的执行时间? (keil MDK中) STM32在debug的时候,keil mdk 右下角t1,会有每个函数执行的时间。 如图: t1会计时,能看到。这个时候,是用的软件仿真。 当用JLINK 调试实际硬件时,“ t1 ”就一 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 11:35 编辑 根据LDC1000的特性,制作了一款车辆检测测试板。使用的处理器是STM32F103,与LDC1000的SPI读写操作正常,LDC1000的时钟有外部晶振提供,晶振频率为8Mhz.。在测量外部线圈的电感时,从LDC1000的寄存器F ...… 查看全部问答> |
|
【TI首届低功耗设计大赛】为msp430fr5969移植命令行nanouif 好吧,我只是折腾了一下下,移植了一个nanouif的命令行,用于人机交互吧,没有液晶,手上的lcd引脚太多,不适合。还有个ft800的板子,功耗也太高,不适合。 uif来源于fsl M0+的基础例程,直接可以从fsl的官网下载,这里就不介绍了, 很自己简单动 ...… 查看全部问答> |




