历史上的今天
返回首页

历史上的今天

今天是:2025年07月29日(星期二)

正在发生

2020年07月29日 | 51单片机设计的防止幼儿误锁车内报警系统

2020-07-29 来源:51hei

单片机源程序如下:

#include

#include

#include

#include

#include

#include


#define uchar unsigned char

#define uint  unsigned int

//---------------------------->Dispose

sbit FIR1 = P1^0;

sbit FIR2 = P1^1;


uchar delay_time=0;    //检测延时2s

uchar yanshi_time=0;

uchar count_time=0;    //锁车5s倒计时

bit   count_flag=0;

//---------------------------->Timer

uint  ms = 0;

uint  time=0;

//---------------------------->Display

bit Read_Weight = 0;    //重量标志位

bit Read_Temp = 0;      //温度标志位

int temp = 0;

sbit alarm = P3^5;      //继电器         0导通,        门未锁

uchar Door = 1;


//---------------------------->Key

sbit key1 = P3^3;            //控制继电器

sbit key2 = P3^4;                //控制布防、撤防


bit key1_flag=0;

bit key2_flag=0;


////---------------------------->电机驱动

uint Stop_time = 0;               //半圈计数变量

uchar zhuan = 0;                   //正反转标志

//---------------------------->Police

sbit beep = P2^4;

bit  beep1 = 0;

///--------------------------------------------->GSMsim800

//-----> Uart1 And GSM  Definition

unsigned char xdata Uart1_Buff[50];  //串口1缓冲数组

unsigned char Uart1_Count=0;         //串口1累加变量


unsigned char Quest_flag=1;                         //GSM状态标志位,等于0,进行初始化,等于一是进入发短信区域

unsigned int  GSM_Send_Time=0;                 //AT指令发送间隔时间

unsigned char GSM_Num=0;                         //AT指令指向

unsigned char GSM_Send=0;                         //发送短信使能标志位

unsigned char GSM_Send_Num=0;                 //短信编号

unsigned char Phone[12]={''};                 //定义手机号存储数组


bit memory_flag=0;


bit cx_flag=0;







//初始化显示,主要用在上电校准称重的时候显示界面

void display_int()

{

   

   LCD1602_write(0,0x80);                 

   LCD1602_writebyte("    Welcome    ");          

   LCD1602_write(0,0xC0);

   LCD1602_writebyte(" initialize... ");

}





void delay(uint z)

{

          while(z--);

}



void UartSend(unsigned char dat)  //发送一个字节

{

        SBUF=dat;

        while(!TI);

        TI=0;

}



void UartSendString(char *s) //发送一串数据

{

    while (*s)                 

    {

        UartSend(*s++);  

    }

}





void keyscan()

{

          if(!key1)

         {

                  if(key1_flag==1)

                 {

                          key1_flag=0;

                        Door=(Door+1)%2;            //0 门锁

                 }        

         }

        else key1_flag = 1;



          if(!key2)

         {

                  if(key2_flag==1)

                 {

                          key2_flag=0;

                        if(cx_flag==1)

                         {

                                  beep1=0;

                                zhuan=2;

                                cx_flag=0;

                         }

                 }        

         }

        else key2_flag = 1;



}



void display()

{

//第一行显示重量数据,有超重显示横杠的设定

   LCD1602_write(0,0x80);       

   LCD1602_writebyte("Weight:");

   if(Weight_Shiwu<10000)

    {

           LCD1602_write(1,0x30+Weight_Shiwu/1000%10);

           LCD1602_write(1,'.');

           LCD1602_write(1,0x30+Weight_Shiwu/100%10);

           LCD1602_write(1,0x30+Weight_Shiwu/10%10);

           LCD1602_write(1,0x30+Weight_Shiwu%10);


        }

        else

        {

           LCD1602_write(1,'-');

           LCD1602_write(1,'.');

           LCD1602_write(1,'-');

           LCD1602_write(1,'-');

           LCD1602_write(1,'-');

          

        }

    LCD1602_writebyte("Kg   ");  


    LCD1602_write(0,0xC0);

    LCD1602_writebyte("Dr: ");

    if(alarm==0)    LCD1602_writebyte("Open  ");

    else            LCD1602_writebyte("Close ");  


                LCD1602_write(1,0x30+temp/100%10);

                LCD1602_write(1,0x30+temp/10%10);

                LCD1602_writebyte(".");

                LCD1602_write(1,0x30+temp%10);

                LCD1602_write(1,0xdf);

                LCD1602_writebyte("C");


//

//                LCD1602_write(1,0x30+count_time/10%10);

//                LCD1602_write(1,0x30+count_time%10);

//                LCD1602_writebyte(" ");

//                LCD1602_write(1,0x30+delay_time/10%10);

//                LCD1602_write(1,0x30+delay_time%10);

//                LCD1602_write(0,0xc0);

//                LCD1602_write(1,0x30+yanshi_time/10%10);

//                LCD1602_write(1,0x30+yanshi_time%10);

}



void GSM_Init()         //GSM函数

{

   unsigned char G_Tab[20];

   if(Quest_flag==1) //开始查询GSM状态//此时还没有初始化完成,首先,先初始化 ,发AT,能够响应上,关回显,设置短信处理方式

         {


                switch(GSM_Num)

                {

                        case 0: UartSendString("ATrn");                  break; //AT

                        case 1: UartSendString("ATE1rn");                break;//关回显

                        case 2: UartSendString("AT+CNMI=3,2,2,0,1rn");  break;//设置

                        case 3: UartSendString("AT+CMGF=1rn");          break; //配制

                        case 4: UartSendString("AT+COPS?rn");            break; //查询网络

                        case 5: Quest_flag=0;  GSM_Num=0;                       break; //初始化彻底结束

            }

                GSM_Send_Time=100;

         }

         else

         {

                                          

                     GSM_Send_Time=100;

                         if(GSM_Send==1)  //发送短信标志

                                {       

                                        Phone[11]='';

                                        if(GSM_Send_Num==0)  //Num 是短信编号,就是发送哪条短信,这个是返回Set End 的       

推荐阅读

史海拾趣

Digital公司的发展小趣事

DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。

Hongfa公司的发展小趣事

宏发公司在发展过程中,积极实施国际化战略。2003年,宏发成立了欧洲公司,加快了国际化进程。随后,公司又在美国等地设立了分支机构,建立了本土化营销及服务网络。通过国际市场的拓展,宏发不仅提升了品牌知名度和影响力,还获得了更多的市场机会和客户资源。如今,宏发的产品已畅销全球多个国家和地区,成为了继电器行业的领军企业。

Amphenol Thermometrics公司的发展小趣事

宏发公司的发展离不开自主研发和技术创新。1998年,宏发成立了精合公司,开启了自主研发自动化设备设计及制造的征程。此后,公司不断加大在技术研发上的投入,建立了博士后科研工作站和院士专家工作站,形成了从产品研发、模具制造、零件制造到自动化成品装配及在线检测的一体化全产业链。通过技术创新,宏发不仅提升了产品性能和质量,还成功打破了国外技术垄断,实现了高端继电器的自主研发和生产。

汇顶科技(GOODiX)公司的发展小趣事

Hongfa宏发公司,全称厦门宏发电声股份有限公司,由郭满金先生于1984年创立。公司初创时,仅有简陋的厂房和设备,投资不过360万元,员工仅数十人。但宏发从一开始就明确了产品定位与市场定位,专注于继电器研发及制造领域。1987年,宏发成功以中国厂家商标及型号取得UL认证,进一步奠定了其在国际市场上的基础。通过不断的技术积累和市场开拓,宏发逐渐在国内继电器行业中崭露头角。

振华新云(CEC)公司的发展小趣事

背景:为了进一步扩大市场份额和提高品牌影响力,振华新云积极开展市场拓展和国际合作。

内容:公司积极参加国内外电子展会和论坛等活动,加强与国内外客户的沟通和交流。同时,积极寻求与国际先进企业的合作机会,共同开展技术研发和市场推广等活动。

成果:通过市场拓展和国际合作,振华新云的产品逐渐走向世界舞台,赢得了广大客户的信赖和好评。同时,公司也积累了宝贵的国际化经验和资源,为未来的国际化发展奠定了坚实基础。

Eagle-Picher公司的发展小趣事

进入21世纪后,Eagle-Picher公司迎来了新的发展机遇。2017年,OMGroup斥资1.7亿美元收购了Eagle-Picher公司,这一举措为Eagle-Picher注入了新的资金和资源。在新的资本支持下,Eagle-Picher加大了在电池技术领域的研发投入,不断推出新的产品和解决方案。同时,公司也积极拓展国际市场,与全球多家知名企业建立了合作关系。这些新的发展机遇为Eagle-Picher的未来发展奠定了坚实的基础。

问答坊 | AI 解惑

脑电图基础知识幻灯片

这里面主要介绍了脑电图的基本知识,还有各种脑电图波形,正常脑电图的诊断标准, 异常脑电图的诊断标准,一些专有名词等。有兴趣的朋友可以下来看看!! [ 本帖最后由 charlie1982 于 2009-12-31 15:34 编辑 ]…

查看全部问答>

vxworks 下 telnet的问题

Hi all 由于项目的需求,我想把telnet默认的shell替换成我们自己写的shell。 一般来说我们使用telnet连接目标板的时候,都会直接连接上 并出现shell的提示符-> 而我们现在需要在连接上之后出现: login: root password: ****** myshell-> my ...…

查看全部问答>

sdcard

用vs2005开发wince application,用来检测sdcard 的插入与拔出,用DeviceIoControl()调用sdcard driver 的ioctrl() function,Deviceiocontrol()的参数该如何确定?…

查看全部问答>

嵌入式方面都涉及哪些知识?

我马上就要开始学习嵌入式方面的知识了,之前我对嵌入式一窍不通,想在开始学习之前自己先了解一些! 想知道嵌入式方面的知识都包括什么? 我还想问一下:linux应用程序开发及相关的内容包括在嵌入式范围内么??? 先谢谢各位了!!!…

查看全部问答>

年后想换职的朋友进来看下哦^^(待遇丰厚,保证心动!!)

-精C++,嵌入式编程,Unix, MFC, Vxworks -工作经验2年以上 -学历要求本科以上 -英语听说读写熟练 薪资丰厚,有意者请尽快联系MSN;linxin710@hotmail.com…

查看全部问答>

新手一个抓狂的问题,build有错误??

我是照书上的例子定制系统的,以前能顺利编译过,后来重装了一次pb4.2,build就有 问题了,重装了几次还是不行,错误提示有: !!!!! Error building (K:\\WINCE420\\platform\\Emulator) Sysgening platform K:\\WINCE420\\platform\\Emulator !!!!! ...…

查看全部问答>

如何让板子支持U盘?

                                 MCU是STM32F107,如何让板子作为USB host支持和U盘的数据通信呢?…

查看全部问答>

CC2530 Timer 問題

我剛接觸不久正在學習中,請問各位高手  我要怎麼用CC2530內的Timer1 去抓一個方波把它記入下來 ? 然後再打出來? 這樣設定對嗎??          T1CTL = 0x05;        ...…

查看全部问答>

REAL6440的核心板 SMDK6410 # cannot run '/etc/init.d/rcS': No such file or

使用REAL6410的核心板,程序已经正常运行几天了,突然发现不工作了,启动时出现:SMDK6410 # cannot run \'/etc/init.d/rcS\': No such file or directory注意已经正常运行几天了,不是rcS编写错误。启动时输出如下: OK Boot with zImage Start ...…

查看全部问答>