[程序源码] AVR 操作1602怎么能让它显示字符串 求大神帮忙

[复制链接]
2115|3
 楼主| 霍云龙 发表于 2013-10-11 20:18 | 显示全部楼层 |阅读模式
#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#pragma date:code const table[]="I LIKE YOU";
#pragma date:code const table1[]=" WU WANG WO";
uchar num;
void delay(uint z)
{
   uint x,y;
   for(x=z;x>0;x--)
      for(y=110;y>0;y--);
}

void write_com(uchar com)
{
    DDRA|=BIT(4);
        PORTA&=~BIT(4);
       
        DDRB=0XFF;
        PORTB=com;
       
        DDRA|=BIT(6);
        PORTA|=BIT(6);
        delay(20);
        DDRA|=BIT(6);
        PORTA&=~BIT(6);
       
}
void write_DATE(uchar DATE)
{
    DDRA|=BIT(4);
        PORTA|=BIT(4);
       
        DDRB=0XFF;
        PORTB=DATE;
       
        DDRA|=BIT(6);
    PORTA|=BIT(6);
        delay(20);
        DDRA|=BIT(6);
        PORTA&=~BIT(6);       
       
}

void init()
{   
    DDRA|=BIT(5);
        PORTA&=~BIT(5);
       
        DDRA|=BIT(6);
        PORTA&=~BIT(6);
    write_com(0x38);
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
        write_com(0x80);
}
void main()
{  
   init();
  for(num=0;num<11;num++)
   {   
      
       write_DATE();
   }
   while(1);
   
}
xiaohuihui241 发表于 2013-10-11 21:15 | 显示全部楼层
要写一个writestring(uchar *s)函数,然后用个for语句循环执行write_DATE(uchar DATE)
ningling_21 发表于 2013-10-12 10:22 | 显示全部楼层
初始化要正确
void lcd_init()
{
    delay_nms(15);                //等待电源稳定   
    lcd_wcmd(LCD_MODE);      //设置显示模式
    delay_nms(5);
    lcd_wcmd(LCD_MODE);         
    delay_nms(5);
    lcd_wcmd(LCD_MODE);         
    delay_nms(5);
//    lcd_wcmd(0x0c);       //显示开,关光标
        lcd_wcmd(0x0c);                 //开光标
    delay_nms(5);
    lcd_wcmd(0x06);              //移动光标
    delay_nms(5);
    lcd_wcmd(0x01);              //清除LCD的显示内容
    delay_nms(5);
}
魅丽堂3 发表于 2013-10-12 10:28 | 显示全部楼层
路过看看啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部