⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 161212.c

📁 winavr
💻 C
字号:

/******************************************************************
   本程序只供学习使用,未经作者许可,不得用于其它任何用途
          我的邮箱:at89c58@163.com  
   
*******************************************************************/
//HD44780 1602 程序演示

//单片机型号:ATMEGA8L-8PU

//晶振:4M

//程序没有加入忙判断

//编译软件为winavr 200705

#include<avr/io.h>
#include <util/delay.h>
#include <avr/portpins.h>
#include <compat/deprecated.h>

#define uchar unsigned char 

#define LCD_E_0 cbi(PORTD,6)  

#define LCD_RW_0 cbi(PORTD,5)      

#define LCD_RS_0 cbi(PORTD,4)       

#define LCD_E_1 sbi(PORTD,6)        

#define LCD_RW_1 sbi(PORTD,5)       

#define LCD_RS_1 sbi(PORTD,4)     

void com(uchar init)   //写指令

{  
    
    LCD_RS_0;       
    PORTB=init;    
    _delay_ms(5);
    LCD_E_1;    
    LCD_E_0;
    
}



void Dat(uchar dat)     //写数据

{  
    
    LCD_RS_1;      
       
    PORTB=dat;
    
    _delay_ms(5);
    
    LCD_E_1;
    
    LCD_E_0;
    
}

void display(uchar x,uchar y,uchar dat)   //精确显示字符,x为列坐标,y为行坐标,dat数据

{   
    
    uchar add;
    
    if(y==0)
    
    add=0x80+0x00+x;
    
    else
    
    add=0x80+0x40+x;
    
    com(add);
    
    Dat(dat);
    
}           



void Init(void)    //液晶屏初始化

{   
    
    com(0x38);    
    _delay_ms(5);
    com(0x38);
    com(0x38);
    com(0x06);   
    com(0x0c);    
    com(0x01);
       
    
}



int main(void)

{        
    uchar i;
    DDRB|=0xff;          //初始化引脚    
    DDRD|=0Xff;
    DDRC|=0Xff;         
    Init();
	for (i=0;i<16;i++)
	{
		display(i,0,0x41+i);  //显示1602库中自带符号A...
	}	
	for (i=0;i<16;i++)
	{
		display(i,1,0x30+i);  //显示1602库中自带符号1...
	}	   
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -