单片机 > 单片机程序设计 > 详情

Atmega16的1602液晶使用

发布时间:2020-08-24 发布时间:
|
#include

#include
#include"1602.h"
uchar L[]="L I Miss You";
void display()//显示函数
{
 write_com(0x80);
 show_string(L);//显示字符串
}
void init()//初始化函数
{
 DDRC=0xff;//全部设置为输出
 DDRA|=(1<<7)|(1<<6);//设置PA口的第6位(1602的rs控制脚)和第7位(1602的en控制脚)为输出
 init_1602();//1602液晶初始化 
}
int main()
{
 init();
 display();
 while(1);
}

//1602液晶显示头文件

#define uint unsigned int
#define uchar unsigned char
//PA口的第6位(1602的rs控制脚)和第7位(1602的en控制脚)
#define lcdrs0 PORTA &= ~(1 << 6)//第6位输出低电平
#define lcdrs1 PORTA |= (1 << 6)//第6位输出高电平
#define lcden0 PORTA &= ~(1 << 7)//第7位输出低电平
#define lcden1 PORTA |= (1 << 7)//第7位输出高电平
void write_com(uchar com)//写命令函数
{
 lcdrs0;
 PORTC=com;
 _delay_ms(5);
 lcden1;
 _delay_ms(5);
 lcden0;
}
void write_date(uchar date)//写数据函数
{
 lcdrs1;
 PORTC=date;
 _delay_ms(5);
 lcden1;
 _delay_ms(5);
 lcden0;
}
void init_1602()//1602液晶初始化函数
{
 lcden0;
 write_com(0x38);//设置1602显示模式为5*7点阵
 _delay_ms(5);
 write_com(0x01);//清屏
 _delay_ms(5);
 write_com(0x0c);//开显示,不显示光标,光标不闪烁
 _delay_ms(5);
 write_com(0x06);//设置当读或写一个字符后,地址指针加一,且光标加一
 _delay_ms(5);
 //write_com(0x80);//设置写数据起始地址
}
void show_string(uchar *string)//显示字符串函数
{
 while(*string)
 {
  write_date(*string++);
 }
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二