ht1621b和单片机电平匹配

阅读: 评论:0

ht1621b和单片机电平匹配

ht1621b和单片机电平匹配

#define SYSEN 0x02//打开系统振荡器

#define LCDON 0x06//打开LCD偏压发生器

#define RC256 0x30//片内RC振荡器

#define BIAS 0x52//LCD 1/3偏压 4个公共端口

#define SYSDIS 0x00

#define WDTDIS 0x0a

sbit cs=P1^7;

sbit rd=P3^2;

sbit wr=P3^3;

sbit dat=P3^4;

uchar table[]={

0x0f,0x0f,0x0f,0x0f,

0x0f,0x0f,0x0f,0x0f,

0x0f,0x0f,0x0f,0x0f,

0x0f,0x0f,0x0f,0x0f,0x0f,};

uchar table1[]={

0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xf0,};

uchar table2[]={

0xe6,0xf8,0xb0,0xb0,0xbe,};

uchar table3[]={

0x01,0x03,0x07,0x0f,};

uchar table4[]={

0xde,0x22,0xfe,0x22,

0x0e,0x22,0xfa,0x22,

0xda,0x22,0xc6,0x22,

0x5e,0x22,0x7c,0x22,

0x06,0x22,0xbe,0x22 ,};

uchar table5[]={

0xbe,0x06,0x7c,0x5e,

0xc6,0xda,0xfa,0x0e,

0xfe,0xde,};

void wr_data(uchar da,uchar cnt)//写数据函数

{

uchar i;

for(i=0;i

{

wr=0;

delayus(10);

dat=(bit)(da&0x80);/*if(da>=0x80)

dat=1;

else

dat=0;*/

delayus(10);

wr=1;

delayus(10);

da<<=1;

}

}

void wr_clearlcd()//清屏

{

uchar i;

cs=0;

delayus(10);

wr_data(0xa0,3);

wr_data(0x00<<2,6);

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

{

wr_data(0x00,8);

}

cs=1;

delayus(10);

}

void wr_com(uchar com)//写命令函数

{

cs=0;

delayus(10);

wr_data(0x80,4);

wr_data(com,8);

cs=1;

delayus(10);

}

void wr_all_lcd(uchar add,uchar *p,uchar cnt)//写连续地址

{

uchar i;

cs=0;

delayus(10);

wr_data(0xa0,3);

wr_data(add<<2,6);

for(i=0;i

{

wr_data(*p,8);

p++;

}

cs=1;

delayus(10);

}

void lcd_init()

{

cs=1;

wr=1;

dat=1;

delayms(20);

wr_com(BIAS);

wr_com(RC256);

wr_com(SYSDIS);

wr_com(WDTDIS);

wr_com(SYSEN);

wr_com(LCDON);

wr_clearlcd();

}

void wr_add_data(uchar add,uchar dat)

{

cs=0;

delayus(10);

wr_data(0xa0,3);

wr_data(add<<2,6);

wr_data(dat<<4,4);//数据位为4位

cs=1;

delayus(10);

}

void daoshu(uchar add,uchar *p,uchar cnt)

{

uchar i,a,b;

cs=0;

delayus(10);

wr_data(0xa0,3);

for(i=0;i

{

wr_data(add<<2,6);

for(a=0;a<6;a++)

wr_data(*p,8);

p++;

for(b=0;b<3;b++)

wr_data(*p,8);

p++;

delayms(1000);

wr_clearlcd();

cs=0;

delayus(10);

wr_data(0xa0,3);

}

cs=1;

delayus(10);

wr_clearlcd();

cs=0;

delayus(10);

wr_data(0xa0,3);

wr_data(0x08<<2,6);

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

wr_data(0xbe,8);

cs=1;

delayus(10);

wr_add_data(0x10,0x02);

}

void ceshi(uchar add)//一段一段点亮全屏测试

{

uchar i,num,*p=table3;

for(num=0;num<17;num++)

{

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

{

cs=0;

delayus(10);

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

本文发布于:2024-02-02 13:13:31,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170685081044035.html

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

标签:电平   单片机   ht1621b
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23