您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > TM1629驱动程序
E:\Item\design\tmxxleddemo\sw\currency.c/***************************************************************************************************Filename:Author:Version:Date:MCU:leddriverdemoprogrammexcwyleddemo0.12006年7月21日AT89S5212Mkeilcv3.05c//文件名//作者//版本//完成日期//单片机型号//单片机使用的晶体频率//软件开发环境Description:本程序是深圳市天微电子有限公司LED驱动IC的演示程序,采用C语言编写//用于详细说明此程序文件完成的主要功能,与其他模块//或函数的接口,输出值、取值范围、含义及参数间的控//制、顺序、独立或依赖等关系Others:本程序仅仅提供演示,任何个人或企业直接使用本程序造成的损失本公司不承担任何责任//其它内容的说明FunctionList:1.delay()2.indate()3.outdate()4.display()——延时程序——通过MCU向LEDdriver中写入一字节的数据——通过MCU从LEDdriver中读出一字节的数据——采用地址自动加1方式的显示程序5.display2()——采用固定地址方式的显示程序6.in_led()7.out_sw()——采用地址自动加一方式先LED显存——读SW输入口状态//主要函数列表,每条记录应包括函数名及功能简要说明History:1.Date:Author://修改历史记录列表,每条修改记录应包括修改日期、修改//作者及修改内容简述2006年7月21日9:02xcwyModification:1)进一步添加了详细的注释2.Date:Author:xcwy2006年12月17日Modification:1)修改为本公司通用的LED驱动程序****************************************************************************************************/#includeREG52.h#includestdio.h#includeintrins.h//**************************************************************************************************#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#definetm1616tm1618tm1618atm1620tm1620btm1623tm1624tm1626atm1626btm1626ctm1626dtm1628tm1629tm1629atm1629btm1629ctm1629dtm1638tm1668tw16281234567891011121314151617181920#defineicmodeltm1616//这里选择的TM1616,更改“tm1616”可以得到其他型号IC的驱动程序#ificmodel==tm1616Page:1E:\Item\design\tmxxleddemo\sw\currency.c#defineseg#definegrid74#definedismodel1#elificmodel==tm1618#defineseg#definegrid#definekey573#definedismodel4#elificmodel==tm1618a#defineseg#definegrid#definekey754#definedismodel2#elificmodel==tm1620#define#defineseggrid86#definedismodel3#elificmodel==tm1620b#define#define#defineseggridkey673#definedismodel4#elificmodel==tm1623#define#define#defineseggridkey1174#definedismodel4#elificmodel==tm1624#define#defineseggrid117#definedismodel4#elificmodel==tm1626a#define#define#define#define#defineseggridkeyswled107526#definedismodel4#elificmodel==tm1626b#define#define#define#define#defineseggridkeyswled117546#definedismodel4#elificmodel==tm1626c#define#define#define#defineseggridkeyled11751#definedismodel4#elificmodel==tm1626d#define#define#define#defineseggridkeyled10751#definedismodel4#elificmodel==tm1628#define#define#defineseggridkey1074#definedismodel4#elificmodel==tm1629Page:2E:\Item\design\tmxxleddemo\sw\currency.c#define#define#defineseggridkey1684#definedismodel1#elificmodel==tm1629a#define#defineseggrid168#definedismodel1#elificmodel==tm1629b#define#define#defineseggridkey1484#definedismodel1#elificmodel==tm1629c#define#define#defineseggridkey1584#definedismodel1#elificmodel==tm1629d#define#define#defineseggridkey1284#definedismodel1#elificmodel==tm1638#define#define#defineseggridkey1084#definedismodel1#elificmodel==tm1668#define#define#defineseggridkey1075#definedismodel1#elificmodel==tw1628#endif#else#error你必须确认IC的型号是否存在?#define#define#define#defineseggridkeydismodel10751#define#define#define#define#define#define#define#define#define#definedissetmodewritedatamode_zwriteledmode_zreadkeymodereadswmodewritedatamode_gwriteledmode_gstartaddressdisconmodedatacount0x030x400x410x420x430x440x450xc00x8c2*grid//显示模式设置//采用地址自动加一方式写显存//采用地址自动加一方式写LED显存命令//读按键命令//读SW口命令//采用固定地址方式写显存//采用固定地址方式写LED显存命令//起始地址//显示控制//采用地址自动加一方式传输数据的个数//定义全局变量unsignedchark1,k2,k3,k4,k5;unsignedda_sw;//按键值寄存器//SW寄存器unsignedint//端口的定义count;sbitsbitSTBCLK=P2^0;=P2^1;sbitsbitDIOSPEAK=P2^2;=P2^7;//串行通讯口//外接蜂鸣器,可以不必理会//*********************************************子程序开始************************************Page:3E:\Item\design\tmxxleddemo\sw\currency.c//----------------------------------------------延时程序开始---------------------------------voiddelay(intk){unsignedchari,j;for(;k0;k--)for(j=255;j0;j--)for(i=255;i0;i--);}//----------------------------------------------延时程序结束----------------------------------//----------------------------------------------写入输入1个字节(8bit)到LED_IC程序开始---------//输入8BIT数据//在时钟的上升沿通过MCU向LED驱动IC——TM16xx写数据voidindate(unsignedcharp){unsignedinti;STB=0;//保证“STB”为低电平,程序不依赖于之前端口的状态//保证程序在实际运行中不会出现“端口迷失”for(i=0;i8;i++){CLK=0;//先将“CLK”清零if((p&0x01)!=0){}}else{}CLK=1;p=p1;DIO=1;DIO=0;//需要传送的数据的低位为“1”,则把“DIO”清零//需要传送的数据的低位为“0”,则把“DIO”置高//送时钟的上升沿//准备送下一个BIT//送完一个字节后退出循环}//----------------------------------------------写入输入1个字节(8bit)到LED_IC程序结束---------//----------------------------------------------从LED_IC读入1个字节(8bit)程序开始-------------//输出8BIT数据//在时钟的上升沿通过MCU从LED驱动IC——TM16xx读数据#ifdefkeyunsignedcharoutdate(){unsignedchari,k=0;DIO=1;STB=0;//i——控制循环次数,k——临时保存读到的数据//释放DIO为输入//保证“STB”为低电平,程序不依赖于之前端口的状态//保证程序在实际运行中不会出现“端口迷失”for(i=0;i8;i++){CLK=0;k=k1;if((P2&0x04)==0){k=k&0x7f;//先将“CLK”清零//如果“DIO”为低电平,则把k的最高位清“0”,其他各位保持不变}else{k=(k|0x80&0xff);//如果“DIO”为高电平,则把k的最高位置“1”,其他各位保持不变}CLK=1;}return(k);//送时钟的上升沿//送完一个字节后退出循环//返回读到的1字节数据}#endif//----------------------------------------------从LED_IC读入1个字节(8bit)程序结束-----------//----------------------
本文标题:TM1629驱动程序
链接地址:https://www.777doc.com/doc-5962080 .html