这个是我大二才学51单片机的时候做的一个项目,其实这个项目比较简单,只不过是我们自己把它想得太难了,下面我来总结一下具体设计过程,我会上传代码和研究报告:点击这里!
首先买一个蓝牙模块,我买的是HC-06,在手机上下载一个蓝牙串口调试助手,等同于单片机的UART串口通信,利用BUFF来获取接受到的数据,这里只需要重视一个问题,就是测试编码,如果APP发送0xFF,(APP蓝牙串口调试助手已经支持手动设置按钮名字和发送的字符了)但是蓝牙模块很有可能接受到的是0xF8,0xF2,0xFE。所以这里我们首先应该测试编码。HC-06一般有5个端口,RX,TX,VCC,GND,AT,AT这里我们没有用到,是指更改密码,默认密码一般是1234或者0000,把VCC和GND接好,然后RX和TX分别和单片机的TX和RX相连接(就是P3^0和P3^1,切记要相反连接),然后我们按照一般的UART串口通信就可以啦,检测接受到BUFF数据,然后switch就可以实现相应的功能。
#include
#define uchar unsigned char
#define uint unsigned int
sbit PWM=P1^0;
sbit DSPORT=P3^7;
void Ds18b20ReadTemp();
void UsartConfiguration();
unsigned int temp=0;
unsigned char zhuanshu=20;
unsigned int cnt=0;
unsigned char receiveData;
unsigned int dingshi=0;
unsigned char min=1;
void main(void)
{
unsigned int i=3000;
UsartConfiguration();
while(1)
{
if(cnt>=3000)
{
cnt=0;
Ds18b20ReadTemp(); //3s检测一次温度
}
switch(receiveData)
{
case 177:ET0=1;zhuanshu=20;receiveData=0;break; // 数字1 风扇启动
case 178:zhuanshu=0;while(i--);ET0=0;receiveData=0;break; //数字2 风扇停止 由于IO口默认高电平 所以要让zhuanshu=0
case 179:zhuanshu=30;break;//数字3 低挡
case 180:zhuanshu=50;break;//数字4 中挡
case 181:zhuanshu=70;break;// 数字5高挡
case 182: // 数字6自动根据温度调节转速
{
if(temp<3200)
{
zhuanshu=25;
}
if((temp>3200)&&(temp<3300))
{
zhuanshu=30;
}
if((temp>3400)&&(temp<3600))
{
zhuanshu=50;
}
if((temp>3200)&&(temp<3300))
{
zhuanshu=60;
}
} break;
case 183: //定时时间数字7
{
static dingshi=0;
if(dingshi>=60000) //1分钟一个基准
{
min--;
dingshi=0;
if(min==0)
{
ET0=0;
zhuanshu=0;
}
}
break;
case 184: receiveData=0;min++;break; //增加时间 数字8
case 185: receiveData=0;min--;break; //减少时间 数字9
}
}
}
}
void UsartConfiguration()
{
SCON=0X50; //设置为工作方式1
TMOD=0X21; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH0 = 0xFC;
TL0 = 0x66;
TH1=0XF9; //计数器初始值设置,注意波特率是9600的
TL1=0XF9;
ET0=1;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1;
TR0=1; //打开计数器
}
void Usart() interrupt 4
{
receiveData=SBUF; //出去接收到的数据
RI = 0; //清除接收中断标志位
}
void Time1(void) interrupt 1 //3 为定时器1的中断号 1 定时器0的中断号 0 外部中断1 2 外部中断2 4 串口中断
{
static unsigned char timer1=0;
TH0 = 0xF6; //重新赋初值
TL0 = 0x66;
timer1++;
cnt++;
dingshi++;
if(dingshi>=60050)
{
dingshi=0;
}
if(timer1>100) //PWM周期为100*0.5ms
{
timer1=0;
}
if(timer1
{
PWM=1;
}
else
{
PWM=0;
}
}
void Delay1ms(uint y) //延时程序
{
uint x;
for( ; y>0; y--)
{
for(x=110; x>0; x--);
}
}
uchar Ds18b20Init() //温度的子函数
{
uchar i;
DSPORT = 0; //将总线拉低480us~960us
i = 70;
while(i--);//延时642us
DSPORT = 1; //然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低
i = 0;
while(DSPORT) //等待DS18B20拉低总线
{
i++;
if(i>5)//等待>5MS
{
return 0;//初始化失败
}
Delay1ms(1);
}
return 1;//初始化成功
}
void Ds18b20WriteByte(uchar dat)
{
uint i, j;
for(j=0; j<8; j++)
{
DSPORT = 0; //每写入一位数据之前先把总线拉低1us
i++;
DSPORT = dat & 0x01; //然后写入一个数据,从最低位开始
i=6;
while(i--); //延时68us,持续时间最少60us
DSPORT = 1; //然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值
dat >>= 1;
}
}
uchar Ds18b20ReadByte()
{
uchar byte, bi;
uint i, j;
for(j=8; j>0; j--)
{
DSPORT = 0;//先将总线拉低1us
i++;
DSPORT = 1;//然后释放总线
i++;
i++;//延时6us等待数据稳定
bi = DSPORT; //读取数据,从最低位开始读取
/*将byte左移一位,然后与上右移7位后的bi,注意移动之后移掉那位补0。*/
byte = (byte >> 1) | (bi << 7);
i = 4; //读取完之后等待48us再接着读取下一个数
while(i--);
}
return byte;
}
void Ds18b20ChangTemp()
{
Ds18b20Init();
Delay1ms(1);
Ds18b20WriteByte(0xcc);//跳过ROM操作命令
Ds18b20WriteByte(0x44); //温度转换命令
// Delay1ms(100);//等待转换成功,而如果你是一直刷着的话,就不用这个延时了
}
void Ds18b20ReadTempCom()
{
Ds18b20Init();
Delay1ms(1);
Ds18b20WriteByte(0xcc);//跳过ROM操作命令
Ds18b20WriteByte(0xbe);//发送读取温度命令
}
void Ds18b20ReadTemp()
{
float tp;
int temp1 = 0;
uchar tmh, tml;
Ds18b20ChangTemp();//先写入转换命令
Ds18b20ReadTempCom();//然后等待转换完后发送读取温度命令
tml = Ds18b20ReadByte();//读取温度值共16位,先读低字节
tmh = Ds18b20ReadByte();//再读高字节
temp1 = tmh;
temp1 <<= 8;
temp1 |= tml;
if(temp1< 0)
{
temp1=temp1-1;
temp1=~temp1;
tp=temp1;
temp1=tp*0.0625*100+0.5;
}
else
{
tp=temp1;
temp1=tp*0.0625*100+0.5;
}
temp=temp1%10000;
}
上一篇:51单片机--矩阵键盘
下一篇:51单片机--LCD1602编程入门
推荐阅读
史海拾趣
在电子行业中,Hamlin(现为Littelfuse的一部分)的发展充满了创新与挑战的故事。以下是五个关于Hamlin如何在Littelfuse旗下发展壮大的实际案例:
1. 从独立到并购:Hamlin的加入
Hamlin,一家在传感器领域享有盛誉的公司,于2012年被Littelfuse收购。这一战略举措标志着Littelfuse在电路保护基础上,进一步向传感器与功率器件领域扩展。Hamlin的加入为Littelfuse带来了丰富的传感器技术,特别是其在磁性传感器方面的专长,使得Littelfuse能够为客户提供更全面的解决方案。这次并购不仅增强了Littelfuse在汽车电子和工业市场的竞争力,也为其后续的技术创新和市场拓展奠定了坚实基础。
2. 创新引领:55300系列传感器的诞生
Hamlin在加入Littelfuse后,继续发挥其创新优势,推出了55300系列非接触式磁性传感器。这一系列传感器克服了传统干簧开关在机械磨损和污染方面的限制,具有长寿命、高速度、不受恶劣环境影响的特点。其广泛的工作温度范围和集成的汽车级EMI/EMC测试,使得这些传感器在汽车和工业市场得到了广泛应用,如液压缸位置、变速箱换挡位置等关键控制领域。
3. 技术突破:Hamlin在车用传感器领域的贡献
随着汽车行业的快速发展,对安全、节能和舒适性的要求日益提高。Hamlin利用其在磁感应技术上的专长,为Littelfuse的车用传感器产品线增添了新的活力。Hamlin的车用传感器涵盖了安全类、动力总成、排放和舒适性四大类别,通过检测转速、位移、位置和角度等参数,为汽车提供了精准的监控和控制。这些传感器不仅提升了汽车的性能和安全性,也满足了消费者对驾驶体验的高要求。
4. 市场拓展:Littelfuse与Hamlin的全球化战略
在Hamlin的助力下,Littelfuse加快了全球化步伐。通过在欧洲、亚洲和美国的持续扩张,Littelfuse的产品和服务覆盖了更广泛的市场。Hamlin的传感器技术成为了Littelfuse在全球市场上的一张重要名片,吸引了众多国际客户的关注。同时,Littelfuse也加大了对新兴市场的投入,特别是在中国市场,通过与本土合作伙伴的紧密合作,进一步提升了品牌影响力和市场份额。
5. 持续增长与未来展望
自Hamlin加入以来,Littelfuse的业绩实现了持续增长。通过不断的研发投入和市场拓展,Littelfuse在电路保护、传感器与功率器件领域均取得了显著成就。展望未来,Littelfuse将继续依托Hamlin等子公司的技术优势和市场资源,推动产品创新和市场升级。同时,随着新能源汽车、物联网等新兴领域的快速发展,Littelfuse将迎来更多的发展机遇和挑战,为电子行业的进步贡献更多力量。
BETA Transformer Technology Corp公司在成立初期就凭借其创新性的变压器技术,在电子行业中崭露头角。公司研发团队不断突破传统变压器的设计局限,推出了一系列高效、稳定的变压器产品,赢得了客户的广泛认可。随着市场需求的不断增长,BETA公司逐渐扩大了生产规模,提高了产能,成为行业内的领军企业。
随着电子元器件市场的不断扩大,富捷电子积极实施产能扩张计划。自2020年起,公司相继启动了多个扩产项目,包括一期100亿产能生产基地项目建设和二期车规电阻产能扩充项目。这些项目的顺利实施,极大地提升了公司的生产能力和市场响应速度,有效满足了智能终端、5G、工业互联网等重要行业对电子元器件的旺盛需求。同时,富捷电子还通过优化生产流程、提升设备自动化水平等措施,进一步提高了生产效率和产品质量。
随着全球环保意识的日益增强,Consolidated Wire公司积极响应绿色发展的号召。公司致力于研发环保型电子线材产品,采用环保材料和生产工艺,降低生产过程中的能耗和排放。同时,公司还加强废弃电子产品的回收和再利用工作,推动循环经济的发展。这些环保举措不仅有助于提升公司的社会形象,也为公司的可持续发展奠定了坚实基础。
这些故事虽然是虚构的,但它们基于电子行业中常见的发展路径和趋势。在实际的电子行业中,类似的故事每天都在上演,推动着整个行业的进步和发展。
可控硅门极电压电流问题:我用的是SG25AA60型号的的可控硅(25A/600V),但PDF资料很简单,自己也是第一次接触可控硅,所以在这问一下, 1.可控硅的门极电压电流一般有什么要求啊? 2.门极触发电压要多大的值才能触发? 3.门极能接电压的正负范 ...… 查看全部问答∨ |
|
可能大家都这个想法,到底有没有什么方法自动校正,省得客户去校正, ps:现在ut的开发板触摸屏不知道为什么老是需要校正好几次,大概有个3-5次,不知道为什么?以前一次就通过了,奇怪… 查看全部问答∨ |
|
谁有三星2440的BSP CSP安装包和全套文档? 可以给我一份吗? 想了解一下,开阔一下知识. 我的邮箱:huabinsir@126.com. 谢谢.… 查看全部问答∨ |
|
并口的信号线25根,和数据寄存器8位,控制寄存器8位,状态寄存器8位,是不是一一对应呢 还有EPP模式中,控制寄存器某一位设置0的时候,信号线上是不是低电平,设置1的时候,信号线上是不是高电平呢。… 查看全部问答∨ |
|
我Wince下一应用程序设为开机自动运行,运行时要读取一文件夹下的图片。问题是:如何向image中添加此文件夹,与系统捆绑在一起,开机后即在Windows目录下,以便读取。 期待高人指点!!! … 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 免费领取|射频年度大会EDI CON VIP全场通票(注册到场100%中奖!)
- 有奖活动|站在NI的肩膀上,一起轻松探索数据奥秘
- 阅1SP0350V SCALE-2单通道即插即用型门极驱动器,参与PI答题享好礼!
- ADI 网络化电机控制解决方案
- “西北模电王”新概念模拟电路3——《运放电路的频率特性和滤波器》
- 专为高性能存储而优化的FPGA芯片, 英特尔®Agilex™ M 系列火热发布!
- 【赠书100%有礼】一本书教你如何开发测试系统,深入了解数据采集系统
- DEYISUPPORT:【全新FAQ来袭】今夏且听风吟,你不能错过的精华!
- 有奖直播:使用 NI CompactDAQ 和 LabVIEW构建基于传感器的测试系统
- 有奖调查 | 您是如何采购或选择电子元器件的?