52 SEG×4 COM LCD驱动芯片 TM1729
14.2.参考程序清单(C51)
//**************************************************************
//程 序 名:TM1729.c
//单 片 机:51单片机(如AT89S52、STC12C5608AD)
//晶
振:12.00MHz
//程序功能:控制TM1729显示
//
//
K1: 关闭全屏
K2: 显示01234567890123456789012345
//版权所属:深圳天微电子有限公司
//日 期:2012-12-12
//**************************************************************
#include<reg52.h>
#include<INTRINS.H>
#define nop() _nop_()
#define slave_addr 0x7C
void start_i2c();
//从机地址
void stop_i2c();
void send_byte(unsigned char tempb);
void WriteDDRAM(void);
void DisplayNUM(void);
void InitTM1729(void);
void Init_RAM(void);
sbit K1 = P3^2; //按键K1
sbit K2 = P3^3; //按键K2
sbit LED = P2^2; //按键指示灯
sbit SCL = P2^4; //串行时钟信号
sbit SDA = P2^5; //串行数据信号
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned int word;
unsigned char ICSET = 0xEA; //执行芯片复位命令,内部时钟
unsigned char BLKCTL = 0xF0; //不闪烁
unsigned char DISCTL = 0xA2; //Power save mode FR=Normal mode
//Power save mode SR=Normal mode
//Line翻转模式
unsigned char MODESET = 0xC8; // 显示打开,1/3Bias
unsigned char APCTL8 = 0xFE; //All pixels ON
unsigned char APCTL = 0xFC; //Normal
unsigned char ADSET = 0X00; //起始地址为0x00
unsigned char ack
= 0x00; // ack
static unsigned char xdata buff[27]; //显存缓存
code unsigned char Table[10]={0xD7,0x06,0xe3,0xa7,0x36,0xb5,0xf5,0x07,0xF7,0xB7};
//0~9的编码,编码的取值与硬件的连接关系很大,此编码只能用在对应的硬件接线上
//******************************************************************************
//功能: 延时函数,当ms=1时,
//
延时为1毫秒(@12MHz)
//入口: ms
//出口:无
//******************************************************************************
void DelayMs(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
for(j=0;j<997;j++);
}
19
www.titanmec.com
©Titan Micro Electronics
V1.0