• 大小: 58KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-19
  • 语言: 其他
  • 标签:

资源简介

很好的源代码,ATT7022计量芯片,C编程,很好用,希望大家喜欢

资源截图

代码片段和文件信息

#include

#include

#include
#include

///////////////////头文件包含/////////////////////

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

#define uchar unsigned char

#define uint unsigned int

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

uchar table[]={“welcome to use饫趐lease wait.........“};

uchar tablea[]={“校正中......please wait“};

uchar tableb[]={“校正完毕please choose“};

uchar tablec[]={“丈量中......please wait“};

uchar tablee[]={“丈量完毕please choose“};

uchar tablef[]={“please insert your password“};

void delay(uint ms)//通用延时函数,8M外部晶振下,延时nms

{

uint ij;

for(i=0;i


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



}

///////////////下面是用于128*64液晶显示的子程序///////////////

#define RS (1<<4)

#define RW (1<<5)

#define EN (1<<6)

void s_ms(uint ms)//用于液晶的延时函数

{

for(;ms>1;ms--);

}

//写数据

void WriteDataLCM(unsigned char WDLCM)

{

s_ms(100);

PORTA|=RS;//RS=1

s_ms(100);

PORTA&=~RW;//RW=0

s_ms(100);

PORTA|=EN;//EN=1

s_ms(100);

PORTB=WDLCM;//输出数据

s_ms(100);

PORTA&=~EN;//EN=0

s_ms(100);

}

//写指令

void WriteCommandLCM(unsigned char WCLCM)

{

s_ms(100);

PORTA&=~RS;//RS=0

s_ms(100);

PORTA&=~RW;//RW=0

s_ms(100);

PORTA|=EN;//EN=1

s_ms(100);

 PORTB=WCLCM;//输出指令

s_ms(100);

PORTA&=~EN;//EN=0

s_ms(100);

}

void LCMInit(void)//液晶初始化

{

DDRB=0XFF;

DDRA=0XFF;//数据口于液晶控制口配置为输出

WriteCommandLCM(0x38);//三次显示模式设置,不检测忙信号

s_ms(1000);

WriteCommandLCM(0x38);

s_ms(1000);

WriteCommandLCM(0x38);

s_ms(1000);

WriteCommandLCM(0x38);//显示模式设置开始要求每次检测忙信号

WriteCommandLCM(0x08);//封闭显示

WriteCommandLCM(0x01);//显示清屏

WriteCommandLCM(0x06);//显示光标移动设置

WriteCommandLCM(0x0C);//显示开及光标设置

}

void sz(unsigned long int szchar adresschar i)//指定地址并且显示八位数字

{

char j;

char shuma[8];

shuma[0]=sz%10;//最低位

shuma[1]=sz/10%10;

shuma[2]=sz/10/10%10;

shuma[3]=sz/10/10/10%10;

shuma[4]=sz/10/10/10/10%10;

shuma[5]=sz/10/10/10/10/10%10;

shuma[6]=sz/10/10/10/10/10/10%10;

shuma[7]=sz/10/10/10/10/10/10/10%10;//最高位

WriteCommandLCM(adress);//写进数据显示地址

delay(1);

for(j=8;j--;j>=0)

{

if(j==(i-1))

{

WriteDataLCM(0x2e);

delay(1);

}

WriteDataLCM(0X30+shuma[j]);

//delay(1);

}

}

///////////////液晶显示函数结束///////////////////////

///////////////矩阵键盘扫描检测函数///////////////////

/////由于硬键盘接口接上软键盘后不能用,矩阵按键子程序重新编写,无消抖检测///////

uchar key_value(void)

{

uchar key;

char tem1tem2remi;

rem=0;//不清零会返回一个不可预知的值

DDRD=0x0f;//D口高四位输出低四位输进

PORTD=0xf0;//输进有上拉电阻输出低电平

s_ms(1);

tem1=PIND;//读取端口D

tem1=tem1&0xf0;

if(tem1!=0xf0)//判定是否有键被按下

{

s_ms(200);//延时

tem2=PIND;//读取端口D

tem2=tem2&0xf0;

if(tem1==tem2)//判定是否为干扰

{

DDRD=0xf0;//D口高四位输进低四位输出

PORTD=0x0f;//反相输出

s_ms(50);//换向后要延时

rem=PIND;//读取端口D

rem=rem&0x0f;//取高四位

rem=rem+tem1;//合并

rem=~rem;//反向输出

}

}

key=rem;

switch(key)

{


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14775  2010-11-17 20:21  ATT7022电能计量程序\diannengjiliang.c

     文件          0  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.cof

     文件        114  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.dp2

     文件          0  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.hex

     文件          0  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.i

     文件     283473  2010-11-17 20:22  ATT7022电能计量程序\diannengjiliang.lis

     文件         20  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.lk

     文件        569  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.mak

     文件      76873  2010-11-17 20:22  ATT7022电能计量程序\diannengjiliang.o

     文件        883  2010-11-17 20:43  ATT7022电能计量程序\diannengjiliang.prj

     文件     109847  2010-11-17 20:22  ATT7022电能计量程序\diannengjiliang.s

     文件         52  2010-11-17 20:20  ATT7022电能计量程序\DIANNENGJILIANG.SRC

     文件          2  2010-11-17 20:20  ATT7022电能计量程序\diannengjiliang._c

     目录          0  2010-11-17 20:43  ATT7022电能计量程序

----------- ---------  ---------- -----  ----

               486608                    14


评论

共有 条评论

相关资源