#include <AT89X55.H>
#include <intrins.H>
#include <ABSACC.H>
#define uchar unsigned char
#define uint unsigned int
#define SEL27C2001_0 0xFC
#define SEL27C2001_1 0xFD
#define SEL27C2001_2 0xFE
#define SEL27C2001_3 0xFF
#define SEL6264 0xEF
#define SPEED 2
#define reset() {WDT=0x1e;WDT=0xe1;}
sfr WDT=0xa6;
uint data nmpoint;
uchar data col,f,page;
bit loadX=1,loadY;
bit newdata;
uchar xdata XBUFF[160];uchar xdata YBUFF[160];
uchar xdata nm[3000];
sbit SDA=P1^6;
sbit SCL=P1^7;
bdata char com_data;
sbit mos_bit=com_data^7;
sbit low_bit=com_data^0;
/*********************************/
void delay_iic(int n);
uchar rd_24c01(char a);
void wr_24c01(char a,char b);
//********************************
uchar code ASC[];
uchar two_onebyte(uchar h1,uchar h2);
/*********************************/
void HZNM_32byte(uchar n,uchar m)
{
uint data x,y;uchar data z1,z2,i;
if((n>128)&&(m>128))
{
x=(n-0xa1)*94+(m-0xa1);
//======================================================
if(x<2048)
{y=x*32;
for(i=0;i<32;i=i+2)
{P1=SEL27C2001_0;z1=XBYTE[i+y];z2=XBYTE[i+y+1];
P1=SEL6264;
if(loadX)
{XBUFF[5*i+2*f]=z1;XBUFF[5*i+2*f+1]=z2;}
else {YBUFF[5*i+2*f]=z1;YBUFF[5*i+2*f+1]=z2;}}
}
//------------------------------------------------------
if((x>=2048)&&(x<4096))
{y=x-2048;y=y*32;
for(i=0;i<32;i=i+2)
{P1=SEL27C2001_1;z1=XBYTE[i+y];z2=XBYTE[i+y+1];
P1=SEL6264;
if(loadX)
{XBUFF[5*i+2*f]=z1;XBUFF[5*i+2*f+1]=z2;}
else {YBUFF[5*i+2*f]=z1;YBUFF[5*i+2*f+1]=z2;}}
}
//-----------------------------------------------------
if((x>=4096)&&(x<6144))
{y=x-4096;y=y*32;
for(i=0;i<32;i=i+2)
{P1=SEL27C2001_2;z1=XBYTE[i+y];z2=XBYTE[i+y+1];
P1=SEL6264;
if(loadX)
{XBUFF[5*i+2*f]=z1;XBUFF[5*i+2*f+1]=z2;}
else {YBUFF[5*i+2*f]=z1;YBUFF[5*i+2*f+1]=z2;}}
}
//-----------------------------------------------------
if(x>=6144)
{y=x-6144;y=y*32;
for(i=0;i<32;i=i+2)
{P1=SEL27C2001_3;z1=XBYTE[i+y];z2=XBYTE[i+y+1];
P1=SEL6264;
if(loadX)
{XBUFF[5*i+2*f]=z1;XBUFF[5*i+2*f+1]=z2;}
else {YBUFF[5*i+2*f]=z1;YBUFF[5*i+2*f+1]=z2;}}
}
nmpoint=nmpoint+2;
}
//===========================================================
if((n<0x80)&&(m<0x80))
{
x=(n-0x20)*16;y=(m-0x20)*16;P1=SEL6264;
for(i=0;i<16;i++)
{if(loadX)
{XBUFF[10*i+2*f]=ASC[i+x];XBUFF[10*i+2*f+1]=ASC[i+y];}
else {YBUFF[10*i+2*f]=ASC[i+x];YBUFF[10*i+2*f+1]=ASC[i+y];}
}
nmpoint=nmpoint+2;
}
//============================================================
if((n<0x80)&&(m>0x80))
{
x=(n-0x20)*16;P1=SEL6264;
for(i=0;i<16;i++)
{if(loadX)
{XBUFF[10*i+2*f]=ASC[i+x];XBUFF[10*i+2*f+1]=0;}
else {YBUFF[10*i+2*f]=ASC[i+x];YBUFF[10*i+2*f+1]=0;}
}
nmpoint++;
}
}
/*****************************************/
uchar two_onebyte(uchar h1,uchar h2)
{
uchar temp,tempcol;
if(col<8) tempcol=col;
else tempcol=col-8;
temp=(h1<<tempcol)|(h2>>(8-tempcol));
temp=255-temp;
return temp;
}
/******************************************/
void initload(void)
{uint j,iiccnt=0;bit flag=0;
P1=SEL6264;
for(j=0;j<8;j++)nm[j]=0x20;
for(j=8;j<3000;j++)
{
nm[j]=rd_24c01(iiccnt);delay_iic(150);iiccnt++;
if(nm[j]==0x0d||nm[j]==0x0a)j--;
if(iiccnt==256){iiccnt=0;page=page+2;}
if(nm[j]==255){flag=1;break;}
}
if(flag)
{for(iiccnt=j;iiccnt<16+j;iiccnt++)nm[iiccnt]=0x20;
flag=0;iiccnt=0;page=0;}
}
/*******************************************************/
void main(void)
{uint j,nmcnt=0;uchar cnt=0;
reset()
P1=SEL6264;
for(j=0;j<160;j++)XBUFF[j]=0;
for(j=0;j<160;j++)YBUFF[j]=0;
reset()
initload();
reset()
col=16;
TMOD=0x01;
IE=0x83;
IT0=1;
TH0=-(1400/256);
TL0=-(1400%256);
TR0=1;
SCON=0x00;
while(1)
{
if((loadX)||(loadY))
{
nmpoint=nmcnt;
for(f=0;f<5;f++){HZNM_32byte(nm[nmpoint],nm[nmpoint+1]);reset()}
if((nm[nmcnt]<0x80)&&(nm[nmcnt+1]>0x80))nmcnt++;
else
nmcnt=nmcnt+2;
if(nm[nmcnt]==0x20)cnt++;else cnt=0;
if(cnt>=5){nmcnt=0;cnt=0;}
loadX=0;loadY=0;
}
//--------------------------------------
if(newdata)
{
TR0=0;
XBYTE[0xFFFF]=0x10;
P1=SEL6264;
for(j=0;j<160;j++)XBUFF[j]=0;
for(j=0;j<160;j++)YBUFF[j]=0;
reset()
initload();
reset()
col=16;
newdata=0;
TR0=1;
}
}
}
/*******************************************************/
void int_zd0(void) interrupt 0 using 1
{
newdata=1;
}
/******************************************************/
void display()interrupt 1 using 2
{
int data s;
static bit disXY;
static uchar disrow,num;
uchar inc,sr;
sr=P1;
reset()
if(col<8)inc=0;else inc=1;
TH0=-(1400/256);
TL0=-(1400%256);
P1=SEL6264;
//================================================================================
if(!disXY)
{ switch(disrow)
{
case 0:for(s=7+inc;s>=0+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 1:for(s=17+inc;s>=10+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 2:for(s=27+inc;s>=20+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 3:for(s=37+inc;s>=30+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 4:for(s=47+inc;s>=40+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 5:for(s=57+inc;s>=50+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 6:for(s=67+inc;s>=60+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 7:for(s=77+inc;s>=70+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 8:for(s=87+inc;s>=80+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 9:for(s=97+inc;s>=90+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 10:for(s=107+inc;s>=100+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 11:for(s=117+inc;s>=110+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 12:for(s=127+inc;s>=120+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 13:for(s=137+inc;s>=130+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 14:for(s=147+inc;s>=140+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
case 15:for(s=157+inc;s>=150+inc;s--){SBUF=two_onebyte(XBUFF[s],XBUFF[s+1]);while(!TI);TI=0;}break;
default:break;
}
XBYTE[0xFFFF]=0x10+disrow;
XBYTE[0xFFFF]=0x20+disrow;
disrow++;
if(disrow>=16){disrow=0;num++;}
if(num>=SPEED){num=0;col++;}
if(col>=16){col=0;disXY=1;loadX=1;}
}
//==============================================================================
else
{ switch(disrow)
{
case 0:for(s=7+inc;s>=0+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 1:for(s=17+inc;s>=10+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 2:for(s=27+inc;s>=20+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 3:for(s=37+inc;s>=30+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 4:for(s=47+inc;s>=40+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 5:for(s=57+inc;s>=50+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 6:for(s=67+inc;s>=60+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 7:for(s=77+inc;s>=70+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 8:for(s=87+inc;s>=80+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 9:for(s=97+inc;s>=90+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 10:for(s=107+inc;s>=100+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 11:for(s=117+inc;s>=110+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 12:for(s=127+inc;s>=120+inc;s--){SBUF=two_onebyte(YBUFF[s],YBUFF[s+1]);while(!TI);TI=0;}break;
case 13:f
没有合适的资源?快使用搜索试试~ 我知道了~
《单片机智能化产品C语言设计实例详解》
共136个文件
bak:16个
lnp:11个
opt:11个
3星 · 超过75%的资源 需积分: 10 29 下载量 96 浏览量
2009-04-13
11:00:12
上传
评论 2
收藏 573KB RAR 举报
温馨提示
《单片机智能化产品C语言设计实例详解》《单片机智能化产品C语言设计实例详解》
资源推荐
资源详情
资源评论
收起资源包目录
《单片机智能化产品C语言设计实例详解》 (136个子文件)
at89c2051 9KB
at89s52 26KB
wxbj_Uv2.Bak 2KB
at89s52_Opt.Bak 1020B
dhbj_Opt.Bak 1017B
at89c2051_Opt.Bak 1016B
qcqx_Opt.Bak 1010B
wxbj_Opt.Bak 1009B
at89s52_Uv2.Bak 0B
at89c2051_Uv2.Bak 0B
zsp_Uv2.Bak 0B
qcqx_Uv2.Bak 0B
dhbj_Uv2.Bak 0B
wkq_Uv2.Bak 0B
csy_Uv2.Bak 0B
tyj_Uv2.Bak 0B
zly_Uv2.Bak 0B
jnsk_Uv2.Bak 0B
at89s52.c 19KB
wxbj.c 15KB
wkq.c 14KB
zsp.c 11KB
qcqx.c 8KB
tyj.c 7KB
jnsk.c 7KB
dhbj.c 7KB
zly.c 6KB
csy.c 3KB
at89c2051.c 2KB
csy 8KB
dhbj 13KB
单片机与嵌入式系统图书书目--2006年第1期.doc 1.18MB
SEND05.exe 20KB
LED05.exe 20KB
SEND05.frm 12KB
at89s52.hex 17KB
wxbj.hex 8KB
wkq.hex 6KB
zsp.hex 6KB
jnsk.hex 5KB
dhbj.hex 4KB
qcqx.hex 4KB
tyj.hex 3KB
zly.hex 3KB
csy.hex 2KB
at89c2051.hex 1KB
hzk16 256KB
jnsk 16KB
at89s52.lnp 46B
wxbj.lnp 40B
at89c2051.lnp 35B
qcqx.lnp 25B
dhbj.lnp 25B
jnsk.lnp 25B
zsp.lnp 23B
wkq.lnp 23B
csy.lnp 23B
tyj.lnp 23B
zly.lnp 23B
SEND05.log 146B
at89s52.LST 28KB
wxbj.LST 27KB
wkq.LST 23KB
dhbj.LST 15KB
qcqx.LST 15KB
zsp.LST 14KB
jnsk.LST 14KB
tyj.LST 13KB
zly.LST 11KB
csy.LST 6KB
at89c2051.LST 5KB
wxbj.M51 32KB
wkq.M51 27KB
at89s52.M51 20KB
qcqx.M51 19KB
jnsk.M51 16KB
dhbj.M51 16KB
tyj.M51 14KB
zly.M51 12KB
csy.M51 9KB
at89c2051.M51 9KB
zsp.M51 6KB
wxbj.OBJ 39KB
at89s52.OBJ 32KB
wkq.OBJ 27KB
jnsk.OBJ 20KB
qcqx.OBJ 19KB
dhbj.OBJ 16KB
tyj.OBJ 14KB
zly.OBJ 12KB
at89c2051.OBJ 10KB
csy.OBJ 9KB
zsp.OBJ 7KB
at89s52.Opt 1KB
dhbj.Opt 1017B
jnsk.Opt 1017B
at89c2051.Opt 1016B
wxbj.Opt 1016B
tyj.Opt 1016B
zly.Opt 1016B
共 136 条
- 1
- 2
资源评论
- vc8fans2014-04-22可惜没有PDF..
- NextWonders2012-02-06谢谢lz分享。有源码,无目录~~。
zyl_s
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP-JTBC-CMS(SQLITE).rar
- MC3362和MC145151调频无线接收器的设计.pdf
- MiniRenamer-v100.0一款简单易用的批量文件重命名工具(已注册PRO版本).rar
- 小狐狸Ai系统 小狐狸ai付费创作系统V2.8.0 ChatGPT智能机器人
- 公孙离-内衣-肚兜.zipgsl
- 快慢指针判断链表是否有环-go 语言实现
- 学生成绩管理系统的设计与实现-收藏备用.pdf
- JSP+SQL网站流量统计管理系统(源代码+论文).rar
- IBM-PC-XT微机过程...道中模拟量数据的采集和处理.pdf
- JSP+SQL网上选课系统(源代码+论文+答辩PPT).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功