网站 域名解析错误,自己怎么手机做网站,软件合集大全,广东嵘通建设目录
一、主要功能
二、硬件资源
三、程序编程
四、实现现象 一、主要功能
基于STC89C52单片机#xff0c;采用L298N驱动连接P2.3和P2.4口进行电机驱动#xff0c; 然后串口连接P3.0和P3.1模拟ESP8266#xff0c; 红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.…目录
一、主要功能
二、硬件资源
三、程序编程
四、实现现象 一、主要功能
基于STC89C52单片机采用L298N驱动连接P2.3和P2.4口进行电机驱动 然后串口连接P3.0和P3.1模拟ESP8266 红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.2口 MPX4117重量传感器连接ADC0832数模转换器连接单片机的P1.3~P1.5口 然后LCD1602连接单片机的P0.0P0.7口和P2.0P2.2口
红外检测到动物靠近则单片机控制电机转动重量检测低于5G则控制电机转动 串口可以远程发送信息控制电机转动 各项参数通过LCD1602显示屏显示
二、硬件资源
基于KEIL5编写C代码PROTEUS8.15进行仿真全部资源在页尾提供安装包。
编辑
三、程序编程
#include REGX52.H#includeintrins.h#includestdio.h#include Delay.h#include LCD1602.h#define uchar unsigned char#define uint unsigned intsbit CSP1^0; //adc0832引脚sbit CLKP1^1;
sbit DIOP1^2;
sbit CS1P1^3; //adc0832引脚sbit CLK1P1^4;
sbit DIO1P1^5;
sbit out1 P2^3;
sbit out2 P2^4;static uchar u,U;static char Dat_rxd;static int num;
uchar a\[3\];static int flag,flag1,flag2,flag30;uchar get\_AD\_Res() //ADC0832启动读取函数 红外{uchar i, data10, data20;CS0;CLK0;DIO1;\_nop\_();CLK1;\_nop\_();CLK0;DIO1;\_nop\_(); CLK1;\_nop\_();CLK0;DIO0;\_nop\_();CLK1;\_nop\_();CLK0;DIO1;\_nop\_(); for(i0; i8; i){CLK1;\_nop\_();CLK0;\_nop\_();data1(data11)|(uchar)DIO; } for(i0; i8; i){data2data2|(uchar)DIOi;CLK1;\_nop\_();CLK0;\_nop\_();}CS1; return(data1 data2)?data1:0;
}uchar get\_AD\_Res1() //ADC0832启动读取函数 重量{uchar i, data10, data20;CS10;CLK10;DIO11;\_nop\_();CLK11;\_nop\_();CLK10;DIO11;\_nop\_(); CLK11;\_nop\_();CLK10;DIO10;\_nop\_();CLK11;\_nop\_();CLK10;DIO11;\_nop\_(); for(i0; i8; i){CLK11;\_nop\_();CLK10;\_nop\_();data1(data11)|(uchar)DIO1; } for(i0; i8; i){data2data2|(uchar)DIO1i;CLK11;\_nop\_();CLK10;\_nop\_();}CS11; return(data1 data2)?data1:0;
}void Com0_Init(void){EA1; //开总中断ES1; //允许串口中断TMOD0x20; //定时器T1在方式3中断产生波特率SCON0x50;TH10xfd; //波特率设置为9600(晶振12M)TL10xfd;TR11; //开定时器T1运行控制位}void Com0(void) interrupt 4 using 1{ if(RI){Dat_rxdSBUF; //串口接收Dat\_rxdDat\_rxd-0x30;RI0;}}void main() //主函数{ LCD_Init(); //显示屏初始化Com0_Init();//串口初始化 LCD\_ShowString(1,1,-----kaiji-----); Delay(1000); LCD\_Init(); //显示屏初始化LCD_ShowString(1,9,zidong ); while(1){uget\_AD\_Res(); //红外Uget\_AD\_Res1();//重量if(Dat_rxd0x01) //启动{ flag3 1;} else if(Dat_rxd0x02) // 停止{flag3 2;} else if(Dat_rxd0x03) // 切换{flag3 0;} if(u100){ LCD_ShowString(1,1,youren);flag 1;} else{ LCD_ShowString(1,1,wuren );flag 2;}a\[0\]U/100;a\[1\](U/10)%10;a\[2\]U%100; LCD\_ShowNum(2,1,a\[0\],1); LCD\_ShowNum(2,2,a\[1\],1); LCD\_ShowString(2,3,.); LCD\_ShowNum(2,4,a\[2\],1); LCD_ShowString(2,5,g); if(a\[1\]5){flag11;} else{flag12;}flag2 flag*flag1; if(flag3 0){ LCD_ShowString(1,9,zidong ); if(flag2 1 || flag2 2 ){out1 1;out2 0;} else if(flag2 4){out1 0;out2 0;}} if(flag3 1){out1 1;out2 0; LCD_ShowString(1,9,shoudong);} else if(flag3 2){out1 0;out2 0;}}
}四、实现现象
具体动态效果看B站演示视频
B站演示视频
基于单片机的宠物喂食
全部资料源程序、仿真文件、安装包、演示视频
百度网盘资料下载https://pan.baidu.com/s/1y_5fXiGptsymw0wqOdKHXw?pwdkev8