ht1621.rar

  • tudou2017
    了解作者
  • C/C++
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 5
    下载次数
  • 2014-08-24 21:50
    上传日期
msp430平台的ht1602驱动程序。
ht1621.rar
  • msp430_ht1621.c
    4.9KB
  • msp430_ht1621.h
    1KB
内容介绍
//#include "msp430xgeneric.h" #include "msp430_ht1621.h" #include "inc/hw_regaccess.h" #include "inc/hw_memmap.h" #include "gpio.h" #define ht1621_cs_port GPIO_PORT_P4 #define ht1621_clk_da_port GPIO_PORT_P3 #define ht1621_cs GPIO_PIN0 #define ht1621_clk GPIO_PIN6 #define ht1621_data GPIO_PIN7 //#define BIAS 0x52 //0b1000 0101 0010 1/3duty 4com #define BIAS 0x50 //0b1000 0101 0010 1/2duty 4com #define SYSDIS 0X00 //0b1000 0000 0000 关振系统荡器和LCD偏压发生器 #define SYSEN 0X02 //0b1000 0000 0010 打开系统振荡器 #define LCDOFF 0X04 //0b1000 0000 0100 关LCD偏压 #define LCDON 0X06 //0b1000 0000 0110 打开LCD偏压 #define XTAL 0x28 //0b1000 0010 1000 外部接时钟 #define RC256K 0X30 //0b1000 0011 0000 内部时钟 #define TONEON 0X12 //0b1000 0001 0010 打开声音输出 #define TONEOFF 0X10 //0b1000 0001 0000 关闭声音输出 #define WDTDIS 0X0A //0b1000 0000 1010 禁止看门狗 void ht1621_cs_high(void) { GPIO_setOutputHighOnPin ( ht1621_cs_port,ht1621_cs); } void ht1621_cs_low(void) { GPIO_setOutputLowOnPin ( ht1621_cs_port,ht1621_cs); } void ht1621_clk_high(void) { GPIO_setOutputHighOnPin(ht1621_clk_da_port,ht1621_clk); } void ht1621_clk_low(void) { GPIO_setOutputLowOnPin(ht1621_clk_da_port,ht1621_clk); } void ht1621_data_high(void) { GPIO_setOutputHighOnPin(ht1621_clk_da_port,ht1621_data); } void ht1621_data_low(void) { GPIO_setOutputLowOnPin(ht1621_clk_da_port,ht1621_data); } //******************************************************* //函数名: //函数功能:初始化ht1621芯片io口 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void init_ht1621_gpio(void) { GPIO_setAsOutputPin(ht1621_cs_port,ht1621_cs); GPIO_setAsOutputPin(ht1621_clk_da_port,ht1621_clk); GPIO_setAsOutputPin(ht1621_clk_da_port,ht1621_data); } //******************************************************* //函数名: //函数功能:初始化数据线 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void init_ht1621(void) { ht1621_cs_high(); ht1621_clk_high(); ht1621_data_high(); delay_us(); } //******************************************************* //函数名: //函数功能:按位写ht1621 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void ht1621_send_bit(uint8_t data , uint8_t bitcnt) { uint8_t i; for(i=0; i<bitcnt; i++) { ht1621_clk_low(); //CLK=0 if( data&0x80) { ht1621_data_high(); //DATA=1 } else { ht1621_data_low(); //DATA=0 } delay_N_us(11); ht1621_clk_high(); //CLK=1 delay_N_us(15); data = data<<1; } } //******************************************************* //函数名: //函数功能:写一个字节数据 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void ht1621_send_one_byte(uint8_t data) { ht1621_send_bit(data , 8); } //******************************************************* //函数名: //函数功能:写命令 100码 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void ht1621_write_command(uint8_t command) //100命令 { ht1621_cs_low(); //CS=0 delay_us(); ht1621_send_bit(0x80 , 4); ht1621_send_bit(command , 8); ht1621_cs_high(); //CS=1 delay_us(); } //******************************************************* //函数名: //函数功能:写数据命令 101码 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void ht1621_write_datacommand(uint8_t addr) { //init_ht1621(); //ht1621_cs_low(); //CS=0 delay_us(); addr = addr<<2; ht1621_send_bit(0xa0 , 3); //发送命令101 ht1621_send_bit(addr , 6); delay_us(); // ht1621_cs_high(); //CS=1 } //******************************************************* //函数名: //函数功能:初始化ht1621参数 //输入参数: //创建时间: //创建人: //修改时间: //******************************************************** void init_ht1621_para(void) { init_ht1621_gpio(); //cs clk data设置为输出 // delay_N_ms(200); init_ht1621(); //delay_N_ms(200); ht1621_write_command(BIAS); ht1621_write_command(RC256K); ht1621_write_command(SYSDIS); ht1621_write_command(WDTDIS); ht1621_write_command(SYSEN); ht1621_write_command(LCDON); } void delay_N_ms(uint16_t t) { uint16_t i; for(i=0;i<t;i++) { delay_1_ms(); } } void delay_1_ms(void) { uint16_t i; for(i=0;i<395/4;i++) { delay_us(); } } void delay_us(void) { uint8_t t=1; while(--t); } void delay_N_us(uint16_t t) { uint16_t i; for(i=0;i<t;i++) { delay_us(); } }
评论
    相关推荐
    • MSP430-LCD-HT1621-.rar
      MSP430和LCD驱动芯片HT1621的驱动程序
    • ht1622-msp430f149.zip
      HT1622数码管液晶显示器驱动程序,基于M430f149单片机,亲测可用!注意最后面的addr是地址,更改地址后,即可知道数码管亮的位置,便于编程!
    • msp430.rar
      非常详尽的MSP430系列开发板源程序,包括各种模块
    • HT1621MSP430C.rar
      MSP430为主控制器,HT1621驱动段式LCD源程序
    • MSP430F2013_HT1621_01.rar
      MSP430f2013代码,ht1621显示代码
    • ht1621.rar
      一般的液晶显示驱动程序,是结合MSP430F149的微功耗芯片设计制作的.尽请提出宝贵的意见!
    • msp430.rar
      利用MSP430对带有液晶显示的进行键盘扫描
    • 基于msp430编程
      基于msp430单片机的程序编写,也是参考朋友的,有兴趣的可以下载看看
    • MSP430例程
      MSP430单片机的开发例程
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路