标题:
89c52单片机+HT1621 LCD驱动程序为懒人提供下载直接用
[打印本页]
作者:
单片机学习习
时间:
2017-12-19 23:32
标题:
89c52单片机+HT1621 LCD驱动程序为懒人提供下载直接用
单片机源程序如下:
#ifndef _HT1621B_H_
#define _HT1621B_H_
#include <reg52.h>
#include <intrins.h> //为了使用NOP
#define NOP _nop_()
#define uchar unsigned char
#define uint unsigned int
#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 //写控制命令 1000
#define Data_cmd 0xa0 //写数据命令 1010
//定义HT1621端口
#define SEG_NUM 12 //段码数字个数,即Seg数量/2
sbit CS1=P2^7;
sbit WR1=P2^6;
sbit DATA1=P2^5;
// // 0 1 2 3 4 5 6 7 8 9 灭
uchar code tab[11]={0xF0,0x60,0xD0,0xF0,0x60,0xB0,0xB0,0xE0,0xF0,0xF0,0x00};
uchar code tab1[11] ={0xA0,0x00,0x60,0x40,0xC0,0xC0,0xE0,0x00,0xE0,0xC0,0x00};
/**-------------------------------------------------------------------------
Name: SendBit_1621(送数据程序)
---------------------------------------------------------------------------*/
void SendBit_1621(uchar sdata,uchar cnt) //sdata 的高cnt 位写入HT1621,高位在前
{
uchar i;
for(i=0;i<cnt;i++)
{
WR1=0;
if(sdata&0x80) DATA1=1;
else DATA1=0;
WR1=1;
sdata<<=1;
}
}
/**-------------------------------------------------------------------------
Name: SendCmd(送命令)
---------------------------------------------------------------------------*/
void SendCmd_1621(uchar command)
{
CS1=0;
SendBit_1621(0x80,4); //写入标志码“100”和9 位command 命令,由于
SendBit_1621(command,8); //没有使有到更改时钟输出等命令,为了编程方便
CS1=1; //直接将command 的最高位写“0”
}
/**-------------------------------------------------------------------------
Name: Write_1621(送数据和命令程序)
---------------------------------------------------------------------------*/
void Write_1621(uchar addr,uchar sdata,uchar len)
{
addr<<=2;
CS1=0;
SendBit_1621(0xa0,3); //写入标志码“101”
SendBit_1621(addr,6); //写入addr 的高6位
SendBit_1621(sdata,len); //写入data 的高len位
CS1=1;
}
/**-------------------------------------------------------------------------
Name: all_off(清除1621显示)
---------------------------------------------------------------------------*/
void HT1621_all_off(void)
{
uchar i;
uchar addr=0;
for(i=0;i<SEG_NUM;i++)
{
Write_1621(addr,0x00,8);
addr+=2;
}
}
/**-------------------------------------------------------------------------
Name: all_on(点亮1621全部Seg)
-------------------------------------------------------------------------*/
void HT1621_all_on(void)
{
uchar i;
uchar addr=0;
for(i=0;i<SEG_NUM;i++)
{
Write_1621(addr,0xff,8);
addr+=2;
}
}
/**-------------------------------------------------------------------------
Name: Init_1621(初始化1621)
-------------------------------------------------------------------------*/
void Init_1621(void)
{
SendCmd_1621(Sys_en);
SendCmd_1621(RCosc);
SendCmd_1621(ComMode);
SendCmd_1621(LCD_on);
}
/**-------------------------------------------------------------------------
Name: LCDoff(初始化1621)
-------------------------------------------------------------------------*/
void LCDoff(void)
{
SendCmd_1621(LCD_off);
}
/**-------------------------------------------------------------------------
Name: LCDon(初始化1621)
-------------------------------------------------------------------------*/
void LCDon(void)
{
SendCmd_1621(LCD_on);
}
void DelayMs(uint n)
{
uchar a,b;
uint i;
for(i=n;i>0;i--)
for(b=80;b>0;b--)
for(a=10;a>0;a--)NOP;
}
#endif
//void main(void)
//{
// uchar i;
// Init_1621(); //初始化HT1621
// HT1621_all_off(); //清空LCD显示
// HT1621_all_on(); //点亮所有Seg
// DelayMs(500);
//HT1621_all_off();
// while(1)
// {
// DelayMs(500);
// i++;
//if(10==i) //??8??????
//i=0;
//
//Write_1621(10, tab[i],4); //第1个数字显示"1"
// Write_1621(11,tab1[i],4);
//
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
HT1621液晶测试程序.rar
(21.72 KB, 下载次数: 263)
2017-12-19 23:32 上传
点击文件名下载附件
作者:
紫电1
时间:
2018-2-13 13:55
正好需要,下载看看,谢谢
作者:
shui0419
时间:
2018-5-29 17:39
非常感谢
作者:
szqxw16881
时间:
2018-7-30 14:15
IC资料,可完美兼容HT1621B 全部封装 SSOP48 DIP28 LQFP44 LQFP48
详见
http://www.51hei.com/bbs/dpj-125017-1.html
作者:
liuy5134
时间:
2018-9-10 14:33
可以学习学习了
作者:
a704625084
时间:
2018-9-17 10:09
谢谢分享
作者:
3122319
时间:
2018-11-19 13:06
学习学习学习学习
作者:
老小学生
时间:
2019-5-27 14:34
多谢分享,下来学习!
作者:
wsdxpbg
时间:
2019-10-24 19:35
这个程序真的管用,感谢感谢
作者:
51heihuo
时间:
2020-2-24 17:53
从LED数码管到LCD液晶,还是有很多概念上的不理解。参考下楼主的程序看!谢谢!
作者:
XJCKJ
时间:
2020-2-25 23:04
下载看看,谢谢
作者:
512826028
时间:
2020-4-10 22:01
过来学习一下。
作者:
bg4xo
时间:
2020-4-30 13:10
正好需要,下载看看,谢谢
作者:
宁采尘
时间:
2020-8-13 17:30
感谢分享,测试可以使用~
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1