查看: 1641|回复: 0

[原创] LPC11U68开发板(五)LCD(HT1621)

[复制链接]
  • TA的每日心情
    开心
    2020-1-12 00:23
  • 签到天数: 745 天

    [LV.9]以坛为家II

    27

    主题

    1万

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    6868
    最后登录
    2020-7-15
    发表于 2018-11-19 17:14:53 | 显示全部楼层 |阅读模式
          本次实验测试是利用开发板驱动一片HT1621驱动的6位段码LCD。
    一、实验资源
    1、LPC11U68(OM13058)开发板;
    2、KEIL V5.25.2.0;
    3、lpcopen_3_03_keil_iar_lpcxpresso_11u68;
    4、6位段码LCD(HT1621)模块;

    二、实验过程
    1、硬件连接。模块PCB上已引出VDD、GND、CS、WR、DATA,采用杜邦线与开发板相连接;
    IMG_20181119_164914.jpg
    IMG_20181119_093508.jpg
    QQ截图20181119130844.png

    2、程序软件。在示例程序中添加HT1621相关子函数。从硬件连接图中可以看出只用到了PIO0_12、PIO0_13、PIO0_14三个GPIO端口。程序中首先对所用到的端口进行初始化:
    1. void Ht1621PortInit(void)
    2. {
    3.         Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO);//GPIO时钟使能        
    4.         Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 12);//设置PIO0_12端口为输出
    5.         Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 13);//设置PIO0_13端口为输出
    6.         Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 14);//设置PIO0_14端口为输出
    7.        
    8.         Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 12, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
    9.         Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 13, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
    10.         Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 14, (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGMODE_EN));
    11.        
    12.         Chip_GPIO_WritePortBit(LPC_GPIO, 0, 12, 1);//设置PIO0_12端口置高
    13.         Chip_GPIO_WritePortBit(LPC_GPIO, 0, 13, 1);//设置PIO0_13端口置高
    14.         Chip_GPIO_WritePortBit(LPC_GPIO, 0, 14, 1);//设置PIO0_14端口置高
    15. }
    复制代码
    在上面的程序中最后三行并不是必要的。刚开始测试时GPIO没有反应,后来查了手册才发现忘记了对“IOCON”进行配置:
    QQ截图20181119141638.png

    为便于对GPIO端口操作定义了“宏”:
    1. //HT1621控制位(液晶模块接口定义,根据自已的需要更改)
    2. #define HT1621_CS_HIGH() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 12, 1)
    3. #define HT1621_CS_LOW()  Chip_GPIO_WritePortBit(LPC_GPIO, 0, 12, 0)                                                                                         \
    4.                                                                        
    5. #define HT1621_WR_HIGH() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 13, 1)
    6. #define HT1621_WR_LOW()  Chip_GPIO_WritePortBit(LPC_GPIO, 0, 13, 0)

    7. #define HT1621_DAT_HIGH() Chip_GPIO_WritePortBit(LPC_GPIO, 0, 14, 1)
    8. #define HT1621_DAT_LOW()  Chip_GPIO_WritePortBit(LPC_GPIO, 0, 14, 0)
    复制代码
    在主函数中进行刷屏及显示:
    1. int main(void)
    2. {
    3.         unsigned char i,j,t;
    4.        
    5.         SystemCoreClockUpdate();
    6.         delay_init();                     
    7.         Ht1621_Init();
    8.         Ht1621WrAllData(0,Ht1621Tab,16);//清屏
    9.         LcdDisplay(123456);
    10.        
    11.         while(1)
    12.         {       
    13.                 /*LCD刷屏测试,显示所有笔段*/
    14.                 Ht1621WrAllData(0,Ht1621Tab,16);//清屏
    15.                 for(i=0; i<54; i++)
    16.                 {
    17.                         t = 0x01;
    18.                         for(j=0; j<4; j++)
    19.                         {
    20.                                 Ht1621WrOneData(i,t);
    21.                                 t <<= 1;
    22.                                 t++;
    23.                                 delay_ms(200);
    24.                         }
    25.                 }
    26.         }
    27. }
    复制代码


    三、实验结果
    1、刷屏显示所有笔段:
    IMG_20181119_094204.jpg
    IMG_20181119_094124.jpg
    IMG_20181119_094215.jpg

    2、显示“123456”
    IMG_20181119_094100.jpg

    四、实验总结
          实验比较简单,考虑下一步在此基础上增加一些内容。
    IMG_20181119_093437.jpg
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-9 03:29 , Processed in 0.117010 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表