用MSP430G2553单片机控制Ht1621的程序及笔记.doc.doc

用MSP430G2553单片机控制Ht1621的程序及笔记.doc.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用MSP430G2553单片机控制Ht1621的程序及笔记.doc

型号:HT1621BS725G01012 液晶全部显示时如下图:6位数字、3个小数点和右方电源标志 全部点亮函数: /*********全部点亮**************/ void HT1621_all_on(uchar num) { uchar i; uchar addr=0; for(i=0;inum;i++) { Write_1621(addr,0xff); addr+=2; } } 屏幕数字笔画对应编码: 程序例子: #include msp430g2553.h #define uint unsigned int #define uchar unsigned char /***定义1621的端口******/ #define DATA1 P2OUT|=BIT0//1621DATA端口 #define DATA0 P2OUT=~BIT0 #define WR1 P2OUT|=BIT1//1621WR0端口 #define WR0 P2OUT=~BIT1 #define CS1 P2OUT|=BIT2//1621CS端口 #define CS0 P2OUT=~BIT2 /******定义HT1621的命令*******/ #define ComMode 0x52 //4COM,1/3bias 1000 010 1001 0 #define RCosc 0x30 //内部RC振荡器(上电默认)1000 0011 0000 #define LCD_on 0x06 //打开LCD 偏压发生器1000 0000 0 11 0 #define LCD_off 0x04 //关闭LCD显示 #define Sys_en 0x02 //系统振荡器开 1000 0000 0010 #define CTRl_cmd 0x80 //写控制命令 #define Data_cmd 0xa0 //写数据命令 char dispnum[6]={0x00,0x00,0x00,0x00,0x00,0x00};//用来存放要显示的数字 const char num[]={0x7d,0x60,0x3e,0x7a,0x63,0x5b,0x5f,0x70,0x7f,0x7b}; /*0,1,2,3,4,5,6,7,8,9*****/ /**************延时子程序**********/ void delay_1us(void) //1us延时函数 { asm(nop); } //N us延时函数 void delaynus(uint n) { uint i; for(i=0;in;i++) asm(nop); } void delay_1ms(void) //1ms延时函数 { unsigned int i; for (i=0;i1140;i++); } void delay_nms(unsigned int n) //N ms延时函数 { unsigned int i=0; for (i=0;in;i++) delay_1ms(); } /*****发送数据***********/ void SendBit_1621(uchar sdata,uchar cnt) //data 的高cnt 位写入HT1621,高位在前 { uchar i; for(i=0;icnt;i++) { WR0; delaynus(20); //8M必须加,4M可省略 if(sdata0x80) DATA1; else DATA0; delaynus(20);//8M必须加,4M可省略 WR1; delaynus(20); //8M必须加,4M可省略 sdata=1; } delaynus(20); } /******送命令*****/ void SendCmd_1621(uchar command) { CS0; SendBit_1621(0x80,4); //写入标志码“100”和9 位command 命令,由于 SendBit_1621(command,8); //没有使有到更改时钟输出等命令,为了编程方便 CS1; //直接将command 的最高位写“0” } /******发送数据和命令**

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档