资源简介

包含所有的atmega128内部资源代码 液晶1602 12864 iic读写24c04 按键 pwm 串口 4*4按键 数模转换 模数转换 外部中断

资源截图

代码片段和文件信息

//12864液晶的试验程序驱动芯片为ST7920
//目标板为DDC-128B
//驱动方式位并口
//JP10的所有短路块拔掉,JP4短路块位于右侧,JP7两个短路块均插好
//调节V0电位器调整对比度
//注意:因为厂家不同液晶的19脚和20脚(背光)有时会不同,导致背光不亮,需要注意。

#include 
#include 

#define uchar unsigned char 
#define uint unsigned int 

#define RS (1<<0)
#define RW (1<<1)
#define EN (1<<2)

//延时函数
void s_ms(uint ms)
{
for(;ms>1;ms--);
}

//此处定义字符串
char text_1[]={“北京东控开发板“};
char text_2[]={“WWW.ISMCU.COM“};
char text_3[]={“WDD_CN@126.COM“};
char text_4[]={“QQ:621520“};

//写数据
void WriteDataLCM(unsigned char WDLCM)
{
ReadStatusLCM(); //检测忙
s_ms(100);
PORTG|=RS;       //RS=1    
s_ms(100);
PORTG&=~RW;      //RW=0
s_ms(100);
PORTG|=EN;       //EN=1
s_ms(100);
PORTA=WDLCM;     //输出数据
s_ms(100);
PORTG&=~EN;      //EN=0
s_ms(100);
}

//写指令
void WriteCommandLCM(unsigned char WCLCM) 
{
ReadStatusLCM(); //根据需要检测忙
s_ms(100);
PORTG&=~RS;      //RS=0
s_ms(100);
PORTG&=~RW;      //RW=0
s_ms(100);
PORTG|=EN;       //EN=1
s_ms(100);
PORTA=WCLCM;     //输出指令
s_ms(100);
PORTG&=~EN;      //EN=0
s_ms(100);
}

//读状态:检测忙
void ReadStatusLCM(void)
{
uchar temp;
    uchar flag = 1;
    while(flag==1)
{
    DDRA=0x00;      //端口A改为输入
PORTA=0xff;    
s_ms(100);
PORTG&=~RS;     //RS=0
s_ms(100);
PORTG|=RW;      //RW=1
s_ms(100);
PORTG|=EN;      //EN=1
s_ms(100);
temp = PINA;    //读端口A
s_ms(100);
DDRA=0xff;      //端口A改为
s_ms(100);
PORTG&=~EN;     //EN=0
s_ms(100);
if(temp>>7==0)
flag = 0;
}
}

//LCM初始化
void LCMInit(void) 
{
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);    //显示开及光标设置
}

//按指定位置显示一串字符
//液晶显示:汉字为16*16,字母及数字为8*16,此次显示的文本
//          从第一行第一列开始,依次向左,如果想在不同的
//          位置显示,只需修改相应的行值即可。液晶显示
//          完毕后,转入语音文本发送。
//DisplsyList(XDData)函数:X为0x80在第一行显示;X为0x90在
// 第二行显示;X为0x88在第三行显示;X为0x98在
// 第四行显示;DData为显示数组。
void DisplayList(unsigned char Xchar *DData)
{
unsigned char length;
unsigned char i=0;
char *p;
p = DData;
length = strlen(p);
WriteCommandLCM(0x08);
WriteCommandLCM(X);
WriteCommandLCM(0x06);
WriteCommandLCM(0x0C);
WriteCommandLCM(X);
for(i=0;i {
WriteDataLCM(DData[i]);
i++;
WriteDataLCM(DData[i]);
}
}

//主函数
void main(void)
{
    //端口初始化
DDRA=0xff;
PORTA=0xff;
DDRB=0xff;
PORTB=0xff;
DDRG=0xff;
PORTA=0x00;
PORTG|=(1<<3);


s_ms(200); 
s_ms(200);  
LCMInit(); //LCM初始化   //液晶初始化

    DisplayList(0x80text_1);     //显示第一行
DisplayList(0x90text_2);     //显示第二行
DisplayList(0x88text_3);     //显示第三行
DisplayList(0x98text_4);     //显示第四行
while(1);
}

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

     文件       3302  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.c

     文件       3491  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.cof

     文件       2244  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.dbg

     文件        103  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.dp2

     文件       1967  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.hex

     文件      24527  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.lis

     文件         15  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.lk

     文件      14815  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.lst

     文件        648  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.mak

     文件       2208  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.mp

     文件       5987  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.o

     文件       1023  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.prj

     文件      10945  2008-12-17 12:03  128实验程序\12864-7920液晶\12864-7920.s

     文件         47  2008-12-20 10:48  128实验程序\12864-7920液晶\12864-7920.SRC

     文件       3316  2008-12-17 12:01  128实验程序\12864-7920液晶\12864-7920._c

     文件        589  2008-09-28 20:51  128实验程序\1602液晶\1602.c

     文件       5347  2008-11-03 12:07  128实验程序\1602液晶\1602.cof

     文件       3761  2008-11-03 12:07  128实验程序\1602液晶\1602.dbg

     文件         98  2008-11-03 12:07  128实验程序\1602液晶\1602.dp2

     文件       4439  2008-09-28 20:46  128实验程序\1602液晶\1602.H

     文件       3478  2008-11-03 12:07  128实验程序\1602液晶\1602.hex

     文件      32750  2008-11-03 12:07  128实验程序\1602液晶\1602.lis

     文件          9  2008-11-03 12:07  128实验程序\1602液晶\1602.lk

     文件      25555  2008-11-03 12:07  128实验程序\1602液晶\1602.lst

     文件        645  2008-11-03 12:07  128实验程序\1602液晶\1602.mak

     文件       2169  2008-11-03 12:07  128实验程序\1602液晶\1602.mp

     文件      10554  2008-11-03 12:07  128实验程序\1602液晶\1602.o

     文件       1054  2008-11-03 12:07  128实验程序\1602液晶\1602.prj

     文件      13150  2008-11-03 12:07  128实验程序\1602液晶\1602.s

     文件         41  2008-11-03 16:42  128实验程序\1602液晶\1602.SRC

............此处省略361个文件信息

评论

共有 条评论