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

📄 12232.c

📁 12232驱动程序 调试通过 中北大学信息与通信工程学院 沈阳 QQ:184676957
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <reg51.h>
//功能引脚定义
sbit A0 = P1^3;		//数据1/命令0选择
sbit _WR = P1^2;	//读1/写0
sbit E1 = P1^1; 	//片选1(Master)
sbit E2 = P1^0;		//片选2(slave)
//sbit RST = P1^5;
#define lcd_data P2 //数据 

//常用操作宏定义
#define set_E1() (E1=1)          //1片选M
#define set_E2() (E2=1)          //1片选S
#define set_A0() (A0=1)          //1数据    
#define set_WR() (_WR=1)         //1读

#define clr_E1() (E1=0)          //0
#define clr_E2() (E2=0)          //0
#define clr_A0() (A0=0)          //0命令
#define clr_WR() (_WR=0)         //0写

//液晶显示控制命令表
#define disp_off   0xAE  		 //显示关闭
#define disp_on    0xAF          //显示打开
#define disp_start_line   0xC0   //显示起始地址(后5位-表示0-31行)
#define page_addr_set  0xB8  	 //页地址设置(0~3)
#define col_addr_set  0x00   	 //列地址设置(0~61)
#define status_busy   0x80 		 //0=ready
#define mode_write          0xEE        //写模式
#define dynamic_driver      0xA4        //动态驱动 
#define adc_select   0xA0  				//clockwise
#define clk32              0xA9  //刷新时钟设置1/32
#define clk16              0xA8  //刷新时钟设置1/16
#define reset       0xE2 		 //软件复位
////新的驱动着重在简化代码,这样外部可调用的函数为:系统初始化,清屏,判忙标志////
////ASCII和汉字混合输出函数,RAM buffer数据显示输出(一般用于输出数字)//////////
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
#define NOP() _nop_();

uchar dot_buffer[32];     	//点阵缓存区
uchar disp_buffer[10]={2,0,0,7,1,0,2,1,};       
							//ram数据显示缓存区

void lcd_init(void);     	//LCD初始化
void lcd_clr(void);         //LCD清屏
void wait_ready(void);      //等待ready
void draw_bmp(uchar col,uchar layer,uchar width,uchar *bmp); 
                            //点阵码显示输出
void disp_one_ascii(uchar col,uchar layer,uchar ascii_code,uchar mode);
                            //单个ascci码输出(ascii_code为ascii编码)
void disp_ram_data(uchar col,uchar layer,uchar n,uchar mode);   
                            //ram数据(数字)显示输出
void dprintf(uchar col,uchar layer,uchar *buf,uchar mode);     
                            //通用混合字串显示          
typedef struct data_gb16    //汉字字模数据结构
{
 uchar index[12];
 uchar zimo[32]; 
};
struct data_gb16 code hz16[] = 
{
"延",
  0x00,0x84,0xC4,0xA4,0x94,0x8C,0x00,0xE4,
  0x04,0x04,0xFC,0x42,0x63,0x42,0x00,0x00,
  0x80,0x44,0x28,0x10,0x2C,0x43,0x40,0x4F,
  0x48,0x48,0x4F,0x48,0x4C,0x68,0x20,0x00,
"时",
  0x00,0xFC,0x84,0x84,0x84,0xFE,0x14,0x10,
  0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x00,
  0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,
  0x00,0x23,0x40,0x80,0x7F,0x00,0x00,0x00, 
"中",
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,
0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,
0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
"北",
0x00,0x20,0x20,0x20,0x20,0xFF,0x00,0x00,
0x00,0xFF,0x40,0x20,0x30,0x18,0x10,0x00,
0x10,0x30,0x18,0x08,0x04,0x7F,0x00,0x00,
0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,
"大",
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,
0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,
0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,
"学",
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,
0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,
0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
"沈",
0x10,0x22,0x64,0x0C,0xA0,0x18,0x08,0x88,
0x7F,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,
0x04,0x04,0xFE,0x81,0x40,0x20,0x18,0x07,
0x00,0x3F,0x40,0x40,0x40,0x40,0x70,0x00,
"阳",
0x00,0xFE,0x02,0x22,0x5A,0x86,0x00,0xFE,
0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,
0x00,0xFF,0x04,0x08,0x04,0x03,0x00,0x3F,
0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,
"测",
0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,
0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00,
0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,
0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00,
"试",
0x40,0x42,0xDC,0x08,0x00,0x90,0x90,0x90,
0x90,0x90,0xFF,0x10,0x12,0x1C,0x10,0x00,
0x00,0x00,0x7F,0x20,0x10,0x20,0x20,0x1F,
0x10,0x10,0x01,0x06,0x18,0x20,0x78,0x00,
"我",
0x20,0x20,0x22,0x22,0xFE,0x21,0x21,0x20,
0x20,0xFF,0x20,0x22,0xAC,0x20,0x20,0x00,
0x04,0x04,0x42,0x82,0x7F,0x01,0x01,0x10,
0x10,0x08,0x07,0x1A,0x21,0x40,0xF0,0x00,
"成",
0x00,0x00,0xF8,0x48,0x48,0x48,0xC8,0x08,
0xFF,0x08,0x09,0x0A,0xC8,0x88,0x08,0x00,
0x40,0x30,0x0F,0x00,0x08,0x50,0x4F,0x20,
0x10,0x0B,0x0C,0x12,0x21,0x40,0xF0,0x00,
"功",
0x00,0x04,0x04,0x04,0xFC,0x04,0x14,0x14,
0x10,0x90,0x7F,0x10,0x10,0xF0,0x00,0x00,
0x04,0x0C,0x04,0x04,0x03,0x42,0x22,0x11,
0x0C,0x23,0x20,0x60,0x20,0x1F,0x00,0x00,
"您",
0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,
0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00,
0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,
0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00
};

uchar code ascii[] = {
//前面0x20(32个)ASCII码为控制命令
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//   
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,//!
0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,
0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00,//"
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00,//#
0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00,
0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00,//$
0x03,0x06,0x04,0x1C,0x1C,0x07,0x03,0x00,
0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00,//%
0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00,
0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00,//&
0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00,
0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00,//'
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,//(
0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00,
0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,//)
0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00,
0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80,//*
0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00,
0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,//+
0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//,
0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,//-
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//.
0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,///
0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,
0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,//0
0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,
0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,//1
0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,
0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,//2
0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,
0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,//3
0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,//4
0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,
0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,//5
0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,//6
0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,//7
0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,
0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,//8
0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,//9
0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:
0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//;
0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00,
0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00,//<
0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,//=
0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00,//>
0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,
0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00,//?
0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,
0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00,//@
0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00,
0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00,//A
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,//B
0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00,
0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00,//C
0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00,
0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,//D
0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00,
0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,//E
0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00,
0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,//F
0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,
0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00,//G
0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00,
0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00,//H
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,//I
0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,//J
0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00,
0x04,0xFC,0xFC,0xC0,0xF0,0x3C,0x0C,0x00,//K
0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00,
0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,//L
0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00,
0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00,//M
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,//N
0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,//O
0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,
0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,//P
0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,
0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,//Q
0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00,
0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,//R
0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,
0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,//S
0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00,
0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,//T
0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,//U
0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,//V
0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00,
0xFC,0xFC,0x00,0x80,0x00,0xFC,0xFC,0x00,//W
0x03,0x0F,0x0E,0x03,0x0E,0x0F,0x03,0x00,
0x0C,0x3C,0xF0,0xC0,0xF0,0x3C,0x0C,0x00,//X
0x0C,0x0F,0x03,0x00,0x03,0x0F,0x0C,0x00,
0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,//Y
0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,//Z
0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00,
0x80,0x80,0x80,0x80,0xe0,0xC0,0x80,0x00,//->0x5b(自定义显示字符) 
0x01,0x01,0x01,0x01,0x07,0x03,0x01,0x00
//0x5c开始可以加入其他的自定义字符
};

////////////////////////////////////////////////////////////////////////////////
//调用方式:void send_mi(uchar instuction)
//函数说明:发指令instruction到主窗口(内函数,私有,用户不能直接调用)
////////////////////////////////////////////////////////////////////////////////
void send_mi(uchar instruction)
{  
 clr_E2();                   //关S    
 set_E1();                   //开M 
 wait_ready();
 clr_A0();       			//指令
 clr_WR();       			//写触发 
 NOP();
 lcd_data = instruction;  	    //指令码
 NOP(); 
    clr_E1();                   //关M
}

////////////////////////////////////////////////////////////////////////////////
//调用方式:void OutMD(uchar i)
//函数说明:发数据data到主窗口(内函数,私有,用户不能直接调用)

⌨️ 快捷键说明

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