ARM单片机    PCB技术    51单片机    PIC单片机    AVR单片机   PLD逻辑器件   电子电路   
   业界新闻    芯片资料   电子论坛    搜索本站  编程器软件   半导体博览   

单片机解密、IC解密、芯片解密

始自从2002年,单片机、PLD解密业界的元老和开拓者!重信誉,重诚信,是我们多年来存在的力量的源泉!

PCB抄板

经验丰富的工程师,智能校对软件,无论双面板多层板保证一个原板100%成功。
提供单片机程序修改,PIC单片机、51单片机、AVR单片机和ARM三星SC244X等32位单片机反汇编程序修改
★ 推出NEC UPD78F系列单片机解密 ⊙ALTERA公司CPLD型号:EMP7064、EPM7128、EPM7032、EMP3128、EPM3032
请告诉我们您的需求,相信我们是最有实力为您服务的!
主页   ※ PCB抄板  ◇ 试制样机  ◎ 芯片解密   ∽ IC解密  ◇ 知识产权案例  ◇ 联系我们

在线QQ点击咨询:498187676    PCB抄板,IC解密,单片机解密,芯片解密,样机制作,技术疑难问题攻克
电话:
(0755)88820678,手机:13713820066 电子邮件:pcbic@vip.163.com
星光电子技术最新提供IC代烧写服务!IC型号鉴定和IC查型号服务!
  2012年02月06日 星期一
液晶显示程序
  发表于: 7/11/2006 - 02:38
/**************************************************
* 平凡单片机工作室
*  http://www.mcustudio.com
* Copyright 2003 pingfan's McuStudio
* All rights Reserved
*作者:周坚
*yj.c
*连线图:
* DB0---DPROT.0 DB4---DPROT.4 RS-------------P2.5
* DB1---DPROT.1 DB5---DPROT.5 RW-------------P2.6
* DB2---DPROT.2 DB6---DPROT.6 E--------------P2.7
* DB3---DPROT.3 DB7---DPROT.7 VLCD接10K可调电阻到GND*
*80C51的晶振频率为12MHz
*液晶显示程序
***************************************************/
#include "reg51.h"
#include
#include
#define DPORT P0
#define uchar unsigned char
sbit RS = P2^5;
sbit RW = P2^6;
sbit E = P2^7;

uchar Xpos; //列方向地址指针
uchar Ypos; //行方向地址指针


#define NoDisp 0
#define NoCur 1
#define CurNoFlash 2
#define CurFlash 3
/*延时程序
由Delay参数确定延迟时间
*/

void LcdWcn(uchar);
void LcdWc(uchar);
void WriteChar(uchar);
void LcdPos();
void LcdWd(uchar);
void LcdWdn(uchar);


void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}

/*光标设置命令
Cur 为设定光标参数
*/
void SetCur(uchar Cur)
{ switch(Cur)
{ case 0x0:
{ LcdWc(0x08); //关显示
break;
}
case 0x1:
{ LcdWc(0x0c); //开显示但无光标
break;
}
case 0x2:
{ LcdWc(0x0e); //开显示有光标但不闪烁
break;
}
case 0x3:
{ LcdWc(0x0f); //开显示有光标且闪烁
break;
}
default: break;
}
}
/*清屏命令
*/
void ClrLcd()
{ LcdWc(0x01);
}
/*在指定的行与列显示
*/
void WriteChar(uchar c)
{ LcdPos();
LcdWd(c);
}
/*正常读写操作之前检测LCD控制器
*/
void WaitIdle()
{ uchar tmp;
DPORT=0xff;
RS=0;
RW=1;
E=1;
_nop_();
for(;;)
{ tmp=DPORT;
tmp&=0x80;
if(tmp==0)
break;
}
E=0;
}

/*不检测忙的写字符子程序
*/
void LcdWdn(uchar c)
{
RS=1;
RW=0;
DPORT=c; //写入待写字符
E=1;
_nop_();
E=0;
}
/*带忙检测的写字符子程序
*/
void LcdWd(uchar c)
{ WaitIdle();
LcdWdn(c);
}

/*检测忙信号的送控制字子程序*/
void LcdWcn(uchar c)
{ RS=0;
RW=0;
DPORT=c;
E=1;
_nop_();
E=0;
}
/*检测忙信号的送控制字子程序*/
void LcdWc(uchar c)
{ WaitIdle();
LcdWcn(c);
}
void LcdPos()
{ uchar tmp;
Xpos&=0x0f; //16xx型液晶的范围是0~15
Ypos&=0x01; //Y的范围是0~1
tmp=Xpos;
if(Ypos==1)
{ tmp+=0x40;
}
tmp|=0x80;
LcdWc(tmp);
}

/*LCD的复位程序
*/
void RstLcd()
{ mDelay(15); //延时15ms
LcdWcn(0x38);
mDelay(5);
LcdWcn(0x38);
mDelay(5);
LcdWcn(0x38);

LcdWc(0x38);
LcdWc(0x08);
LcdWc(0x01);
LcdWc(0x06);
LcdWc(0x0c);
}

void WriteString(char s[])
{ uchar pS=0;
for(;;)
{ WriteChar(s[pS]);
pS++;
if(s[pS]==0)
break;
if(++Xpos>=15) //每行最多显示16个字符
break;
}
}

void main()
{ uchar s1[]="Hellow World!";
RstLcd(); //复位LCD
ClrLcd();
SetCur(CurFlash); //光标显示且闪烁
Xpos=2;
Ypos=1;
WriteString(s1);
for(;;)
{;}
}

 
 


  All Rights Reserved (C)2002-2008 星光电子技术工作室,深圳市星光威电子有限公司
星星之火,可以燎原
【 从事于单片机解密,IC解密,芯片解密,CPLD解密加密技术研究,PCB抄板,样机制作,提供芯片解密服务,仅供合法研究学习用途 】
如有任何问题和建议请联系:pcbic@vip.163.com
地址:深圳市福田区华强北路华强电子世界华强广场B座12楼C号 电话:(0755)88820678
手机:13713820066 联系人:周工
在线QQ点击咨询:498187676