⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chaoshengbo.c

📁 本设计是关于超声波测距的资料 附带源码和原理图 同时还介绍了各种超声波测距方法
💻 C
📖 第 1 页 / 共 3 页
字号:
12864液晶显示函数(三线串口驱动): 


                                           /***************************************************************** 
*                                                                * 
* ME500单片机开发系统演示程序 - 12864 图片与文字显示             *  
*                                                                * 
* ST7920控制芯片(汉字库),串口模式。                             * 
*                                                                * 
* 版本: V1.0 (2006/11/20)                                       * 
* 作者: gguoqing (Email: gguoqing@willar.com)                   * 
* 网站: www.willar.com(伟纳电子)  www.mcusj.com(伟纳单片机世界) * 
* 邮箱: support@willar.com                                      * 
*                                                                * 
*【版权】COPYRIGHT(C)伟纳电子 www.willar.com ALL RIGHTS RESERVED * 
*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!      * 
*                                                                * 
*****************************************************************/                   

/********** 12864LCD引脚定义 **********/ 

/*sbit CS    =  P2^5;        //片选 高电平有效 单片LCD使用时可固定高电平 
sbit SID   =  P2^7;        //数据 
sbit SCLK  =  P2^6;        //时钟*/ 
#include<reg51.h> 
#define uchar unsigned char 
#define uint  unsigned int         
sbit CS    =  P2^0;        //片选 高电平有效 单片LCD使用时可固定高电平 
sbit SID   =  P2^1;        //数据 
sbit SCLK  =  P2^2;        //时钟 
/*********************************************************/ 
uchar         code  DIS11[] = {"危险距离"}; 
uchar         code  DIS12[] = {"安全距离"}; 
uchar         code  DIS13[] = {"保持距离"}; 
uchar         code  DIS14[] = {"测量中.........."}; 
uchar         code  DIS2[] = {"距离:  点    米"}; 
uchar         code  DIS3[] = {"星期"}; 
//uchar         code  DIS4[] = {"TEL:15878671024 "}; 
uchar         code  DIS5[] = {"H:    L:        "}; 
uchar         code BMP1[] ={ 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF9,0xFF,0xC0,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0F,0xFF,0xF8,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x04,0x00,0x0E,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x01,0x80,0x00,0x00,0x00, 
0x00,0x00,0x98,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x60,0x00,0x00,0x00, 
0x00,0x03,0x98,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x00,0x00,0x00, 
0x00,0x01,0x90,0x00,0x00,0x00,0x00,0x70,0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x00, 
0x00,0x00,0xD0,0x00,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, 
0x00,0x0C,0xD0,0x00,0x00,0x00,0x00,0x66,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00, 
0x00,0x0E,0x40,0x00,0x00,0x00,0x00,0x4E,0x0C,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 
0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 
0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x10,0x98,0x00,0x00,0x00,0x03,0x80,0x00,0x00, 
0x00,0x3E,0x1C,0x00,0x00,0x00,0x01,0x03,0x90,0x00,0x00,0x00,0x01,0x80,0x00,0x00, 
0x00,0x3E,0x3E,0x00,0xFF,0xE0,0x03,0x8F,0xD0,0x00,0x00,0x00,0x01,0x80,0x00,0x00, 
0x00,0x00,0x3F,0x07,0xFF,0xFC,0x07,0x40,0x33,0x00,0x00,0x00,0x00,0x80,0x00,0x00, 
0x00,0x00,0x1F,0x9F,0xFF,0xFE,0x1F,0xCE,0x31,0x80,0x00,0x00,0x00,0xC0,0x00,0x00, 
0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xBF,0x83,0xB0,0x80,0x00,0x00,0x00,0xC0,0x00,0x00, 
0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0x01,0xB0,0x00,0x00,0x00,0x00,0xC0,0x00,0x00, 
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFC,0x00,0x30,0x00,0x00,0x00,0x00,0xC0,0x00,0x00, 
0x00,0x00,0x03,0xFF,0xFF,0xFF,0xF8,0x00,0x30,0x00,0x00,0x00,0x00,0x40,0x00,0x00, 
0x00,0x00,0x07,0xFF,0xFF,0xFF,0xF8,0x00,0x30,0x00,0x00,0x00,0x00,0x40,0x00,0x00, 
0x00,0x00,0x07,0xFF,0x80,0x1F,0xF8,0x00,0x30,0x00,0x00,0x00,0x00,0x40,0x00,0x00, 
0x00,0x00,0x0F,0xFE,0x00,0x03,0xFC,0x00,0x10,0x00,0x00,0x00,0x00,0xC0,0x00,0x00, 
0x00,0x00,0x0F,0xF8,0x00,0x00,0xFC,0x00,0x10,0x00,0x00,0x00,0x00,0x80,0x00,0x00, 
0x00,0x00,0x0F,0xF0,0x00,0x00,0x7E,0x00,0x10,0x00,0x00,0x00,0x00,0x80,0x00,0x00, 
0x00,0x00,0x1F,0xC0,0x00,0x00,0x3E,0x00,0x18,0x00,0x00,0x00,0x00,0x80,0x00,0x00, 
0x00,0x00,0x1F,0x80,0x00,0x00,0x1E,0x00,0x1B,0x00,0x00,0x00,0x01,0x80,0x00,0x00, 
0x00,0x00,0x1F,0x00,0x00,0x00,0x0E,0x00,0x7B,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 
0x00,0x00,0x1E,0x08,0x00,0x04,0x0E,0x00,0x58,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 
0x00,0x00,0x1E,0x10,0x00,0x02,0x06,0x00,0x30,0x00,0x00,0x18,0x02,0x00,0x00,0x00, 
0x00,0x00,0x1E,0x00,0x00,0x00,0x06,0x00,0x20,0xC0,0x00,0x06,0x06,0x00,0x00,0x00, 
0x00,0x00,0x1E,0x00,0x00,0x00,0x0E,0x00,0x20,0x60,0x00,0x02,0x04,0x00,0x00,0x00, 
0x00,0x00,0x0E,0x00,0x00,0x00,0x0E,0x00,0x20,0x00,0x00,0x02,0x0C,0x00,0x00,0x00, 
0x00,0x00,0x0E,0x00,0x00,0x00,0x0E,0x00,0x20,0x00,0x00,0x7C,0x18,0x00,0x00,0x00, 
0x00,0x00,0x0E,0x00,0x00,0x00,0x0E,0x00,0x18,0x00,0x00,0x18,0x30,0x00,0x00,0x00, 
0x00,0x00,0x0E,0x00,0x00,0x00,0x0C,0x00,0x0D,0xC0,0x00,0x00,0x60,0x00,0x00,0x00, 
0x00,0x00,0x0E,0x00,0x00,0x00,0x0E,0x00,0x06,0x60,0x00,0x01,0xC0,0x00,0x00,0x00, 
0x00,0x00,0x1E,0x00,0x00,0x00,0x0A,0x00,0x03,0x80,0x00,0x03,0x80,0x00,0x00,0x00, 
0x00,0x00,0x12,0x00,0xC0,0x20,0x0A,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0x00, 
0x00,0x00,0x02,0x00,0xC0,0x70,0x0A,0x00,0x00,0x1C,0x00,0x7C,0x00,0x04,0x3C,0x00, 
0x00,0x00,0x0E,0x00,0xC7,0x30,0x0C,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x03,0xFC,0x00, 
0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x18,0x1C,0x00,0x00,0x03,0xF8,0x00, 
0x00,0x00,0x02,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x04,0x00,0x00,0x07,0xF8,0x00, 
0x00,0x00,0x02,0x00,0x00,0x00,0x08,0x00,0x00,0x30,0x0C,0x00,0x00,0x0D,0xF8,0x00, 
0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x00,0x60,0x0C,0x00,0x00,0x01,0xF0,0x00, 
0x00,0x00,0x01,0x80,0x00,0x00,0x10,0x00,0x00,0x64,0x0C,0x00,0x00,0x00,0xC0,0x00, 
0x00,0x00,0x00,0xC0,0x00,0x00,0x70,0x00,0x00,0x72,0x0C,0x00,0x00,0x00,0x40,0x00, 
0x00,0x00,0x00,0x60,0x10,0x00,0xC0,0x00,0x00,0xC2,0x04,0x00,0x00,0x03,0xC0,0x00, 
0x00,0x00,0x00,0x1C,0x06,0x03,0x00,0x00,0x01,0x83,0x04,0x00,0x00,0x07,0xC0,0x00, 
0x00,0x00,0x00,0x07,0x80,0x1C,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x0F,0x40,0x00, 
0x00,0x00,0x00,0x00,0x1F,0xA0,0x00,0x00,0x06,0x01,0x82,0x00,0x00,0x00,0x48,0x00, 
0x00,0x00,0x00,0x00,0x10,0x18,0x00,0x00,0x04,0x00,0x81,0x00,0x00,0x00,0x7C,0x00, 
0x00,0x00,0x00,0x00,0x10,0x14,0x00,0x00,0x04,0x00,0x41,0x00,0x00,0x00,0x78,0x00, 
0x00,0x00,0x00,0x00,0x90,0xF0,0x00,0x00,0x0C,0x00,0x40,0xC0,0x00,0x00,0x40,0x00, 
0x00,0x00,0x04,0x01,0x1F,0xF8,0x00,0x00,0x3F,0xC0,0x60,0x60,0x00,0x00,0x40,0x00, 
0x00,0x00,0x08,0x06,0x1F,0xF8,0x80,0x00,0x21,0xFF,0xF0,0x30,0x00,0x00,0x40,0x00, 
0x00,0x00,0x08,0x08,0x3F,0xFC,0x80,0x00,0x20,0x00,0x18,0x30,0x00,0x00,0x40,0x00, 
0x00,0x00,0x08,0x08,0x3F,0xFC,0x80,0x00,0x20,0x00,0x0C,0x30,0x00,0x00,0x00,0x00, 
0x00,0x00,0x04,0x04,0x7F,0xFC,0x00,0x00,0x00,0x00,0x07,0x10,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x01,0x7F,0xFD,0x00,0x00,0x10,0x00,0x01,0xE0,0x00,0x00,0x00,0x00, 
0x00,0x00,0x02,0x03,0xFF,0xFD,0x00,0x00,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00, 
}; 
uchar code AC_TABLE[]={ 
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行汉字位置 
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行汉字位置 
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行汉字位置 
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      //第四行汉字位置 
}; 
/******************************************************** 
*                                                       *                                                  
* 延时t毫秒                                             * 
* 11.0592MHz时钟,延时约1ms                             *         
*                                                       * 
********************************************************/ 
void delay(uint t) 
{                            
   uchar k; 
   while(t--) 
   { 
     for(k=0; k<125; k++) 
     { } 
   } 
} 
/********************************************************* 
*                                                        * 
* 延时函数 200us                                         * 
*                                                        * 
*********************************************************/ 
void delay_lcd(int ms) 
{ 
  uchar t; 
  while(ms--) 
  { 
    for(t=0; t<20; t++) ; 
  } 
} 
/****************************************************************************************** 
* 函数名称    :SendByte 
* 功能描述    :串口发送一个字节 
* 参数        :  参数名称:        输入/输出?        类型                描述 
*  
* 返回值      : 
* 作者        : 
* 创建日期    :2006-12-19 
* 全局变量    : 
* 全局静态变量: 
* 局部静态变量: 
*----------------------------------------修改历史------------------------------------------ 
* 当前版本    :                          修改人:                  修改日期: 
* 修改说明    : 
******************************************************************************************/ 
void SendByte(uchar Dbyte) 
{ 
     uchar i; 
     for(i=0;i<8;i++) 
     { 
           SCLK = 0; 
           Dbyte=Dbyte<<1;      //左移一位 
           SID = CY;            //移出的位给SID 
           SCLK = 1; 
           SCLK = 0; 
     } 
} 

/****************************************************************************************** 
* 函数名称    :ReceiveByte 
* 功能描述    :串口接收一个字节 
* 参数        :  参数名称:        输入/输出?        类型                描述 
* 仅在读取数据的时候用到 
* 而读出的数据是一次只能读出4bit的 
* 返回值      : 
* 作者        : 
* 创建日期    :2006-12-19 
* 全局变量    : 
* 全局静态变量: 
* 局部静态变量: 
*----------------------------------------修改历史------------------------------------------ 
* 当前版本    :                          修改人:                  修改日期: 
* 修改说明    : 
******************************************************************************************/ 
uchar ReceiveByte(void) 
{ 
     uchar i,temp1,temp2; 
     temp1 = 0; 
     temp2 = 0; 
     for(i=0;i<8;i++) 
     { 
           temp1=temp1<<1; 
           SCLK = 0; 
           SCLK = 1;             
           SCLK = 0; 
           if(SID) temp1++; 
     } 
     for(i=0;i<8;i++) 
     { 
           temp2=temp2<<1; 
           SCLK = 0; 
           SCLK = 1; 
           SCLK = 0; 
           if(SID) temp2++; 
     } 
     return ((0xf0&temp1)+(0x0f&temp2)); 
} 
/****************************************************************************************** 
* 函数名称    :CheckBusy 
* 功能描述    : 
* 参数        :  参数名称:        输入/输出?        类型                描述 
*  
* 返回值      : 
* 作者        : 
* 创建日期    :2006-12-19 
* 全局变量    : 
* 全局静态变量: 
* 局部静态变量: 
*----------------------------------------修改历史------------------------------------------ 
* 当前版本    :                          修改人:                  修改日期: 
* 修改说明    : 
******************************************************************************************/ 
void CheckBusy( void ) 
{ 
     do   SendByte(0xfc);      //11111,RW(1),RS(0),0 
     while(0x80&ReceiveByte());      //BF(.7)=1 Busy 
} 
/****************************************************************************************** 
* 函数名称    :WriteCommand 
* 功能描述    : 
* 参数        :  参数名称:        输入/输出?        类型                描述 
*  
* 返回值      : 
* 作者        : 
* 创建日期    :2006-12-19 
* 全局变量    : 
* 全局静态变量: 
* 局部静态变量: 
*----------------------------------------修改历史------------------------------------------ 
* 当前版本    :                          修改人:                  修改日期: 
* 修改说明    : 
******************************************************************************************/ 
void WriteCommand(uchar Cbyte ) 
{ 
     CS = 1; 
     CheckBusy(); 
     SendByte(0xf8);            //11111,RW(0),RS(0),0 
     SendByte(0xf0&Cbyte);      //高四位 
     SendByte(0xf0&Cbyte<<4);//低四位(先执行<<) 
     CS = 0; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -