[AVR单片机] ATxmega128怎么写LCD1602程序

[复制链接]
2121|6
 楼主| huanglp4593 发表于 2013-5-25 11:02 | 显示全部楼层 |阅读模式
ATxmega128怎么写LCD1602程序?给个具体程序,有急用
与时俱进 发表于 2013-5-25 11:41 | 显示全部楼层
LCD1602例程网上一大堆,自己找、移植。
 楼主| huanglp4593 发表于 2013-5-25 15:27 | 显示全部楼层
有谁知道的吗? 给个具体的啊
qin552011373 发表于 2013-5-27 06:48 | 显示全部楼层
我有四位的 基于atmega48的
huaiyaya123 发表于 2013-5-27 09:19 | 显示全部楼层
我有一些,加我QQ494940845
 楼主| huanglp4593 发表于 2013-5-28 18:29 | 显示全部楼层
  1. #include "board.h"
  2. #include "avr_compiler.h"

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

  4. void delay_ms(unsigned int count)
  5. {
  6.     while(count--)delay_us(1000);
  7. }


  8. void port_init(void)
  9. {
  10.         PORTD.DIR=0xFF;
  11.     PORTD.OUT=0xFF;
  12.     PORTA.DIRSET=PIN4_bm|PIN5_bm|PIN6_bm;
  13.     PORTA.OUTSET=PIN4_bm|PIN5_bm|PIN6_bm;
  14. }       

  15. void sentCMD(unsigned char dat)
  16. {
  17.     delay_ms(20);
  18.     PORTA.OUTCLR=PIN4_bm|PIN5_bm;
  19.     PORTD.OUT=  dat;
  20.     PORTA.OUTSET=PIN6_bm;
  21.     delay_ms(20);
  22.     PORTA.OUTCLR=PIN6_bm;
  23.     delay_ms(20);
  24. }
  25. void sentDAT(unsigned char dat)
  26. {
  27.     delay_ms(20);
  28.     PORTA.OUTSET=PIN4_bm;
  29.     PORTA.OUTCLR=PIN5_bm;
  30.     PORTD.OUT=  dat;
  31.     PORTA.OUTSET=PIN6_bm;
  32.     delay_ms(20);
  33.     PORTA.OUTCLR=PIN6_bm;
  34.     delay_ms(20);
  35. }
  36. void initiallcd(void)
  37. {
  38.     delay_ms(20);
  39.     sentCMD(0x38);
  40.     sentCMD(0x04);
  41.     sentCMD(0x0c);
  42.     sentCMD(0x01);
  43.     sentCMD(0x02);
  44. }

  45. void  LCD_Display()
  46. {
  47.         sentCMD( 0x80 ); sentDAT( 0x30 );       
  48. sentCMD( 0x81 ); sentDAT( 0x31 );
  49. sentCMD( 0x82 ); sentDAT( 0x32 );
  50. sentCMD( 0x83 ); sentDAT( 0x33 );

  51. }

  52. int main(void)
  53. {
  54.   port_init();
  55.   initiallcd();
  56.   sentCMD(0xc1);
  57.   sentDAT(0x32);
  58.   while(1)
  59.   {

  60.       LCD_Display();
  61.   }
  62.   
  63. }               

 楼主| 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

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