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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

P10點陣屏C51單片機程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:104984 發表于 2019-12-17 12:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
P10點陣屏C51程序
1/4掃描,四掃下行,1路16行,數據低OE高(04-P16-08)

適用于HUB12接口單色P10

串口模式0,普通左移,亮度速度可調,6個IO口,用的STC8F1K08,最多231個字

制作出來的實物圖如下:


單片機源程序如下:
  1. #include <STC8.H>
  2. #include <intrins.h>
  3. #include <string.h>
  4. #define                DATA        P30                //
  5. #define                CLOCK        P31                //↑        ↓
  6. #define                ADDR_A        P32                //↑
  7. #define                ADDR_B        P33                //
  8. #define                LATCH        P54                //↓        ↓
  9. #define                ENABLE        P55                //↓
  10. unsigned char Offset_Bit,Offset_String;
  11. unsigned char code String[]=
  12. {
  13.         #include <0.h>
  14. };

  15. /*----------------------------延時10us@STC-Y6@11.0592MHz----------------------------*/
  16. void Delay_10us(void)
  17. {
  18.         unsigned char i;
  19.         i=35;
  20.         while(--i);
  21. }

  22. /*----------------------------延時x10us----------------------------*/
  23. void Delay_x10us(unsigned char x)
  24. {
  25.         while(x--)
  26.                 Delay_10us();
  27. }

  28. void Line_Driver(unsigned char temp)
  29. {
  30.         switch(temp)
  31.         {
  32.                 case 0:
  33.                         ADDR_A=0;
  34.                         ADDR_B=0;
  35.                 break;
  36.                 case 1:
  37.                         ADDR_A=1;
  38.                         ADDR_B=0;
  39.                 break;
  40.                 case 2:
  41.                         ADDR_A=0;
  42.                         ADDR_B=1;
  43.                 break;
  44.                 case 3:
  45.                         ADDR_A=1;
  46.                         ADDR_B=1;
  47.                 break;
  48.                 default:
  49.                 break;
  50.         }
  51.         ENABLE=1;
  52. }

  53. void Send_One_Byte(unsigned char temp)
  54. {
  55.         unsigned char i,temp1;
  56.         for(i=0;i<8;i++)
  57.         {
  58.                 temp1<<=1;
  59.                 if(temp&0x01)
  60.                         temp1|=0x01;
  61.                 temp>>=1;
  62.         }
  63.         SBUF=~temp1;
  64.         while(!TI);
  65.         TI=0;
  66. }

  67. void Send_Display(unsigned char line)
  68. {
  69.         unsigned char i,j,a,b;
  70.         unsigned int c,d;
  71.         b=2*line;
  72.         for(i=0;i<4;i++)
  73.         {
  74.                 c=(Offset_String+i)*32;
  75.                 for(j=0;j<8;j++)
  76.                 {
  77.                         if(j<4)
  78.                         {
  79.                                 a=(3-j)*8;
  80.                                 d=a+b+c;
  81.                                 if(Offset_Bit<=8)
  82.                                         Send_One_Byte((String[d]<<Offset_Bit)|(String[d+1])>>(8-Offset_Bit));
  83.                                 else
  84.                                         Send_One_Byte((String[d+1]<<(Offset_Bit-8))|(String[d+32])>>(8-(Offset_Bit-8)));
  85.                         }
  86.                         else
  87.                         {
  88.                                 a=(7-j)*8;
  89.                                 d=a+b+c;
  90.                                 if(Offset_Bit<=8)
  91.                                         Send_One_Byte((String[d+1]<<Offset_Bit)|(String[d+32])>>(8-Offset_Bit));
  92.                                 else
  93.                                         Send_One_Byte((String[d+32]<<(Offset_Bit-8))|(String[d+33])>>(8-(Offset_Bit-8)));
  94.                         }
  95.                 }
  96.         }
  97.         LATCH=0;
  98.         LATCH=1;
  99. }

  100. void Display(unsigned char brightness)
  101. {
  102.         unsigned char line;
  103.         for(line=0;line<4;line++)
  104.         {
  105.                 Send_Display(line);
  106.                 Line_Driver(line);
  107.                 Delay_x10us(brightness);
  108.                 ENABLE=0;
  109.                 Delay_x10us(10-brightness);
  110.         }
  111. }

  112. void Init(void)
  113. {
  114.         AUXR|=0x20;
  115.         P3M0=0x0f;
  116.         P3M1=0x00;
  117.         P5M0=0x30;
  118.         P5M1=0x00;
  119.         Offset_Bit=0;
  120.         Offset_String=0;
  121. }

  122. void main(void)
  123. {
  124.         unsigned char i;
  125.         Init();
  126.         while(1)
  127.         {
  128.                 for(i=0;i<10;i++)
  129.                 {
  130.                         Display(1);
  131.                 }
  132.                 Offset_Bit++;
  133.                 if(Offset_Bit==16)
  134.                 {
  135.                         Offset_Bit=0;
  136.                         Offset_String++;
  137.                 }
  138.                 if(Offset_String==159)
  139.                 {
  140.                         Offset_String=0;
  141.                 }
  142.         }
  143. }
復制代碼

所有資料51hei提供下載:
P10點陣屏_STC8F1K08.zip (795.8 KB, 下載次數: 96)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:104984 發表于 2020-1-14 19:56 | 只看該作者
50fps最多10塊級聯,改第77行代碼,是字數,1塊單元板對應2,第136行控制移速,第138行控制亮度
回復

使用道具 舉報

板凳
ID:253767 發表于 2020-2-22 06:58 | 只看該作者
謝謝分享!!!
回復

使用道具 舉報

地板
ID:378732 發表于 2020-9-16 01:08 | 只看該作者
要是2塊板級聯, b=2*line;是不是要改成b=4*line;
回復

使用道具 舉報

5#
ID:378732 發表于 2020-9-16 20:42 | 只看該作者
按這個程序下下來不能運行。啥子問題喲
回復

使用道具 舉報

6#
ID:82944 發表于 2022-5-22 08:18 | 只看該作者
不錯很工整
回復

使用道具 舉報

7#
ID:322812 發表于 2023-2-2 15:57 | 只看該作者
ty417502873 發表于 2020-9-16 20:42
按這個程序下下來不能運行。啥子問題喲

代碼不完整,好幾個變量都沒有在上述代碼里。當然不能顯示咯。編譯能通過
回復

使用道具 舉報

8#
ID:1034262 發表于 2023-2-2 16:35 | 只看該作者
我用STC8系列MCU驅動燈板,大部分是1/16掃的,最大驅動256*128沒有任何問題。
回復

使用道具 舉報

9#
ID:403593 發表于 2023-2-7 20:39 | 只看該作者
感謝樓主分享!幾年前搞過P10的和P4的單元板顯示,這些程序很吃單片機內存的,市售LED屏的控制板基本都是STM32,速度和內存都足夠,自己做著玩,剛開始用STC15F2K16S2,16*16字體還行,級聯后顯示24*24或者32*32的字,顯示不了幾個內存就不夠了,只能換更大的。。。
回復

使用道具 舉報

10#
ID:1146670 發表于 2025-4-9 04:51 來自手機 | 只看該作者
I check . This code is not working. Maybe a problem .
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产一区二区三区 | 免费在线看a | 亚洲国产成人av | 欧美一区在线视频 | a级片在线观看 | 伊人春色在线观看 | 综合一区 | 涩涩视频在线观看免费 | 久综合| 亚洲精品久 | 亚洲一区二区三区在线视频 | 看a级黄色毛片 | 亚洲精品国产电影 | 最新国产精品视频 | 国产精品18hdxxxⅹ在线 | 91亚洲精品国偷拍自产在线观看 | 日韩中文字幕2019 | 国产精品性做久久久久久 | 99亚洲 | 久久久精品网站 | 欧美福利| av黄色在线观看 | 国产福利91精品 | 欧美综合一区二区三区 | 成人在线视频免费观看 | 欧美xxxⅹ性欧美大片 | 日韩在线国产 | 国产成人精品一区二区三区视频 | 国产精品久久久久久久久久免费看 | 色男人的天堂 | 粉嫩av久久一区二区三区 | 99re6热在线精品视频播放 | 免费在线a视频 | 中文字幕亚洲一区二区三区 | 国产清纯白嫩初高生视频在线观看 | 狠狠干天天干 | 国产精品日韩欧美一区二区三区 | 中文字幕在线观看第一页 | 久久精品国产一区二区电影 | 国内精品久久久久久 | 国产高清精品一区 |