首页 > 试题

dispoint

更新时间:2022-11-15 14:47:15 阅读: 评论:0

初三成长类叙事作文-过路费英文


2022年11月15日发(作者:常州春秋淹城乐园)

#include

#include"mode.h"

sbitRs_Lcd=P3^5;

sbitRw_Lcd=P3^6;

sbitEn_Lcd=P3^7;

sbitCs1_Lcd=P1^0;

sbitCs2_Lcd=P1^1;

sfrDataBuss=0xa0;//P0作为Lcd的数据线

//////////////////////////////////////////////////////

voiddelay_us(unsignedinta)

{

while(a>0)a--;

}

voiddelay_ms(unsignedinta)

{

while(a>0)

{a--;delay_us(1000);}

}

//////////////////////////////////////////////////////////////////////////////

charRdStateLcd()

{

unsignedcharstate;

Rs_Lcd=0;

Rw_Lcd=1;

En_Lcd=1;

state=DataBuss;

En_Lcd=0;

return(state);

}

charWrCommandIc(unsignedcharCommand)

{

unsignedcharstate,tmp;

state=0;

for(tmp=0xFF;(RdStateLcd()&0x80)&&(tmp>0x00);tmp--)

{;}

if(tmp==0)

{state=0xFF;}

el

{

Rs_Lcd=0;

Rw_Lcd=0;

DataBuss=Command;

En_Lcd=1;

En_Lcd=0;

}

return(state);

}

charWrCommandLcd(unsignedcharCommand)

{

unsignedcharstate;

Cs1_Lcd=1;

Cs2_Lcd=0;

state=WrCommandIc(Command);

if(state==0)

{

Cs1_Lcd=0;

Cs2_Lcd=1;

state=WrCommandIc(Command);

}

return(state);

}

charWrDataLcd(unsignedchardat)

{

unsignedcharstate,tmp;

state=0;

for(tmp=0xFF;(RdStateLcd()&0x80)&&(tmp>0x00);tmp--)//banmang?

{;}

if(tmp==0)

{state=0xFF;}

el

{

Rw_Lcd=0;

Rs_Lcd=1;

DataBuss=dat;

En_Lcd=1;

En_Lcd=0;

}

return(state);

}

unsignedcharRdDataLcd()

{

unsignedcharstate,tmp;

unsignedchardat;

state=0;

for(tmp=0xFF;(RdStateLcd()&0x80)&&(tmp>0x00);tmp--)//banmang?

{;}

Rw_Lcd=0;

Rs_Lcd=1;

delay_us(10);

if(tmp==0)

{state=0xFF;}

el

{

Rw_Lcd=1;

Rs_Lcd=1;

dat=DataBuss;

En_Lcd=1;

En_Lcd=0;

}

return(dat);

}

//***********************************************

//*Name:SetStarLine

//*Function:设置显示开始行

//*Description:

//*Calls:

//*Input:line=开始显示的行数?

//*Outputs:返回操作状态

//*RegisterUsage:

//*********************************/

charSetStarLine(charline)

{

charstate;

line=(line&0x3F)|0xC0;

state=WrCommandLcd(line);

return(state);

}

voidInitDis(void)

{

SetStarLine(0x00);

WrCommandLcd(0x3F);//kaixianshi

}

charSysInit(void)

{

unsignedchari,state;

//Rst_Lcd=0;//复位lcd

for(i=0xFF;i>0;i--)//延时1ms

{;}

//Rst_Lcd=1;

SetStarLine(0x00);

InitDis();

return(state);

}

///////////////////////////////////////////////////////////////////////////////////

//****************

//*Name:RdStateLcd

//*Function:读Lcd状态

//*Description:

//*Calls:NO

//*Input:no

//*Outputs:读到的状态

//*RegisterUsage:

//********************************************************/

//********************************/

//*Name:SetStarLine

//*Function:设置当前页地址

//*Description:

//*Calls:

//*Input:page=页地址

//*Outputs:返回操作状态

//*RegisterUsage:

//***************************************/

charSetPageAddr(charpage)

{

charstate;

page=(page&0x07)|0xB8;

state=WrCommandLcd(page);

return(state);

}

//*******************/

//*Name:SetStarLine

//*Function:设置当Y地址

//*Description:

//*Calls:

//*Input:line=开始显示的行数?

//*Outputs:返回操作状态

//*RegisterUsage:

//*********************************/

charSetYAddr(chary)

{

charstate;

y=(y&0x3F)|0x40;

state=WrCommandLcd(y);

return(state);

}

//////////////////////////////////////////////////////////////////////////////

//*********************/

//*Name:DisWord

//*Function:汉字串显示程序

//*Description:

//*Calls:NO

//*Input:*p=字符串首地址

//*page=显示页地址

//*y=显示起始y地址

//*Outputs:No

//*RegisterUsage:

//***************************************/

voidDisWord(unsignedchar*p,unsignedcharpage,unsignedchary,charstate)

{

unsignedchari,j,tmp;

for(j=0;j<2;j++)

{

SetPageAddr(page+j);

if(y<64)

{i=y;}

el

{i=y-64;}

SetYAddr(i);

//SetStarLine(i);

if(y<64)

{

Cs1_Lcd=1;

Cs2_Lcd=0;

}

el

{

Cs1_Lcd=0;

Cs2_Lcd=1;

}

for(i=16;i<32;i++)

{

tmp=p[i-16*j];//daohuanhoumiandezaishangmian

if(state==1)

{

tmp=~tmp;

}

WrDataLcd(tmp);

}

}

//WrCommandLcd(0x3F);/*tiaoshi*/

}

voidDisChar(unsignedchar*p,unsignedcharpage,unsignedchary,charstate)

{

unsignedchari,j,tmp;

for(j=0;j<2;j++)

{

SetPageAddr(page+j);

if(y<64)

{i=y;}

el

{i=y-64;}

SetYAddr(i);

//SetStarLine(i);

if(y<64)

{

Cs1_Lcd=1;

Cs2_Lcd=0;

}

el

{

Cs1_Lcd=0;

Cs2_Lcd=1;

}

for(i=8;i<16;i++)

{

tmp=p[i-8*j];

if(state==0x01)

{tmp=~tmp;}

WrDataLcd(tmp);

}

}

}

voidDispoint(unsignedcharpage,unsignedchary)

{

unsignedchari,j,tmp=0;

unsignedchara=0,b=0;

unsignedcharstate=0;

//a=page/8;b=page%8;

a=0;

SetPageAddr(a);

if(y<64)

{i=y;}

el

{i=y-64;}

SetYAddr(i);

if(y<64)

{

Cs1_Lcd=1;

Cs2_Lcd=0;

}

el

{

Cs1_Lcd=0;

Cs2_Lcd=1;

}

//tmp|=(1<

//tmp=88;

//WrDataLcd(tmp);

WrDataLcd(page);

}

/*

voidDisread(unsignedcharpage,unsignedchary)

{

unsignedchari,j,tmp=0;

unsignedchara=0,b=0;

unsignedcharstate=0;

a=page/8;b=page%8;

SetPageAddr(a);

if(y<64)

{i=y;}

el

{i=y-64;}

SetYAddr(i);

if(y<64)

{

Cs1_Lcd=1;

Cs2_Lcd=0;

}

el

{

Cs1_Lcd=0;

Cs2_Lcd=1;

}

state=RdDataLcd();

DisChar(fig[state/10],6,32,0);

DisChar(fig[state%10],6,40,0);

//DisChar(fig[state/10],6,32,0);

}

*/

unsignedchargetState()

{

unsignedcharstate=0;

Cs1_Lcd=0;

Cs2_Lcd=0;

Rs_Lcd=0;

Rw_Lcd=1;

En_Lcd=1;//下降沿

En_Lcd=0;

state=DataBuss;

returnstate;

}

unsignedcharlcdBusy()

{

unsignedcharstate=0;

state=getState();

if(state&0x80)

{//BUSY

return1;

}

el

{//idle

return0;

}

}

////////////////////////////////////////////////////////////////////////////////

voidClrScreen(void)

{

chari,j,state;

for(j=0;j<8;j++)

{

state=SetPageAddr(j);

state=SetYAddr(0x00);

Cs1_Lcd=1;

Cs2_Lcd=0;

for(i=0;i<64;i++)//清

{

state=WrDataLcd(0);

}

Cs1_Lcd=0;

Cs2_Lcd=1;

for(i=0;i<64;i++)//清

{

state=WrDataLcd(0);

}

}

}

voiddisp_lcd_left(unsignedchar*p,unsignedcharpage,unsignedchary)

{

unsignedchari;

SetPageAddr(page);

SetYAddr(y);

Cs1_Lcd=1;

Cs2_Lcd=0;

for(i=0;i<16;i++)

{

WrDataLcd(p[i]);

}

WrCommandLcd(0x3F);/*tiaoshi*/

SetPageAddr(page-1);

SetYAddr(y);

Cs1_Lcd=1;

Cs2_Lcd=0;

for(i=16;i<32;i++)

{

WrDataLcd(p[i]);

}

}

voiddisp_lcd_right(unsignedchar*p,unsignedcharpage,unsignedchary)

{

unsignedchari;

SetPageAddr(page);

SetYAddr(y);

Cs1_Lcd=0;

Cs2_Lcd=1;

for(i=0;i<16;i++)

{

WrDataLcd(p[i]);

}

WrCommandLcd(0x3F);/*tiaoshi*/

SetPageAddr(page-1);

SetYAddr(y);

Cs1_Lcd=0;

Cs2_Lcd=1;

for(i=16;i<32;i++)

{

WrDataLcd(p[i]);

}

}

////////////////////////////////////////////////////////////////////////////////

voiddisp_binglun()

{

unsignedchar*p;

//p=bing;

ClrScreen();

disp_lcd_left(bing,0x03,20);

WrCommandLcd(0x3F);

p=lun;

disp_lcd_left(lun,0x03,44);

p=ji;

disp_lcd_right(ji,0x03,4);

p=tuan;

disp_lcd_right(tuan,0x03,28);

DisChar(fig[1],6,32,0);

DisChar(fig[2],6,40,0);

DisChar(fig[3],6,48,0);

DisChar(fig[4],6,56,0);

DisChar(fig[5],6,64,0);

DisChar(fig[6],6,72,0);

DisChar(fig[7],6,80,0);

DisChar(fig[8],6,88,0);

}

//////////////////////////////////////////////////////

voidmain()

{

charSonState;

unsignedchari=0;

unsignedchardat=0;

unsignedcharstate,tmp;

state=0;

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay_us(100);

do{

SonState=SysInit();

}while(SonState!=0);

ClrScreen();

while(1)

{

for(i=0;i<256;i++)

{

Dispoint(i,5);

delay_ms(20);

for(tmp=0xFF;(RdStateLcd()&0x80)&&(tmp>0x00);tmp--)

{;}

if(tmp==0)

{state=0xFF;}

el

{

Rs_Lcd=1;

Rw_Lcd=1;

dat=DataBuss;

En_Lcd=1;

En_Lcd=0;

}

DisChar(fig[dat/100],6,32,0);

DisChar(fig[dat%100/10],6,40,0);

DisChar(fig[dat%10],6,48,0);

}

i=0;

ClrScreen();

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////

不含竖直线

voidDispoint(unsignedcharpage,unsignedchary)

{

unsignedchari,j,tmp=0;

unsignedchara=0,b=0;

unsignedcharstate=0;

a=page/8;b=page%8;

SetPageAddr(a);

if(y<64)

{i=y;}

el

{i=y-64;}

SetYAddr(i);

if(y<64)

{

Cs1_Lcd=1;

Cs2_Lcd=0;

}

el

{

Cs1_Lcd=0;

Cs2_Lcd=1;

}

tmp|=1<<(b);

WrDataLcd(tmp);

}

/*

while(1)

{

for(i=0;i<64;i++)

{Dispoint(i,i);

delay_ms(2);}

ClrScreen();

for(i=0;i<64;i++)

{Dispoint(63-i,64+i);

delay_ms(2);}

ClrScreen();

for(i=0;i<128;i++)

{Dispoint(0,127-i);

delay_ms(2);}

ClrScreen();

}

*/

////////////////////////////////////////////////////////////////////

读竖直线

voidmain()

{

charSonState;

unsignedchari=0;

unsignedchardat=0;

unsignedcharstate,tmp;

state=0;

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

delay_us(100);

do{

SonState=SysInit();

}while(SonState!=0);

ClrScreen();

while(1)

{

for(i=0;i<256;i++)

{

Dispoint(i,5);

delay_ms(20);

////////////////////////////////读取数据ram

for(tmp=0xFF;(RdStateLcd()&0x80)&&(tmp>0x00);tmp--)

{;}

if(tmp==0)

{state=0xFF;}

el

{

Rs_Lcd=1;

Rw_Lcd=1;

dat=DataBuss;

En_Lcd=1;

En_Lcd=0;

}

////////////////////////////////

DisChar(fig[dat/100],6,32,0);

DisChar(fig[dat%100/10],6,40,0);

DisChar(fig[dat%10],6,48,0);

}

i=0;

ClrScreen();

}

}

本文发布于:2022-11-15 14:47:15,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/24924.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:铁槛寺
下一篇:数学字母
标签:dispoint
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图