datasheet

智能家居控制系统VB上的代码

2018-01-12 20:48:58来源: eefocus 关键字:智能家居  控制系统  VB

#include  
#include  
#include      

#define TURE 1 
#define FALSE 0 

#define delayus() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()

 

/*************************************** 
**自定义数据类型 
***************************************/ 
typedef unsigned char     uint8;      
typedef unsigned int        uint16; 
typedef unsigned long        uint32; 

/*************************************** 
**按键消息结构体 
***************************************/ 
typedef struct          

  uint8  handle;          //功能索引 
  uint8  assignments;     //键值 
  uint8  time;            //键按下的时间 

} K_MSG; 

/****************************************** 
** 端口定义 
******************************************/ 
sbit LCD_E        = P2^7;     
sbit LCD_RW        = P2^6; 
sbit LCD_RS        = P2^5; 
sbit TLED        = P2^4; 
sbit Uout        = P3^7;  
sbit Bell        = P2^0; 
        

sfr LCD_DOUT         =    0x80; 
sfr key_interface    =    0x90; 

/****************************************** 
** 全局变量 
******************************************/ 
K_MSG kmsg; 

bit DisplayUpdataFlag,ClICk_Flag, BellingFlag, MeasureFlag, DelayFlag, MeaDelayExt; 

uint8 T0_IRQ_Times, ShowPage, OBScure, PulseCoun, MeaDelayTime; 

uint8 DisplayBuff[33]; 

uint8  RevTimeH; 
uint16 RevTimeL; 
uint32 RevTime; 

uint8 code TestString[]={"www.huayimcu.com"}; 

/******************************************************************************/ 
/******************************************************************************* 
** 函数名称: LcdDelay 
** 功能描述: LCD控制时序用到的延时程序 
** 
** 输 入: times-延时量 
** 
** 输 出: 无 
**          
** 全局变量: 无 
** 调用模块: 无 

**------------------------------------------------------------------------------- 
*********************************************************************************/ 
void LcdDelay(uint8 times) 

    while(times--); 


/******************************************************************************* 
** 函数名称: ReadLCDCR 
** 功能描述: 读LCD命令寄存器 
** 
** 输 入: 无 
** 
** 输 出: (uint8) 读到的数据 
**          
** 全局变量: 无 
** 调用模块: LcdDelay 

*********************************************************************************/ 
uint8 ReadLCDCR(void) 

      uint8 byte; 

      LCD_RS = 0; 
      LCD_RW = 1; 
      LCD_E = 1; 
      LcdDelay(4); 
      byte = LCD_DOUT; 
     LCD_E = 0; 
      return(byte); 


/******************************************************************************* 
** 函数名称: WriteLCDCR 
** 功能描述: 写LCD命令寄存器 
** 
** 输 入: (uint8 thdata) 将要写进寄存器的数据 
** 
** 输 出: 无 
**          
** 全局变量: 无 
** 调用模块: LcdDelay 

*********************************************************************************/ 
void WriteLCDCR(uint8 thEDAta) 

      LCD_DOUT = thedata; 
      LCD_RS = 0; 
      LCD_RW = 0; 
      LCD_E = 1; 
      LcdDelay(4); 
      LCD_E=0; 

/******************************************************************************* 
** 函数名称: WriteLCDDR 
** 功能描述: 写LCD数据寄存器 
** 
** 输 入: (uint8 thedata) 将要写进寄存器的数据 
** 
** 输 出: 无 
**          
** 全局变量: 无 
** 调用模块: LcdDelay 

*********************************************************************************/ 
void WriteLCDDR(uint8 thedata) 

      LCD_DOUT = thedata; 
      LCD_RS = 1; 
      LCD_RW = 0; 
      LCD_E = 1; 
      LcdDelay(4); 
      LCD_E = 0; 


/******************************************************************************* 
** 函数名称: Test_LCDBF 
** 功能描述: 检测LCD忙标志 
** 
** 输 入: 无 
** 
** 输 出: 无 
**          
** 全局变量: 无 
** 调用模块: ReadLCDCR 
** 
*********************************************************************************/ 
void Test_LCDBF(void) 

      uint8 temp,ErrorTime; 

    ErrorTime = 0xff; 
      do 
      { 
            temp = ReadLCDCR(); 
        ErrorTime--; 
        if(ErrorTime == 0) 
            break; 
      } 
      while(temp & 0x80); 


/******************************************************************************* 
** 函数名称: LCDInit 
** 功能描述: LCD初始化 
** 
** 输 入: 无 
** 
** 输 出: 无 
**          
** 全局变量: 无 
** 调用模块: WriteLCDCR 

*********************************************************************************/ 
void LCDInit(void) 

    uint8 code custom_character[8][8] =  
    {/*自定义5X8字符*/ 
     0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*自定义字符1*/ 
     0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,/*自定义字符2*/ 
     0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,/*自定义字符3*/ 
     0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,/*自定义字符4*/ 
     0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,/*自定义字符5*/ 
     0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,/*自定义字符6*/ 
     0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00,/*自定义字符7*/ 
     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f /*自定义字符8*/ 
    }; 

    uint8 i,j; 

      Test_LCDBF(); 
    WriteLCDCR(0x38); 
      for(i=0x20; i>0; i--); 
        for(j=0xff; j>0; j--); 
      Test_LCDBF(); 
      WriteLCDCR(0x38); 
    for(i=0x20; i>0; i--); 
        for(j=0xff; j>0; j--); 
    Test_LCDBF(); 
    WriteLCDCR(0x38); 
    for(i=0x20; i>0; i--); 
        for(j=0xff; j>0; j--); 
    Test_LCDBF(); 
      WriteLCDCR(0x06); 
      Test_LCDBF(); 
      WriteLCDCR(0x0c); 
    Test_LCDBF(); 
    WriteLCDCR(0x01); 
       
    Test_LCDBF(); 
    WriteLCDCR(0x40); 
    for(i=0; i<=7; i++) 
    { 
        for(j=0; j<=7; j++) 
        { 
            Test_LCDBF(); 
            WriteLCDDR(custom_character[i][j]); 
        } 
    }  


/******************************************************************************* 
** 函数名称: LCDDisplay 
** 功能描述: LCD上显示字符串 
** 
** 输 入: *string(指向字符串地址),position(显示位置) 
** 
** 输 出: 无 
**          
** 全局变量: 无 
** 调用模块: WriteLCDCR,WriteLCDDR,Test_LCDBF 

*********************************************************************************/ 
void LCDDisplay(uint8 *string,uint8 position) 

       Test_LCDBF(); 
    WriteLCDCR(position); 
       while(*string != ’#’) 
       { 
         if(position == 0x90) 
         { 
            Test_LCDBF(); 
            WriteLCDCR(0xC0); 
            position = 0xC0; 

         } 
         /*if(*string == ’\0’) 
             *string = ’ ’;     */ 
         Test_LCDBF(); 
        WriteLCDDR(*string++); 
         position++; 
        if(position > 0xCF) 
        { 
            Test_LCDBF(); 
            WriteLCDCR(0x80); 
            position = 0x80; 
        } 
       } 


/******************************************************************************* 
** 函数名称: Timer0_IRQ 
** 功能描述: 定时器0中断服务程序 
** 
** 输 入: 无 
** 
** 输 出: 无 
**          
** 全局变量:  
** 调用模块: 无 
** 
*********************************************************************************/ 
void Timer0_IRQ(void) interrupt 1 using 1 

    TH0 = 0x3c; 
    TL0 = 0xa8; 
    if(++T0_IRQ_Times > 20) 
    { 
        T0_IRQ_Times = 0; 
        Click_Flag = ~Click_Flag; 
        //DisplayUpdataFlag = 1; 
    } 
    if(DelayFlag) 
    { 
        if(++MeaDelayTime > 10) 
        { 
            MeaDelayTime = 0; 
            DelayFlag = 0; 
            MeaDelayExt = 1; 
        } 
    } 


/******************************************************************************* 
** 函数名称: Timer0_IRQ 
** 功能描述: 定时器1中断服务程序 
** 
** 输 入: 无 
** 
** 输 出: 无 
**          
** 全局变量:  
** 调用模块: 无 
** 

[1] [2]

关键字:智能家居  控制系统  VB

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2018011237325.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:三相步进电机驱动电路
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
智能家居
控制系统
VB

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved