亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

         找回密碼
         立即注冊

        QQ登錄

        只需一步,快速開始

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

        STM32F103帶鍵盤掃描接口的LED驅動控制程序

        [復制鏈接]
        跳轉到指定樓層
        樓主
        ID:266546 發(fā)表于 2020-10-27 13:03 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
        TM1637 是一種帶鍵盤掃描接口的LED(發(fā)光二極管顯示器)驅動控制專用電路,內部集成有MCU 數(shù)字接口、數(shù)據鎖存器、LED 高壓驅動、鍵盤掃描等電路。

        單片機源程序如下:
        1. #include "TM1637.h"
        2. #include "delay.h"
        3. #include "usart.h"
        4. #include "Buzzer.h"
        5. #include "SysTick.h"
        6. /** Write multiple bits in an 8-bit device register.
        7. * @param slaveAddr I2C slave device address
        8. * @param regAddr Register regAddr to write to
        9. * @param bitStart First bit position to write (0-7)
        10. * @param length Number of bits to write (not more than 8)
        11. * @param data Right-aligned value to write
        12. */
        13. static unsigned char temp;
        14. static unsigned char x=1;
        15. //unsigned char channel_1=1;
        16. unsigned char Enable_1;
        17. extern unsigned char channel;
        18. extern unsigned char NumDis[24],TIME[10],G_1,K1;
        19. extern int16_t cache[6],data[6];
        20. //__IO u32 Time_1;
        21. extern __IO u32 Total_time;
        22. void TM1637_Delay_us(unsigned  int Nus)
        23. {
        24. for(;Nus>0;Nus--)
        25.         {
        26.           __nop();
        27.         }
        28. }

        29. void TM1637_Start(void)
        30. {
        31.         TM1637_DIO_OUT();
        32.   TM1637_CLK (1);
        33.         TM1637_OUT_DIO1 = 1;
        34.         TM1637_Delay_us(2);
        35.         TM1637_OUT_DIO1 = 0;
        36.         TM1637_Delay_us(2);
        37.         TM1637_CLK ( 0);
        38. }
        39. void TM1637_Ack(void)
        40. {
        41.         TM1637_DIO_IN();
        42.   TM1637_CLK ( 0);
        43.         TM1637_Delay_us(5);
        44.         while(TM1637_READ_DIO1);
        45.         TM1637_CLK (1);
        46.         TM1637_Delay_us(2);
        47. }
        48. void TM1637_Stop(void)
        49. {
        50.         TM1637_DIO_OUT();
        51.         TM1637_CLK ( 0);
        52.         TM1637_Delay_us(2);
        53.         TM1637_OUT_DIO1 = 0;
        54.         TM1637_Delay_us(2);
        55.         TM1637_CLK (1);
        56.         TM1637_Delay_us(2);
        57.         TM1637_OUT_DIO1 = 1;
        58.         TM1637_Delay_us(2);
        59.         TM1637_CLK( 0);
        60.         TM1637_OUT_DIO1 = 0;
        61. }
        62. void TM1637_WriteByte(unsigned char oneByte)
        63. {
        64. unsigned char i;
        65.         TM1637_DIO_OUT();
        66.         for(i=0;i<8;i++)
        67.         {
        68.          TM1637_CLK(0);
        69.                 if(oneByte&0x01)
        70.                 {
        71.                         TM1637_OUT_DIO1 = 1;
        72.                 }
        73.                 else
        74.                 {
        75.                         TM1637_OUT_DIO1 = 0;
        76.                 }
        77.                 TM1637_Delay_us(3);
        78.                 TM1637_CLK(1);
        79.                 oneByte=oneByte>>1;
        80.         }
        81. }

        82. void TM1637_DisplayChar_1(unsigned char ch,unsigned char p)
        83. {
        84.         if(ch>23)ch=0;//防止數(shù)組越界
        85.         TM1637_Start();
        86.         TM1637_WriteByte(0x44);//0x44固定模式有利于控制顯示位,0x40則采用顯示地址自加模式這里不使用
        87.         TM1637_Ack();
        88.         TM1637_Stop();
        89.         TM1637_Start();
        90.         
        91.         TM1637_WriteByte(0xC0+p);//0X00地址開始顯示
        92.         TM1637_Ack();
        93.                
        94.         TM1637_WriteByte(NumDis[ch]);//顯示
        95.         TM1637_Ack();
        96.         
        97.         TM1637_Stop();
        98.         TM1637_Start();
        99.         TM1637_WriteByte(0x8C);
        100.         TM1637_Ack();
        101.         TM1637_Stop();
        102.                
        103. }
        104. void TM1637_Display_1(void)
        105. {
        106.         unsigned char a=0,b=0,c=0,d=0;
        107.         if(cache[0]<0)
        108.         {
        109.                 d=((-cache[0])%60)%10;
        110.                 c=((-cache[0])%60)/10;
        111.                 b=((-cache[0])/60)%10;
        112.                 a=0x40;
        113.         }
        114.         else
        115.         {
        116.         d=(cache[0]%60)%10;
        117.         c=(cache[0]%60)/10;
        118.         b=(cache[0]/60)%10;
        119.         a=(cache[0]/60)/10;
        120.         }
        121.         TM1637_Start();
        122.         TM1637_WriteByte(0x40);//0x40則采用顯示地址自加1模式
        123.         TM1637_Ack();
        124.         TM1637_Stop();
        125.         TM1637_Start();
        126.         TM1637_WriteByte(0xC0);//0X00地址開始顯示
        127.         TM1637_Ack();
        128.                
        129.         TM1637_WriteByte(TIME[a]);//顯示1
        130.         TM1637_Ack();
        131.         if(x==1)
        132.         {
        133.                 temp=TIME[b];
        134.                 x++;
        135.         }
        136.   temp^=0x80;  //10000000^11001111=01001111;01001111^10000000=11001111
        137.         TM1637_WriteByte(temp);//顯示2和跳動的冒號
        138.         TM1637_Ack();
        139.         
        140.         TM1637_WriteByte(TIME[c]);//顯示0
        141.         TM1637_Ack();
        142.                
        143.         TM1637_WriteByte(TIME[d]);//顯示0
        144.         TM1637_Ack();
        145.                
        146.         TM1637_WriteByte(0xFF);
        147.         TM1637_Ack();
        148.                
        149.         TM1637_WriteByte(0xFF);
        150.         TM1637_Ack();
        151.         
        152.         TM1637_Stop();
        153.         TM1637_Start();
        154.         TM1637_WriteByte(0x8c);
        155.         TM1637_Ack();
        156.         TM1637_Stop();
        157. }

        158. void time_1(void)
        159. {
        160.         
        161.         if(x>=2)
        162.                         {
        163.                                                 if((Enable_1==1)&&(channel==0))
        164.                                                 {
        165.                                                                 G_1=1;
        166.                                                                 cache[0]--;
        167.                                                                 if(cache[0]<0)
        168.                                                                 {
        169.                                                                         if((-cache[0])>599)
        170.                                                                         {
        171.                                                                                 Enable_1=0;
        172.                                                                         }
        173.                                                                         K1=1;                                
        174.                                                                 }        
        175.                                                         }
        176.                                 x=1;
        177.                         }
        178. }

        179. void Digital_off_1(void)
        180. {
        181.         TM1637_Start();
        182.         TM1637_WriteByte(0x88);
        183.         TM1637_Ack();
        184.         TM1637_Stop();
        185.         
        186. }
        復制代碼

        所有資料51hei提供下載:
        TM1637.zip (1.92 KB, 下載次數(shù): 34)
        原理圖參考:http://www.denmoz.com/bbs/dpj-213102-1.html
        分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
        收藏收藏1 分享淘帖 頂 踩
        回復

        使用道具 舉報

        沙發(fā)
        ID:328014 發(fā)表于 2020-10-27 14:40 | 只看該作者
        沒有電路圖啊 樓主能分享下電路嗎?
        回復

        使用道具 舉報

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

        本版積分規(guī)則

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

        Powered by 單片機教程網

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