歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

TM1629驅動程序.doc

  • 資源ID:6657558       資源大?。?span id="bkhzqwq" class="font-tahoma">187KB        全文頁數(shù):7頁
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

TM1629驅動程序.doc

E:Itemdesigntmxx led demoswcurrency.c/*File name:Author:Version:Date:MCU:leddriver demo programmexcwyleddemo 0.12006年7月21日AT89S5212Mkeilc v3.05c/ 文件名/ 作者/ 版本/ 完成日期/ 單片機型號/ 單片機使用的晶體頻率/ 軟件開發(fā)環(huán)境Description: 本程序是深圳市天微電子有限公司LED驅動IC的演示程序,采用C語言編寫/ 用于詳細說明此程序文件完成的主要功能,與其他模塊/ 或函數(shù)的接口,輸出值、取值范圍、含義及參數(shù)間的控/ 制、順序、獨立或依賴等關系Others:本程序僅僅提供演示,任何個人或企業(yè)直接使用本程序造成的損失本公司不承擔任何責任/ 其它內容的說明Function List:1.delay()2.indate()3.outdate()4.display()延時程序通過MCU向LEDdriver中寫入一字節(jié)的數(shù)據通過MCU從LEDdriver中讀出一字節(jié)的數(shù)據采用地址自動加1方式的顯示程序5.display2() 采用固定地址方式的顯示程序6.in_led()7.out_sw()采用地址自動加一方式先LED顯存讀SW輸入口狀態(tài)/ 主要函數(shù)列表,每條記錄應包括函數(shù)名及功能簡要說明History:1. Date:Author:/ 修改歷史記錄列表,每條修改記錄應包括修改日期、修改/ 作者及修改內容簡述2006年7月21日9:02xcwyModification:1)進一步添加了詳細的注釋2. Date:Author:xcwy2006年12月17日Modification:1)修改為本公司通用的LED驅動程序* */#include <REG52.h>#include<stdio.h>#include<intrins.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的驅動程序#if icmodel=tm1616Page: 1E:Itemdesigntmxx led demoswcurrency.c#define 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#defineseggridkey673#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#defineseggridkeyswled117546#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=tm1629Page: 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#definedismodel 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#defineseggridkeydismodel10751#define#define#define#define#define#define#define#define#define#definedissetmodewritedatamode_zwriteledmode_zreadkeymodereadswmodewritedatamode_gwriteledmode_gstartaddressdisconmodedatacount0x030x400x410x420x430x440x450xc00x8c2*grid/顯示模式設置/采用地址自動加一方式寫顯存/采用地址自動加一方式寫LED顯存命令/讀按鍵命令/讀SW口命令/采用固定地址方式寫顯存/采用固定地址方式寫LED顯存命令/起始地址/顯示控制/采用地址自動加一方式傳輸數(shù)據的個數(shù)/定義全局變量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(int k)unsigned char i,j;for(;k>0;k-)for(j=255;j>0;j-)for(i=255;i>0;i-);/-延時程序結束-/-寫入輸入1個字節(jié)(8bit)到LED_IC程序開始-/輸入8BIT數(shù)據/在時鐘的上升沿通過MCU向LED驅動ICTM16xx寫數(shù)據void indate(unsigned char p)unsigned int i;STB=0;/保證“STB”為低電平,程序不依賴于之前端口的狀態(tài)/保證程序在實際運行中不會出現(xiàn)“端口迷失”for(i=0;i<8;i+)CLK=0;/先將“CLK”清零if(p&0x01)!=0)elseCLK=1;p=p>>1;DIO=1;DIO=0;/需要傳送的數(shù)據的低位為“1”,則把“DIO”清零/需要傳送的數(shù)據的低位為“0”,則把“DIO”置高/送時鐘的上升沿/準備送下一個BIT/送完一個字節(jié)后退出循環(huán)/-寫入輸入1個字節(jié)(8bit)到LED_IC程序結束-/-從LED_IC讀入1個字節(jié)(8bit)程序開始-/輸出8BIT數(shù)據/在時鐘的上升沿通過MCU從LED驅動ICTM16xx讀數(shù)據#ifdef keyunsigned char outdate()unsigned char i,k=0;DIO=1;STB=0;/i控制循環(huán)次數(shù),k臨時保存讀到的數(shù)據/釋放DIO為輸入/保證“STB”為低電平,程序不依賴于之前端口的狀態(tài)/保證程序在實際運行中不會出現(xiàn)“端口迷失”for(i=0;i<8;i+)CLK=0;k=k>>1;if(P2&0x04)=0)k=k&0x7f;/先將“CLK”清零/如果“DIO”為低電平,則把k的最高位清“0”,其他各位保持不變elsek=(k|0x80&0xff); /如果“DIO”為高電平,則把k的最高位置“1”,其他各位保持不變CLK=1;return(k);/送時鐘的上升沿/送完一個字節(jié)后退出循環(huán)/返回讀到的1字節(jié)數(shù)據#endif/-從LED_IC讀入1個字節(jié)(8bit)程序結束-/-采用地址自動加一方式傳輸?shù)刂泛蛿?shù)據開始-/采用地址自動加1方式Page: 4E:Itemdesigntmxx led demoswcurrency.c/上電后LED-DRIVER顯存中的數(shù)據是隨機的,上電后馬上傳顯示控制命令字(打開顯示),會出現(xiàn)亂碼。/為避免上述現(xiàn)象,用戶可以先傳顯示控制命令將顯示關掉(見應用手冊中詳細介紹),然后正常操作/也可以先主動刷新LED-DRIVER顯存中的數(shù)據。然后開顯示/這里采用是第二種方法void display(unsigned char disa)unsigned int i;DIO=1;CLK=1;STB=1;indate(writedatamode_z);STB=1;indate(startaddress);/i控制本次需要傳多少個字節(jié)顯示數(shù)據/通訊開始前通訊端口全部初始化為“1”/傳數(shù)據設置命令,設置采用地址自動加1方式寫顯示數(shù)據,/數(shù)據設置命令傳完后需要將“STB”置“1”/傳起始地址/地址命令傳完后,“STB”保持為“0”繼續(xù)傳需要顯示的數(shù)據for(i=0;i<datacount;i+)indate(disa);STB=1;indate(disconmode);STB=1;/在連續(xù)傳顯示的數(shù)據過程中,“STB”一直保持為”0“/傳完所有的顯示數(shù)據后(最多14BYTE)后,將“STB置“1”/傳顯示控制命令/顯示控制命令傳完后將“STB”置“1”/-采用地址自動加一方式傳輸?shù)刂泛蛿?shù)據結束-/-采用固定地址方式傳輸?shù)刂泛蛿?shù)據開始-/采用固定地址方式void display2(unsigned char adress,disa)DIO=1;CLK=1;STB=1;indate(writedatamode_g);STB=1;indate(adress);indate(disa);STB=1;/通訊開始前通訊端口全部初始化為“1”/數(shù)據設置命令/傳顯示數(shù)據對應的地址/保持“STB”=“0”,傳1BYTE顯示數(shù)據/傳完顯示數(shù)據后將“STB”置“1”/-采用固定地址方式傳輸?shù)刂泛蛿?shù)據結束-/-按鍵掃描程序開始-/按鍵掃描/只要定義了key都將執(zhí)行按鍵掃描程序,且必須從低字節(jié)開始讀#ifdef keyunsigned char keyscan()STB=1;indate(readkeymode);/傳數(shù)據設置命令,設置為讀按鍵/“STB”保持為“0”,讀鍵值/將讀到的鍵值保存在MCU的寄存器中/根據IC型號讀指定字節(jié),不允許多讀,否則會造成讀按鍵不穩(wěn)定if(key>=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數(shù)據傳輸開始-#ifdef ledunsigned char in_led()STB=1;indate(writeledmode_z);STB=1;/數(shù)據設置命令,設置為寫LED顯存indate(0xc0);indate(0x0f);indate(0x0f);indate(0x0f);indate(0x00);indate(0x0f);indate(0x0f);indate(0x0f);indate(0x00);/起始地址,這里的地址和/LED1寬度設置/LED2寬度設置/LED3寬度設置/關閉LED123同步調節(jié)/LED4寬度設置/LED5寬度設置/LED6寬度設置/關閉LED456同步調節(jié)STB=1;return 0;#endif/-PWM數(shù)據傳輸結束-#ifdef ledunsigned char 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口狀態(tài)開始-#ifdef swunsigned char out_sw()STB=1;indate(readswmode);/數(shù)據設置命令,設置為讀SW輸入口da_sw=outdate();STB=1;return 0;#endif/-讀入SW口狀態(tài)結束-/*子程序結束*/*主程序開始*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(10);#ifdef keyPage: 6/全亮/采用固定地址方式向C0地址單元寫00E:Itemdesigntmxx led demoswcurrency.ckeyscan();/調用按鍵掃描程序#endif/本程序僅僅提供按鍵掃描,2次按鍵掃描的時間不得<10MS,在這里不提供按鍵處理程序#ifdef ledin_led();delay(10);in_led_g(0xc0,0x00);#endif#ifdef swout_sw();/6路PWM輸出口輸出"1"/讓LED1輸出"0"/調用讀SW輸入口程序#endif/這里不提供SW口處理程序_nop_();/*主程序結束*Page: 7

注意事項

本文(TM1629驅動程序.doc)為本站會員(w****2)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!