找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4004|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

機(jī)頂盒ct1642數(shù)碼管顯示測試

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
今天測試一個(gè)中六九的面板顯示板,IC是ct1642
代碼從網(wǎng)上stm8移植過來.
好像不能一次鎖存多位并顯示多位,就是鎖存新的,忘記舊的.
請指正.
  1. #include <STC89C5xRC.H>

  2. #include "intrins.h"
  3. sbit CT_CLK=P1^1;
  4. sbit CT_DATA=P1^0;

  5. code char Lcd_tab[17]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E};//共陰極

  6. static void ct1642_send_data(unsigned char ct_dis_data, unsigned char ct_com)

  7. {

  8. unsigned char ct_addr;                   //存儲數(shù)碼管位置

  9. unsigned char i;

  10. switch(ct_com)

  11. {

  12. case 0: {ct_addr=0xef; ;break;}

  13. //顯示C1位數(shù)據(jù) 數(shù)碼管為共陰極,將要點(diǎn)亮的COM置0以顯示該COM



  14. case 1: {ct_addr=0xdf; break;} //顯示C2位數(shù)據(jù)  



  15. case 2: {ct_addr=0xbf; break;} //顯示C3位數(shù)據(jù)  

  16. case 3: {ct_addr=0x7f; break;} //顯示C4位數(shù)據(jù)     

  17. case 4: {ct_addr=0xff; break;}  //掃描鍵盤,關(guān)閉COM1  

  18. default:{ct_addr=0xff; ct_dis_data=0x00;break;}   

  19. }



  20. for(i=0;i<8;i++)                   //發(fā)送8位地址

  21. {

  22. CT_CLK=0 ;

  23.         if( (ct_addr<<i)&0x80)


  24. {

  25. CT_DATA=1;

  26. }

  27. else

  28. {

  29. CT_DATA=0;

  30. }

  31. CT_CLK=1;//上升沿輸出一位

  32. }



  33. CT_DATA=0;      //發(fā)送兩個(gè)空位,補(bǔ)足要發(fā)送的18位

  34. CT_CLK=0 ;

  35. _nop_();//此處根據(jù)單片機(jī)的指令周期而定

  36. CT_CLK=1;



  37. CT_DATA=0;

  38. CT_CLK=0 ;

  39. _nop_();

  40. CT_CLK=1;

  41. for(i=0;i<8;i++)  //發(fā)送8位數(shù)據(jù)

  42. {

  43. CT_CLK=0 ;

  44. if( (ct_dis_data<<i)&0x80)

  45. {

  46. CT_DATA=1;

  47. }

  48. else

  49. {

  50. CT_DATA=0;

  51. }

  52. CT_CLK=1;

  53. }

  54. CT_CLK=1; //輸出數(shù)據(jù)



  55. CT_DATA=0;

  56. _nop_();

  57. CT_DATA=1;





  58. CT_CLK=0 ;

  59. CT_DATA=0;

  60. _nop_();

  61. CT_DATA=1;
  62. CT_CLK=0;
  63. return;

  64. }


  65. void delay(unsigned char tme)
  66. {  unsigned char i;
  67.     i=tme;
  68.     while(tme--)while(i--);
  69. }
  70. void main(void)
  71. {  
  72.    CT_DATA=1;
  73.     CT_CLK=0;
  74.    
  75.     do
  76.     {ct1642_send_data(Lcd_tab[6],0);
  77.         //delay(100);
  78.     ct1642_send_data(Lcd_tab[5],1);
  79.          //delay(100);
  80.     ct1642_send_data(Lcd_tab[4],2);
  81.          //delay(100);
  82.        // while(1);
  83.     }while(1);
  84.    
  85. }
復(fù)制代碼




評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表