📄 display2x6_1.c
字号:
/******************************************************************/
/**文件名: display2x6.c **/
/** **/
/**文件描述: 若外部RAM在写操作时,则LED屏清屏 **/
/** 在非清屏的情况下,读取外部RAM的数据,并显示在LED屏上 **/
/** 在非清屏的情况下,若全屏引脚为低时,显示屏全亮 **/
/** **/
/**创建人: 陈芸 时间:2007年7月17日 **/
/** **/
/**版本号: 01 **/
/**修改记录 **/
/******************************************************************/
#include<reg52.h>
#include<absacc.h>
#include<def_pin.h>
#include<def_para.h>
void WDFeed(void);
void nnDisp8x12_1(void);
void nnDisp8x12_2(void);
void nnDisp8x12_3(void);
void nnDisp8x12_4(void);
void nnDisp8x12_001(void);
void nnDisp8x12_002(void);
void nnDisp8x12_003(void);
void nnDisp8x12_004(void);
void main(void)
{
uint data i=0,j=0,k=0,tp=0;
bit f_rdram=1;
/******************初始化**********************/
//片内扩展DATA设置
CHPENR=0x87;
CHPENR=0x59;
CHPCON|=0x10;//片内外部存储器写允许 //CHPCON=0x00; ----则片内外部存储器写禁止
while(1)
{
WDFeed();
if(pin_wrram==0)
{
if(f_rdram==1)
{
f_rdram=0;
for(i=0;i<256;i++)
{
CHPCON=0x00;
ce_ram=0;
tp=nDispRam[i];
ce_ram=1;
CHPCON|=0x10;
tt[i]=tp;
}
WDFeed();
for(i=0;i<128;i++)
{
CHPCON=0x00;
ce_ram=0;
tp=nDispRam[256+i];
ce_ram=1;
ttt[i]=tp;
}
CHPCON|=0x10;
}
if(pin_full==1)
{
nnDisp8x12_1();
nnDisp8x12_2();
nnDisp8x12_3();
nnDisp8x12_4();
}
else
{
nnDisp8x12_001();
nnDisp8x12_002();
nnDisp8x12_003();
nnDisp8x12_004();
}
}
else
{
ce1_138=1;
ce2_138=1;
ce3_138=1;
ce4_138=1;
f_rdram=1;
ce_ram=1;
}
}
}
/*****************************/
/**函数名: 喂狗程序
/**参数 : 无
/*****************************/
void WDFeed(void)
{
wdi=0;
wdi=1;
}
/*****************************/
/**函数名: 第一个8行显示程序
/**参数 : 无
/*****************************/
void nnDisp8x12_1(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tmp=linecnt*12+columncnt;
tp=tt[tmp];
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x70|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第二个8行显示程序
/**参数 : 无
/*****************************/
void nnDisp8x12_2(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tmp=96+linecnt*12+columncnt;
tp=tt[tmp];
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x68|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第三个8行显示程序
/**参数 : 无
/*****************************/
void nnDisp8x12_3(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tmp=192+linecnt*12+columncnt;
if(tmp<256)
{
tp=tt[tmp];
}
else
{
tp=ttt[tmp-256];
}
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x58|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第四个8行显示程序
/**参数 : 无
/*****************************/
void nnDisp8x12_4(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tmp=288+linecnt*12+columncnt;
tp=ttt[tmp-256];
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x38|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第一个8行显示满屏程序
/**参数 : 无
/*****************************/
void nnDisp8x12_001(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tp=0;
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x70|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第二个8行显示满屏程序
/**参数 : 无
/*****************************/
void nnDisp8x12_002(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tp=0;
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x68|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第三个8行显示满屏程序
/**参数 : 无
/*****************************/
void nnDisp8x12_003(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tp=0;
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x58|linecnt;
rck=0;
rck=1;
}
}
/*****************************/
/**函数名: 第四个8行显示满屏程序
/**参数 : 无
/*****************************/
void nnDisp8x12_004(void)
{
uchr serialcnt=0,columncnt=0,linecnt=0,tp=0;
uint tmp=0;
for(linecnt=0;linecnt<8;linecnt++) //8行
{
for(columncnt=0;columncnt<12;columncnt++) //j个595串联
{
tp=0;
for(serialcnt=0;serialcnt<8;serialcnt++)//单个595
{
sck=0;
ser=tp&0x80;
tp=tp*2;
sck=1;
}
}
P3=P3&0x80|0x38|linecnt;
rck=0;
rck=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -