历史上的今天
今天是:2024年11月13日(星期三)
2019年11月13日 | AVR GCC 编写的1602驱动程序
2019-11-13 来源:51hei
用AVR GCC 编写的1602驱动程序
#include
#include
#include
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar s[] = "113456789
uchar s[] = "I like AVR";
// 1602接到 atmega16的端子RS==PC0, RW=PC1,E=PC2
void LCD_Com_Write(uchar comm)
{
PORTC&=~_BV(0);//命令和写 RS
PORTC&=~_BV(1);//命令和写RW
PORTC|=_BV(2);//使能有效 E
_delay_ms(10);
PORTA=comm;
PORTC&=~_BV(2);//使能关闭
}
void LCD_Data_Write(uchar data)
{
PORTC|= _BV(0) ;//数据
PORTC&=~_BV(1);//写
PORTC|=_BV(2);//使能有效
_delay_ms(10);
PORTA=data;
PORTC&=~_BV(2);//使能关闭
}
void LCD_Init()
{
DDRC=0XFF;
DDRA=0XFF;
_delay_ms(15);
LCD_Com_Write(0x38);//设置显示模式
_delay_ms(5);
LCD_Com_Write(0x38);//设置显示模式
_delay_ms(5);
LCD_Com_Write(0x38);//设置显示模式
_delay_ms(5)
LCD_Com_Write(0x38);//设置显示模式
_delay_ms(5);
LCD_Com_Write(0x08);//显示关闭
_delay_ms(5);
LCD_Com_Write(0x01);//显示清屏
_delay_ms(5)
LCD_Com_Write(0x0F);//光标和背景设置
_delay_ms(5);
LCD_Com_Write(0x06);//光标设置,和数据地址增减
_delay_ms(5);
}
int main(void)
{
uchar i;
DDRA|=_BV(0) |_BV(1)|_BV(2) ;//定义选通部分输出
DDRC=0XFF;
PORTC&=~_BV(2);//使能初始低电
LCD_Init();
_delay_ms(5);
while(1);
{
LCD_Com_Write(0x80);//设置数据地址,从头显示
_delay_ms(5);
for(i=0;i<10;i++)//显示字符在第一行
{
LCD_Data_Write(s);
_delay_ms(5);
}
}
}
史海拾趣
|
十年了,依然两手空空。回首一望,心里无比苍凉。 由于学历比较低吧,知名的企业进不了。也就一些小公司看在我经验丰富的份上要了我,工资老涨不上去;而且那些公司确确实实是要会干活的人。因此,差不多每进一家厂,都会有一些很难的项目等着我。 ...… 查看全部问答> |
|
数字信号处理器是一种特别适合于进行数字信号处理的微处理器,主要用于实时快速地实现各种数字信号处理算法 定点运算DSP数字信号处理器在应用中已取得了极大的成功,而且仍然是DSP应用的主体。然而,随着对DSP处理速度与精度、存储 ...… 查看全部问答> |
|
关于三级管的问题 有两个三极管(3DG6型号或3DG8型号放大倍数>=50;3A*31型号或3AX81型号放大倍数>=30。)可用现在市场上的哪种型号的三极管代替呀?望各位告知一下。… 查看全部问答> |
|
是WINCE5的SDK,用IImagingFactory IImage接口, 报错是 dcdvDlg.obj : error LNK2001: unresolved external symbol _CLSID_ImagingFactory dcdvDlg.obj : error LNK2001: unresolved external symbol _IID_IImagingFactory 我已 ...… 查看全部问答> |




