资源简介
包含所有的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个文件信息
相关资源
- 基于ATmega128和CH374的USB接口设计
- 单片机实验程序,全
- Atmega1280芯片资料
- ICCAVR v6.31a破解版+注册工具
- ICCAVR7.0破解版
- 投针实验程序,投针实验,程序
- MSP430实验程序大全
- ATmega128 开发板PCB
- ICCAVR7.22直接安装不需要注册
- RS232串口实验程序
- iccavr7.22.rar
- 普中科技51单片机开发板的实验程序资
- 广东工业大学操作系统实验程序及报
- ATMEGA128最小系统板——基于protel99se的
- 27个VHDL语言的实验程序和仿真图
- ATmega128单片机入门与提高
- Atmega128中文数据手册
- MSP430F5529的实验程序(包含了所有的库
- STC12C5A60S2单片机串口实验程序
- 用VC控件实现的modbus通信实验程序
- ATMEGA128例程
- ATmega128单片机入门与提高 沈建良版例
- ATMEGA128单片机入门与提高_part2
- ATMEGA128全套例程
- ICCAVR_V7.22破解版
- TCP_IP网络实验程序篇
- AVR-atmega128开发板原理图
- 《TCP/IP网络实验程序篇》源码
- 基于NS2仿真组播路由协议实现的实验
- 计算机图形学实验程序
评论
共有 条评论