欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4751|回復: 3
打印 上一主題 下一主題
收起左側

51單片機驅動CT1642數碼管顯示源程序

[復制鏈接]
跳轉到指定樓層
樓主
拆解電視機頂盒找到帶CT1642控制的數碼管 在網上找到代碼修改了一下 沒有解決按鍵檢測的問題  可根據自己的需求修改對應引腳

制作出來的實物圖如下:

單片機源程序如下:
  1. sbit DAT=P2^2;
  2. sbit CLK=P2^1;
  3. sbit KEY=P2^0;
  4. u8 NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  5. u8 NixieTablepos[]={0,0x02,0x04,0x08};
  6. void CT1642_Write(u8 Pos, u8 Val)
  7. {
  8. u8 i,Posn;
  9. // 1、移18位:對應C1--C4、6位空、Q2--Q9
  10. Posn=~Pos;
  11. for(i=0; i<4; i++)//C1--C4
  12. {
  13.   DAT=Posn & 0x01;
  14.   Posn >>= 1;
  15.   CLK=0;         CLK=1;
  16. }
  17. for(i=0; i<6; i++)//6位空
  18. {
  19.   DAT=1;
  20.   CLK=0;         CLK=1;
  21. }
  22. for(i=0; i<8; i++)//Q2--Q9
  23. {
  24.   DAT=Val & 0x01;
  25.   Val >>= 1;
  26.   CLK=0;         CLK=1;
  27. }
  28. // 2、鎖存
  29. CLK=1; DAT=0;         DAT=1;
  30. // 3、輸出
  31. CLK=0; DAT=0;         DAT=1;
  32. }

  33. void NixieTabledisplay(unsigned int number)//ct1642數碼管顯示數字
  34. {
  35.   CT1642_Write(NixieTablepos[1],NixieTable[number%10]);
  36.         number/=10;
  37.         Delayms(1);
  38.   CT1642_Write(NixieTablepos[2],NixieTable[number%10]);
  39.         number/=10;
  40.         Delayms(1);
  41.         CT1642_Write(NixieTablepos[3],NixieTable[number%10]);
  42.         Delayms(1);
  43. }

  44. void NixieTabledisplayonoff(u8 state)
  45. {
  46.         if(state)//顯示ON
  47.         {CT1642_Write(NixieTablepos[1],0x37);
  48.         Delayms(1);
  49.         CT1642_Write(NixieTablepos[2],0x5C);
  50.         Delayms(1);
  51.         }
  52.         else//顯示OFF
  53.         {
  54.          CT1642_Write(NixieTablepos[1],0x71);
  55.         Delayms(1);
  56.   CT1642_Write(NixieTablepos[2],0x71);
  57.         Delayms(1);
  58.         CT1642_Write(NixieTablepos[3],0x5C);
  59.         Delayms(1);
  60.         }
  61.         
  62. }
復制代碼


IMG_20200801_113442.jpg (2.65 MB, 下載次數: 169)

IMG_20200801_113442.jpg

CT1642.zip

1 KB, 下載次數: 37, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:445069 發表于 2021-12-13 18:26 | 只看該作者
正在研究 Linux 下 CT1642 的驅動,沒想到在 51 上也有用到。
回復

使用道具 舉報

板凳
ID:48994 發表于 2023-4-12 10:28 | 只看該作者
感謝分享,手上剛好有這個,正好拿來學習下!
回復

使用道具 舉報

地板
ID:1064915 發表于 2023-4-12 14:25 | 只看該作者
CT1642是一種帶鍵盤掃描接口和LED顯示的控制專用電路,內部集成18bit移位寄存器,廣泛應用于各種家用電器等各種設備的數碼顯示驅動電路。




1、引腳說明
      Q2-Q9:表示段輸出、接數碼管陽極
      C1-C4:位輸出,接數碼管陰極
      DATA:  數據信號,寫入后存于IC寄存器中
2、功能
     主要由18位移位寄存器、18位鎖存器、驅動電路組成,芯片上電后Qn端輸出低電平,Cn端輸出高電平。


2.1   CT1642的數據輸出由數據移位、數據鎖存和數據輸出三個步驟完成:
1)數據移位: 將數據按照上圖對應格式寫入DATA端,在CLK上升沿的作用下一次性18位數據寫入到移位寄存器
2)數據鎖存: 將CLK置為1,18位移位寄存器內的數據一次性輸出到18位鎖存器,同時由于CLK為1,在DATA上升沿的作用D輸出為0,輸出關閉
3)數據輸出: 將CLK置為0, 關閉18BIT鎖存器緩沖,同時在DATA上升沿的作用下使D觸發器輸出為1,打開輸出緩沖器。

2.2  控制LED顯示:  將18位數據寫入DATA口,C1-C4控制LED是否亮,Q2-Q9控制LED顯示內容,18bit數據前四位與后八位有效;
       配合始終輸出完18位數據之后,拉高時鐘,再拉低DATA口,再拉高DATA口產生DATA上升沿,將數據鎖存;
       再將CLK置為0,再拉低DATA口,再拉高DATA口形成DATA上升沿將數據輸出,從而控制LED顯示。

2.3 檢測按鍵處理:  按鍵可以采用接在Qn端也可以接在Cn端,無論接在哪一端都要確定檢測按鍵的時候LED顯示狀態是關閉的。也就是說按鍵接在Qn端時,當進入按鍵檢測時,Cn應輸出為高電平關閉LED顯示;按鍵接在Cn端時,當進入按鍵檢測,Qn端應輸出低電平,關閉LED顯示。
      當按鍵接在Qn端時, 逐個向Qn發送高電平,讀key值,若key值為高,說明相應的鍵位已按下。
2.4 一些問題:   CT1642純軟件對時間有一定要求,時間達不到顯示會很閃。
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表