打印
[AVR单片机]

ATxmega128怎么写LCD1602程序

[复制链接]
1651|6
手机看帖
扫描二维码
随时随地手机跟帖
沙发
与时俱进| | 2013-5-25 11:41 | 只看该作者
LCD1602例程网上一大堆,自己找、移植。

使用特权

评论回复
板凳
huanglp4593|  楼主 | 2013-5-25 15:27 | 只看该作者
有谁知道的吗? 给个具体的啊

使用特权

评论回复
地板
qin552011373| | 2013-5-27 06:48 | 只看该作者
我有四位的 基于atmega48的

使用特权

评论回复
5
huaiyaya123| | 2013-5-27 09:19 | 只看该作者
我有一些,加我QQ494940845

使用特权

评论回复
6
huanglp4593|  楼主 | 2013-5-28 18:29 | 只看该作者
#include "board.h"
#include "avr_compiler.h"

unsigned char number [16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};   

void delay_ms(unsigned int count)
{
    while(count--)delay_us(1000);
}


void port_init(void)
{
        PORTD.DIR=0xFF;
    PORTD.OUT=0xFF;
    PORTA.DIRSET=PIN4_bm|PIN5_bm|PIN6_bm;
    PORTA.OUTSET=PIN4_bm|PIN5_bm|PIN6_bm;
}       

void sentCMD(unsigned char dat)
{
    delay_ms(20);
    PORTA.OUTCLR=PIN4_bm|PIN5_bm;
    PORTD.OUT=  dat;
    PORTA.OUTSET=PIN6_bm;
    delay_ms(20);
    PORTA.OUTCLR=PIN6_bm;
    delay_ms(20);
}
void sentDAT(unsigned char dat)
{
    delay_ms(20);
    PORTA.OUTSET=PIN4_bm;
    PORTA.OUTCLR=PIN5_bm;
    PORTD.OUT=  dat;
    PORTA.OUTSET=PIN6_bm;
    delay_ms(20);
    PORTA.OUTCLR=PIN6_bm;
    delay_ms(20);
}
void initiallcd(void)
{
    delay_ms(20);
    sentCMD(0x38);
    sentCMD(0x04);
    sentCMD(0x0c);
    sentCMD(0x01);
    sentCMD(0x02);
}

void  LCD_Display()
{
        sentCMD( 0x80 ); sentDAT( 0x30 );       
sentCMD( 0x81 ); sentDAT( 0x31 );
sentCMD( 0x82 ); sentDAT( 0x32 );
sentCMD( 0x83 ); sentDAT( 0x33 );

}

int main(void)
{
  port_init();
  initiallcd();
  sentCMD(0xc1);
  sentDAT(0x32);
  while(1)
  {

      LCD_Display();
  }
  
}               

使用特权

评论回复
7
huanglp4593|  楼主 | 2013-5-28 18:31 | 只看该作者
void  LCD_Display()
{
        sentCMD( 0x80 ); sentDAT( 0x30 );        
sentCMD( 0x81 ); sentDAT( 0x31 );
sentCMD( 0x82 ); sentDAT( 0x32 );
sentCMD( 0x83 ); sentDAT( 0x33 );

}
在这里,我要显示0~40dB 的数据 每5dB增加一次,通过按键来实现,不知道怎么改

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝