久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC8G1K單片機(jī)芯片和TM1640怎么顯示123?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
#include <stc8.h>
sbit CLK = P1^0;  // 連接到TM1640的CLK引腳
sbit DIO = P1^1;   // 定義DIO引腳,連接到TM1640的DIO引腳

void delay_us(unsigned int us)
{
    while(us--);  // 延時(shí)函數(shù),延時(shí)us微秒
}

void TM1640_Start(void)
{
    CLK = 1;  // CLK引腳置高電平
    DIO = 1;  // DIO引腳置高電平
    delay_us(2);  // 延時(shí)2微秒
    DIO = 0;  // DIO引腳置低電平
}

void TM1640_Stop(void)
{
    CLK = 0;  // CLK引腳置低電平
    delay_us(2);  // 延時(shí)2微秒
    DIO = 0;  // DIO引腳置低電平
    delay_us(2);  // 延時(shí)2微秒
    CLK = 1;  // CLK引腳置高電平
    delay_us(2);  // 延時(shí)2微秒
    DIO = 1;  // DIO引腳置高電平
}

void TM1640_WriteByte(unsigned char data1)
{
    unsigned char i;
    for(i=0; i<8; i++)  // 循環(huán)8次,寫入8位數(shù)據(jù)
    {
        CLK = 0;  // CLK引腳置低電平
        DIO = data1 & 0x01;  // 將data1的最低位寫入DIO引腳
        data1 >>= 1;  // data1右移1位,準(zhǔn)備寫入下一位
        delay_us(2);  // 延時(shí)2微秒
        CLK = 1;  // CLK引腳置高電平
        delay_us(2);  // 延時(shí)2微秒
    }
    CLK = 0;  // CLK引腳置低電平
    DIO = 1;  // DIO引腳置高電平
    delay_us(2);  // 延時(shí)2微秒
    CLK = 1;  // CLK引腳置高電平
    delay_us(2);  // 延時(shí)2微秒
    CLK = 0;  // CLK引腳置低電平
}

void TM1640_Display(unsigned char data2)
{
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0x44);  // 發(fā)送命令,設(shè)置TM1640為固定地址模式
    TM1640_Stop();  // 發(fā)送結(jié)束信號
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0x8C);  // 發(fā)送命令,設(shè)置TM1640的顯示亮度
    TM1640_WriteByte(data2);  // 發(fā)送數(shù)據(jù),顯示指定的數(shù)字
    TM1640_Stop();  // 發(fā)送結(jié)束信號
}

void main()
{
    P1M0 = 0xff;  // 將P1設(shè)置為推挽輸出模式
    P1M1 = 0x00;
    while(1)
                {
                        TM1640_Display(0x03);  // 顯示數(shù)字6        
                }
}
我該怎么寫,才能顯示123?不知道怎么控制數(shù)碼管哪個(gè)亮。

IMG_2441.JPG (2.04 MB, 下載次數(shù): 105)

IMG_2441.JPG

STC8G系列單片機(jī)介紹.pdf

867.77 KB, 下載次數(shù): 3

TM1640B.pdf

669.68 KB, 下載次數(shù): 4

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

使用道具 舉報(bào)

沙發(fā)
ID:69038 發(fā)表于 2023-11-7 21:05 | 只看該作者
你沒有做段碼表啊?
回復(fù)

使用道具 舉報(bào)

板凳
ID:748788 發(fā)表于 2023-11-7 21:57 | 只看該作者
回復(fù)

使用道具 舉報(bào)

地板
ID:991042 發(fā)表于 2023-11-8 09:49 | 只看該作者
zhuls 發(fā)表于 2023-11-7 21:05
你沒有做段碼表啊?

想做的,但是寫常規(guī)的共陰段碼顯示不出數(shù)字的。
回復(fù)

使用道具 舉報(bào)

5#
ID:272612 發(fā)表于 2023-11-8 10:00 | 只看該作者
你這個(gè)問題,首先需要搞清楚如何像你的代碼寫的一樣顯示一個(gè)單純的一個(gè)數(shù)字,然后再將123,拆解為1,2,3然后像下面一樣顯示出來。
TM1640_Display(0x01);  // 顯示數(shù)字1  
TM1640_Display(0x02);  // 顯示數(shù)字2  
TM1640_Display(0x03);  // 顯示數(shù)字3  

TM1640這個(gè)芯片好像用的還是蠻多的,應(yīng)該很容易找到驅(qū)動(dòng)數(shù)碼管的程序的
回復(fù)

使用道具 舉報(bào)

6#
ID:69038 發(fā)表于 2023-11-8 10:02 | 只看該作者
jade-lluo 發(fā)表于 2023-11-8 09:49
想做的,但是寫常規(guī)的共陰段碼顯示不出數(shù)字的。

TM系列的LED驅(qū)動(dòng)IC有個(gè)特性:不管共陰共陽數(shù)碼管,LED的正極一定要接SEG端,而負(fù)極一定要接GRID端否則會(huì)出錯(cuò)不亮。
所以你這個(gè)硬件電路連接關(guān)系對得上了嗎?
回復(fù)

使用道具 舉報(bào)

7#
ID:69038 發(fā)表于 2023-11-8 10:17 | 只看該作者
jade-lluo 發(fā)表于 2023-11-8 09:49
想做的,但是寫常規(guī)的共陰段碼顯示不出數(shù)字的。

又看了一下你的代碼和圖片。發(fā)現(xiàn)你離成功僅一行代碼:你少發(fā)了個(gè)顯示地址!
你發(fā)數(shù)據(jù),能顯示出來,說明電路什么的都正常了,
你改寫一下TM1640_Display(unsigned char data2這個(gè)函數(shù),把地址帶入:

void TM1640_Display(unsigned char addr,unsigned char data2)
{
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0x44);  // 發(fā)送命令,設(shè)置TM1640為固定地址模式
    TM1640_Stop();  // 發(fā)送結(jié)束信號
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0x8C);  // 發(fā)送命令,設(shè)置TM1640的顯示亮度
    TM1640_WriteByte(0xc0+addr);  // 發(fā)送顯示地址,指定位
    TM1640_WriteByte(data2);  // 發(fā)送數(shù)據(jù),顯示指定的數(shù)字
    TM1640_Stop();  // 發(fā)送結(jié)束信號
}
調(diào)用時(shí):
TM1640_Display(0,0x1);//第一個(gè)數(shù)碼管顯示“a”段
TM1640_Display(2,0xEF);//第三個(gè)數(shù)碼管顯示“8”字形
==
回復(fù)

使用道具 舉報(bào)

8#
ID:69038 發(fā)表于 2023-11-8 10:20 | 只看該作者
jade-lluo 發(fā)表于 2023-11-8 09:49
想做的,但是寫常規(guī)的共陰段碼顯示不出數(shù)字的。

參考板凳的貼子。很詳細(xì)很好的!
回復(fù)

使用道具 舉報(bào)

9#
ID:991042 發(fā)表于 2023-11-8 18:07 | 只看該作者
zhuls 發(fā)表于 2023-11-8 10:17
又看了一下你的代碼和圖片。發(fā)現(xiàn)你離成功僅一行代碼:你少發(fā)了個(gè)顯示地址!
你發(fā)數(shù)據(jù),能顯示出來,說明 ...

改了你說的這段代碼,可是沒有用。還是3個(gè)LED都亮
回復(fù)

使用道具 舉報(bào)

10#
ID:69038 發(fā)表于 2023-11-8 20:11 | 只看該作者
jade-lluo 發(fā)表于 2023-11-8 18:07
改了你說的這段代碼,可是沒有用。還是3個(gè)LED都亮

參考板凳的貼子。
認(rèn)真讀一下,并按原貼的代碼,改一下IO運(yùn)行一下
回復(fù)

使用道具 舉報(bào)

11#
ID:991042 發(fā)表于 2023-11-15 09:23 | 只看該作者
zhuls 發(fā)表于 2023-11-8 20:11
參考板凳的貼子。
認(rèn)真讀一下,并按原貼的代碼,改一下IO運(yùn)行一下

我認(rèn)真看了又看,還是不行。能說細(xì)一點(diǎn)嗎?大佬
回復(fù)

使用道具 舉報(bào)

12#
ID:161164 發(fā)表于 2023-11-15 11:09 | 只看該作者


void TM1640_Display(unsigned char Digi,unsigned char Seg)
{
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0x44);  // 發(fā)送設(shè)置數(shù)據(jù),設(shè)置TM1640為固定地址模式
    TM1640_Stop();  // 發(fā)送結(jié)束信號
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0xC0 + Digi);  // 發(fā)送設(shè)置地址,顯示指定的位置
    TM1640_WriteByte(Seg);  // 發(fā)送顯示數(shù)據(jù),顯示指定的數(shù)字取模
    TM1640_Stop();  // 發(fā)送結(jié)束信號
    TM1640_Start();  // 發(fā)送起始信號
    TM1640_WriteByte(0x8C);  // 發(fā)送命令,設(shè)置TM1640的顯示亮度
    TM1640_Stop();  // 發(fā)送結(jié)束信號
}
回復(fù)

使用道具 舉報(bào)

13#
ID:213173 發(fā)表于 2023-11-15 11:10 | 只看該作者
jade-lluo 發(fā)表于 2023-11-15 09:23
我認(rèn)真看了又看,還是不行。能說細(xì)一點(diǎn)嗎?大佬

詳細(xì)介紹你的硬件連接關(guān)系。小板子接的是串口,TM1640在數(shù)碼管模塊上還是在開發(fā)板上?
回復(fù)

使用道具 舉報(bào)

14#
ID:991042 發(fā)表于 2023-11-15 16:18 | 只看該作者
wulin 發(fā)表于 2023-11-15 11:10
詳細(xì)介紹你的硬件連接關(guān)系。小板子接的是串口,TM1640在數(shù)碼管模塊上還是在開發(fā)板上?

TM1640是單獨(dú)的模塊。封裝出來有4的腳,一個(gè)D(數(shù)據(jù))和S(時(shí)鐘),正極負(fù)極。STC8G1KO8的芯片,20個(gè)引腳。STC8G1K的P11連了TM1640的D口(數(shù)據(jù)),P10連了TM1640的S(時(shí)鐘)口。STC8G1K的下載端口是沒有問題的,可以燒錄。我是接了51普中科技的下載端口。
回復(fù)

使用道具 舉報(bào)

15#
ID:1099849 發(fā)表于 2023-11-15 16:47 | 只看該作者
TM1640_Display(0x01);  // 顯示數(shù)字1  
TM1640_Display(0x02);  // 顯示數(shù)字2  
TM1640_Display(0x03);  // 顯示數(shù)字3
回復(fù)

使用道具 舉報(bào)

16#
ID:213173 發(fā)表于 2023-11-15 21:55 | 只看該作者
jade-lluo 發(fā)表于 2023-11-15 16:18
TM1640是單獨(dú)的模塊。封裝出來有4的腳,一個(gè)D(數(shù)據(jù))和S(時(shí)鐘),正極負(fù)極。STC8G1KO8的芯片,20個(gè)引腳 ...
  1. #include <stc8.h>
  2. #include <intrins.h>

  3. sbit CLK = P1^0;  // 連接到TM1640的CLK引腳
  4. sbit DIO = P1^1;   // 定義DIO引腳,連接到TM1640的DIO引腳
  5. //本地常量聲明       
  6. unsigned char code table[]={     //標(biāo)準(zhǔn)字庫
  7. //   0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
  8.     0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
  9. //black          -    H    J    K          L           N    o    P          U    t    G    Q    r    M    y
  10.     0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e};

  11. void TM1640_Start(void)
  12. {
  13.         CLK = 1;  // CLK引腳置高電平
  14.         DIO = 1;  // DIO引腳置高電平
  15.         _nop_();_nop_();//延時(shí)2個(gè)時(shí)鐘
  16.         DIO = 0;  // DIO引腳置低電平
  17.         CLK = 0;
  18. }

  19. void TM1640_Stop(void)
  20. {
  21.         DIO = 0;  // DIO引腳置低電平
  22.         _nop_();_nop_();//延時(shí)2個(gè)時(shí)鐘
  23.         CLK = 1;  // CLK引腳置高電平
  24.         _nop_();_nop_();//延時(shí)2個(gè)時(shí)鐘
  25.         DIO = 1;  // DIO引腳置高電平
  26. }

  27. void TM1640_Write_Byte(unsigned char data1)
  28. {
  29.     unsigned char i;
  30.     CLK = 0;
  31.     DIO = 0;
  32.     for(i=0; i<8; i++)  // 循環(huán)8次,寫入8位數(shù)據(jù)
  33.     {
  34.                 CLK = 0;  // CLK引腳置低電平
  35.                 if(data1 & 0x01)
  36.                         DIO = 1;  // 將data1的最低位寫入DIO引腳
  37.                 else
  38.                         DIO = 0;
  39.                 CLK = 1;
  40.                 data1 >>= 1;  // data1右移1位,準(zhǔn)備寫入下一位
  41.     }
  42.     CLK = 0;  // CLK引腳置低電平
  43.     DIO = 0;  // DIO引腳置低電平
  44. }

  45. void TM1640_Write_Com(unsigned char date)//發(fā)送命令字
  46. {
  47.         TM1640_Start();
  48.         TM1640_Write_Byte(date);
  49.         TM1640_Stop();
  50. }

  51. void TM1640_Display()
  52. {
  53.         unsigned char i;
  54.         TM1640_Write_Com(0x40);//44固定地址 40連續(xù)地址
  55.         TM1640_Start();  // 發(fā)送起始信號
  56.         TM1640_Write_Byte(0xc0);//從第一個(gè)地址開始
  57.         for(i=0;i<3;i++)
  58.                 TM1640_Write_Byte(table[i+1]);  // 連續(xù)發(fā)3個(gè)數(shù)字。最多16個(gè)數(shù)字
  59.         TM1640_Stop();  // 發(fā)送結(jié)束信號
  60. }
  61. void TM1640_Cls()//清屏函數(shù)
  62. {
  63.         unsigned char i;
  64.         TM1640_Write_Com(0x40);//地址自動(dòng)加1模式
  65.         TM1640_Start();
  66.         TM1640_Write_Byte(0xc0);
  67.         for(i=0;i<16;i++)
  68.                 TM1640_Write_Byte(0x00);
  69.         TM1640_Stop();
  70. }
  71. void TM1640_Init()
  72. {
  73.         TM1640_Cls();
  74.         TM1640_Write_Com(0x8c);//亮度0x88~0x8F
  75. }
  76. void main()
  77. {
  78.         P0M0 = 0x00;
  79.         P0M1 = 0x00;
  80.         P1M0 = 0x00;
  81.         P1M1 = 0x00;
  82.         P2M0 = 0x00;
  83.         P2M1 = 0x00;
  84.         P3M0 = 0x00;
  85.         P3M1 = 0x00;
  86.         P4M0 = 0x00;
  87.         P4M1 = 0x00;
  88.         P5M0 = 0x00;
  89.         P5M1 = 0x00;
  90.         P6M0 = 0x00;
  91.         P6M1 = 0x00;
  92.         P7M0 = 0x00;
  93.         P7M1 = 0x00;
  94.         TM1640_Init();
  95.         TM1640_Display();//連續(xù)發(fā)1、2、3。
  96.         while(1);
  97. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

17#
ID:991042 發(fā)表于 2023-11-27 18:26 | 只看該作者

謝謝你wulin,你給的答案很有啟發(fā),我參考你的代碼搞懂了原理。也謝謝大家的回答,非常感謝。
我的問題最主要在對Command1、Command2、Command3的理解不清,導(dǎo)致寫void TM1640_Write_Byte(unsigned char data1)這個(gè)的時(shí)候邏輯混亂,也搞不清對錯(cuò),參考了正確的答案之后豁然開朗。真的超開心!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人精选 | 99热.com | 精品国产免费人成在线观看 | 91视频久久| 日本一区二区三区精品视频 | 色吊丝在线 | 国产成人免费网站 | 国产精品福利网 | 国产情品 | 欧美亚洲视频 | 99国产视频| 国产精品中文字幕在线 | 亚洲成av人片在线观看无码 | 夜夜夜夜草| 成人网在线观看 | 欧美激情国产日韩精品一区18 | 九九热在线视频观看这里只有精品 | 久久新视频 | 成人午夜免费网站 | 天天色av | 免费国产一区二区视频 | 国产精品爱久久久久久久 | 精品久久久久久久久久 | 福利视频日韩 | 国产精品久久久久久久久久久新郎 | 国产一区二区不卡 | 久艹av| 国产精品激情 | 精品三级在线观看 | 亚洲一区中文字幕 | 国产精品久久久久久久久久软件 | 性视频网 | 欧美日韩久久久 | 精品国产91乱码一区二区三区 | 国产精品久久久久久妇女 | 国产高清一区二区三区 | 中文字幕乱码一区二区三区 | 久久久久久久久久性 | 欧美黑人国产人伦爽爽爽 | 日日天天| 亚洲国产精品久久久 |