標題: avr單片機程序驅動1602怎么沒反應? [打印本頁]

作者: 無敵之寂    時間: 2018-6-16 22:48
標題: avr單片機程序驅動1602怎么沒反應?




#include <avr/io.h>
//*******    LCD 1602地址數據端口定義    *********
#define     lcd_bus     PORTA    //     1602數據口
#define     lcd_con     PORTC    //     1602控制口
#define     rs0         lcd_con & 0xfe  //     rs=0
#define     rs1         lcd_con | 0x01  //     rs=1
#define     rw0        lcd_con & 0xfd  //     rw=0
#define     rw1        lcd_con | 0x02  //     rw=1
#define     e0         lcd_con & 0xfb  //     e=0
#define     e1         lcd_con | 0x04  //     e=1
//************************************************
//         顯示延時子程序
//************************************************
void lcddelay()
{
unsigned int j;
for (j=400;j>0;j--);
}
//************************************************
//         初始化延時子程序
//************************************************
void inidelay()
{
unsigned int j;
for (j=20000;j>0;j--);
}
//************************************************
//         lcd1602寫指令子程序
//************************************************
void enable_lcd()
{
lcd_con=rs0;               //寫指令時序rs=0
lcd_con=rw0;              //rw=0
lcd_con=e0;               //e=0
lcddelay();                //調顯示延時子程序
lcd_con=e1;               //e=1
}
//************************************************
//         lcd1602寫數據子程序
//************************************************
void data_lcd()
{
lcd_con=rs1;               //寫數據時序rs=1;
lcd_con=rw0;               //rw=0
lcd_con=e0;                //e=0
lcddelay();                //調顯示延時子程序
lcd_con=e1;                //e=1
}
//************************************************
//         lcd1602初始化子程序
//************************************************
void init_lcd()
{
lcd_bus=0x01;        //清屏
enable_lcd();
lcd_bus=0x38;        //顯示功能,2行顯示 ,5*7
enable_lcd();
lcd_bus=0x0c;        //顯示開關
enable_lcd();
lcd_bus=0x06;        //顯示模式 ,光標移動
enable_lcd();
}
//************************************************
//         顯示數據子程序
//************************************************
void  lcd_show()
{
lcd_bus=0x80;      //設置數據存儲器起始地址 ,第一行起始地址80h,
                     //第二行起始地址為C0H
enable_lcd();      //調寫指令子程序
lcd_bus='A';
data_lcd();          //調寫數據子程序
lcd_bus='V';
data_lcd();
lcd_bus='R';
data_lcd();
lcd_bus=' ';
data_lcd();
lcd_bus='s';
data_lcd();
lcd_bus='y';
data_lcd();
lcd_bus='s';
data_lcd();
lcd_bus='t';
data_lcd();
lcd_bus='e';
data_lcd();
lcd_bus='m';
data_lcd();
}
//*****************     主程序    ********************//
int main(void)
{
//****************初始化*****************************//
  inidelay();
  DDRA=0xff;
  DDRC=0xff;
  init_lcd();        //LCD初始化子程序  
  do
{  
  lcd_show();
}
while(1);
}
atmega8l-8pu.rar (26.26 KB, 下載次數: 9)



作者: zhb2004xp    時間: 2018-6-16 23:52
protues仿真1602的VSS、VDD、VEE為什么沒接?
作者: 無敵之寂    時間: 2018-6-17 01:13
zhb2004xp 發(fā)表于 2018-6-16 23:52
protues仿真1602的VSS、VDD、VEE為什么沒接?

仿真可以不接的。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1