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

📄 1.c

📁 12232驱动程序 调试通过 中北大学信息与通信工程学院 沈阳 QQ:184676957
💻 C
字号:
#include <reg51.h>
#include <intrins.h>
sbit E2 = P3^5;
sbit E1 = P3^6;
sbit A0 = P3^7;
#define DATA P2
#define uchar unsigned char
 /*- 调用方式:void OutMI(uchar i) 函数说明:发指令i到主窗口。(内函数,私有,用户不直接调用) ------------------------------------------------------------------------------*/ 
void OutMI(uchar i) 
{ 
E1=1;
_nop_();
_nop_();
 A0=0;
_nop_();
_nop_();
 DATA=i;
_nop_();
_nop_(); 
E1=0;
_nop_();
_nop_();
 } 
/*--- 调用方式:void OutMD(uchar i) 函数说明:发数据i到主窗口。(内函数,私有,用户不直接调用)*/ 
void OutMD(uchar i) 
{ E1=1;_nop_();_nop_(); 
A0=1;_nop_();_nop_();
 DATA=i;_nop_();_nop_(); 
E1=0;_nop_();_nop_(); 
} /*调用方式:void OutSI(uchar i) 函数说明:发指令i到从窗口。(内函数,私有,用户不直接调用)*/ 
void OutSI(uchar i)
 { A0=0;_nop_();_nop_(); 
E2=1;_nop_();_nop_(); 
DATA=i;_nop_();_nop_(); 
E2=0;_nop_();_nop_(); } /*调用方式:void OutSD(uchar i) 函数说明:发数据i到从窗口。(内函数,私有,用户不直接调用) */
 void OutSD(uchar i) 
{ A0=1;_nop_();_nop_();
 E2=1;_nop_();_nop_(); DATA=i;
_nop_();_nop_(); E2=0;_nop_();_nop_();
 } /*-调用方式:void LcdIni(void) 函数说明:12232点阵液晶初始化,开机后仅调用一次。 -*/
 void LcdIni(void) 
{
OutMI(0XE2);
OutSI(0XE2);//复位
OutMI(0XAE);OutSI(0XAE);//POWER SAVE 
OutMI(0XA4);OutSI(0XA4);//动态驱动 
OutMI(0XA9);OutSI(0XA9);//1/32占空比 
OutMI(0XA0);OutSI(0XA0);//时钟线输出 
OutMI(0XEE);OutSI(0XEE);//写模式 
OutMI(0X00);OutMI(0XC0); OutSI(0X00);OutSI(0XC0); OutMI(0XAF);OutSI(0XAF); } /*-调用方式:void SetPage(uchar page0,uchar page1) 函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)*/
void SetPage(uchar page0,uchar page1)
{
OutMI(0xB8|page1);
OutSI(0xB8|page0);
} /*调用方式:void SetAddress(uchar address0,uchar address1) 函数说明:同时设置主从列地址为0-121。(内函数,私有,用户不直接调用) */
void SetAddress(uchar address0,uchar address1) 
{ 
OutMI(address1&0x7F);OutSI(address0&0x7F); } /*调用方式:void PutChar0(uchar ch) 函数说明:在左页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)*/ 
void PutChar0(uchar ch) { OutSD(ch); } /*调用方式:void PutChar1(uchar ch) 函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)*/ 
void PutChar1(uchar ch) { OutMD(ch); } /*调用方式:void DrawBmp(uchar x,bit layer,uchar width,uchar *bmp) 函数说明:画一个图,横坐标是x,layer表示上下层,width是图形的宽,高都是16,bmp是图形指针使用zimo21软件,采用纵向取模得到bmp数据*/ 
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
{ uchar x,address,i=0; //address表示显存的物理地址
uchar page=0; bit window=0; //page表示上下两页,window表示左右两页 
if (layer) page=2; 
//for (x=x0;x60) {window=1;address=x%61;} 
else address=x; SetPage(page,page); SetAddress(address,address); 
if (window) PutChar1(bmp[i]); 
else PutChar0(bmp[i]);//画上层 
SetPage(page+1,page+1); SetAddress(address,address); 
if (window) PutChar1(bmp[i+width]); 
else PutChar0(bmp[i+width]);//画下层
i++; }  /*调用方式:void clrscr(void) 函数说明:清屏*/ 
void clrscr(void) 
{ uchar i; uchar page; 
for (page=0;page<4;page++) 
{ SetPage(page,page); SetAddress(0,0); 
for (i=0;i<61;i++){PutChar0(0);PutChar1(0);}
 } 
} 

⌨️ 快捷键说明

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