TM1629驱动程序_第1页
TM1629驱动程序_第2页
TM1629驱动程序_第3页
TM1629驱动程序_第4页
TM1629驱动程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、E:Itemdesigntmxx led demoswcurrency.c/*File name:Author:Version:Date:MCU:leddriver demo programmexcwyleddemo 0.12006年7月21日AT89S5212Mkeilc v3.05c/ 文件名/ 作者/ 版本/ 完成日期/ 单片机型号/ 单片机使用的晶体频率/ 软件开发环境Description: 本程序是深圳市天微电子有限公司LED驱动IC的演示程序,采用C语言编写/ 用于详细说明此程序文件完成的主要功能,与其他模块/ 或函数的接口,输出值、取值范围、含义及参数间的控/ 制、顺序、独立或

2、依赖等关系Others:本程序仅仅提供演示,任何个人或企业直接使用本程序造成的损失本公司不承担任何责任/ 其它内容的说明Function List: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

3、:/ 修改历史记录列表,每条修改记录应包括修改日期、修改/ 作者及修改内容简述2006年7月21日9:02xcwyModification:1)进一步添加了详细的注释2. Date:Author:xcwy2006年12月17日Modification:1)修改为本公司通用的LED驱动程序* */#include #include#include/*#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#define#defin

4、e#define#definetm1616tm1618tm1618atm1620tm1620btm1623tm1624tm1626atm1626btm1626ctm1626dtm1628tm1629tm1629atm1629btm1629ctm1629dtm1638tm1668tw16281234567891011121314151617181920#defineicmodeltm1616/这里选择的TM1616,更改“tm1616”可以得到其他型号IC的驱动程序#if icmodel=tm1616Page: 1E:Itemdesigntmxx led demoswcurrency.c#def

5、ine seg#define grid74#define dismodel 1#elif icmodel=tm1618#define seg#define grid#define key573#define dismodel 4#elif icmodel=tm1618a#define seg#define grid#define key754#define dismodel 2#elif icmodel=tm1620#define#defineseggrid86#definedismodel 3#elif icmodel=tm1620b#define#define#defineseggridk

6、ey673#definedismodel 4#elif icmodel=tm1623#define#define#defineseggridkey1174#definedismodel 4#elif icmodel=tm1624#define#defineseggrid117#definedismodel 4#elif icmodel=tm1626a#define#define#define#define#defineseggridkeyswled107526#definedismodel 4#elif icmodel=tm1626b#define#define#define#define#d

7、efineseggridkeyswled117546#definedismodel 4#elif icmodel=tm1626c#define#define#define#defineseggridkeyled11751#definedismodel 4#elif icmodel=tm1626d#define#define#define#defineseggridkeyled10751#definedismodel 4#elif icmodel=tm1628#define#define#defineseggridkey1074#definedismodel 4#elif icmodel=tm1

8、629Page: 2E:Itemdesigntmxx led demoswcurrency.c#define#define#defineseggridkey1684#definedismodel 1#elif icmodel=tm1629a#define#defineseggrid168#definedismodel 1#elif icmodel=tm1629b#define#define#defineseggridkey1484#definedismodel 1#elif icmodel=tm1629c#define#define#defineseggridkey1584#definedis

9、model 1#elif icmodel=tm1629d#define#define#defineseggridkey1284#definedismodel 1#elif icmodel=tm1638#define#define#defineseggridkey1084#definedismodel 1#elif icmodel=tm1668#define#define#defineseggridkey1075#definedismodel 1#elif icmodel=tw1628#endif#else#error 你必须确认IC的型号是否存在?#define#define#define#d

10、efineseggridkeydismodel10751#define#define#define#define#define#define#define#define#define#definedissetmodewritedatamode_zwriteledmode_zreadkeymodereadswmodewritedatamode_gwriteledmode_gstartaddressdisconmodedatacount0x030x400x410x420x430x440x450xc00x8c2*grid/显示模式设置/采用地址自动加一方式写显存/采用地址自动加一方式写LED显存命令

11、/读按键命令/读SW口命令/采用固定地址方式写显存/采用固定地址方式写LED显存命令/起始地址/显示控制/采用地址自动加一方式传输数据的个数/定义全局变量unsigned char k1,k2,k3,k4,k5;unsigned da_sw;/按键值寄存器/SW寄存器unsigned int/端口的定义count;sbitsbitSTBCLK=P20;=P21;sbitsbitDIOSPEAK=P22;=P27;/串行通讯口/外接蜂鸣器,可以不必理会/*子程序开始*Page: 3E:Itemdesigntmxx led demoswcurrency.c/-延时程序开始-void delay(i

12、nt k)unsigned char i,j;for(;k0;k-)for(j=255;j0;j-)for(i=255;i0;i-);/-延时程序结束-/-写入输入1个字节(8bit)到LED_IC程序开始-/输入8BIT数据/在时钟的上升沿通过MCU向LED驱动ICTM16xx写数据void indate(unsigned char p)unsigned int i;STB=0;/保证“STB”为低电平,程序不依赖于之前端口的状态/保证程序在实际运行中不会出现“端口迷失”for(i=0;i1;DIO=1;DIO=0;/需要传送的数据的低位为“1”,则把“DIO”清零/需要传送的数据的低位为“

13、0”,则把“DIO”置高/送时钟的上升沿/准备送下一个BIT/送完一个字节后退出循环/-写入输入1个字节(8bit)到LED_IC程序结束-/-从LED_IC读入1个字节(8bit)程序开始-/输出8BIT数据/在时钟的上升沿通过MCU从LED驱动ICTM16xx读数据#ifdef keyunsigned char outdate()unsigned char i,k=0;DIO=1;STB=0;/i控制循环次数,k临时保存读到的数据/释放DIO为输入/保证“STB”为低电平,程序不依赖于之前端口的状态/保证程序在实际运行中不会出现“端口迷失”for(i=0;i1;if(P2&0x04)=0)

14、k=k&0x7f;/先将“CLK”清零/如果“DIO”为低电平,则把k的最高位清“0”,其他各位保持不变elsek=(k|0x80&0xff); /如果“DIO”为高电平,则把k的最高位置“1”,其他各位保持不变CLK=1;return(k);/送时钟的上升沿/送完一个字节后退出循环/返回读到的1字节数据#endif/-从LED_IC读入1个字节(8bit)程序结束-/-采用地址自动加一方式传输地址和数据开始-/采用地址自动加1方式Page: 4E:Itemdesigntmxx led demoswcurrency.c/上电后LED-DRIVER显存中的数据是随机的,上电后马上传显示控制命令字

15、(打开显示),会出现乱码。/为避免上述现象,用户可以先传显示控制命令将显示关掉(见应用手册中详细介绍),然后正常操作/也可以先主动刷新LED-DRIVER显存中的数据。然后开显示/这里采用是第二种方法void display(unsigned char disa)unsigned int i;DIO=1;CLK=1;STB=1;indate(writedatamode_z);STB=1;indate(startaddress);/i控制本次需要传多少个字节显示数据/通讯开始前通讯端口全部初始化为“1”/传数据设置命令,设置采用地址自动加1方式写显示数据,/数据设置命令传完后需要将“STB”置“

16、1”/传起始地址/地址命令传完后,“STB”保持为“0”继续传需要显示的数据for(i=0;i=1)k1=outdate();if(key=2)k2=outdate();if(key=3)k3=outdate();if(key=4)k4=outdate();if(key=5)k5=outdate();STB=1;return 0;/读键结束将“STB”置“1”#endif/-按键扫描程序结束-Page: 5E:Itemdesigntmxx led demoswcurrency.c/-PWM数据传输开始-#ifdef ledunsigned char in_led()STB=1;indate(w

17、riteledmode_z);STB=1;/数据设置命令,设置为写LED显存indate(0xc0);indate(0x0f);indate(0x0f);indate(0x0f);indate(0x00);indate(0x0f);indate(0x0f);indate(0x0f);indate(0x00);/起始地址,这里的地址和/LED1宽度设置/LED2宽度设置/LED3宽度设置/关闭LED123同步调节/LED4宽度设置/LED5宽度设置/LED6宽度设置/关闭LED456同步调节STB=1;return 0;#endif/-PWM数据传输结束-#ifdef ledunsigned c

18、har in_led_g(unsigned char adress_led,da_led)STB=1;indate(writeledmode_g);STB=1;indate(adress_led);indate(da_led);STB=1;return 0;#endif/-读入SW口状态开始-#ifdef swunsigned char out_sw()STB=1;indate(readswmode);/数据设置命令,设置为读SW输入口da_sw=outdate();STB=1;return 0;#endif/-读入SW口状态结束-/*子程序结束*/*主程序开始*void main(void)SPEAK=0;DIO=1;CLK=1;STB=1;indate(dissetmode);/传显示模式设置命令,设置为7个“GRID”方式/这里不在详细给出多个显示模式的设置程序请参考产品应用手册,显示模式在上电设置好后不允许更改STB=1;display(0xff);delay(10);display2(0xC0,0x00);delay(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论