找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

32*16雙色點(diǎn)陣制作 附單片機(jī)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 405616736 于 2020-5-25 23:06 編輯

使用8塊8*8雙色點(diǎn)陣拼接成32*16點(diǎn)陣屏,使用74HC595驅(qū)動(dòng)點(diǎn)陣,STC12C5A60S2單片機(jī)。自己寫了一個(gè)左移的程序,現(xiàn)分享出來。


單片機(jī)源程序如下:
  1. /************************************************
  2.                 設(shè)計(jì)名詞:32*16雙色點(diǎn)陣
  3.                 設(shè)計(jì)時(shí)間:2020年5月24日
  4.                 硬件信息:8個(gè)8*8雙色共陽點(diǎn)陣
  5.                                                         1個(gè)STC12C5A60S2單片機(jī)
  6.                                                         8個(gè)74HC595
  7. *************************************************/
  8. #include <STC12C5A60S2.h>                //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
  9. #include <intrins.h>                //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義

  10. /************************************************
  11.                 數(shù)據(jù)定義
  12. *************************************************/
  13. unsigned char colour=1;                //0x01代表紅色,0x02代表綠色,0x03代表紅&綠色

  14. unsigned int word=1;                //數(shù)據(jù)位指針
  15. unsigned int word_temp1=0;                //高八位數(shù)據(jù)暫存
  16. unsigned int word_temp2=0;                //低八位數(shù)據(jù)暫存

  17. unsigned char column=1;                //列數(shù),最大數(shù)32
  18. unsigned char divisor=1;                //列數(shù)除8的商,用于控制第幾塊點(diǎn)陣
  19. unsigned char remainder=1;                //列數(shù)除8的余數(shù),用于輸出點(diǎn)陣中的第幾行

  20. unsigned int section=0x00;                //數(shù)據(jù)分段輸出控制位

  21. char time=5;                //走字速度,可修改
  22. char time_temp=0;                //走字速度暫存

  23. /************************************************
  24.                 數(shù)組
  25. *************************************************/
  26. unsigned char segout[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,}; //列掃描數(shù)組

  27. unsigned char code tab[]=
  28. {
  29. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空白位置
  31. /*以下文字添加開始*/        
  32. 0x00,0x00,0x0C,0x18,0x10,0x04,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,//3
  33. 0x00,0x00,0x00,0x00,//空白位置
  34. 0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x10,0x84,0x0F,0x0C,//2
  35. 0x00,0x00,0x00,0x00,//空白位置
  36. 0x10,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x10,//×
  37. 0x00,0x00,0x00,0x00,//空白位置
  38. 0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,//1
  39. 0x00,0x00,0x00,0x00,//空白位置
  40. 0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x09,0x04,0x00,0xF8,//6
  41. 0x00,0x00,0x00,0x00,//空白位置
  42. 0x20,0x02,0x2C,0x0C,0x23,0x30,0x20,0xC0,0x23,0x30,0x3C,0x0C,0x00,0x01,0x20,0x02,0x3F,0x04,0x20,0xC8,0x20,0x30,0x20,0xC8,0x23,0x04,0x3C,0x02,0x00,0x01,//雙
  43. 0x00,0x00,0x00,0x00,//空白位置
  44. 0x04,0x00,0x08,0x00,0x17,0xFC,0x24,0x42,0xE4,0x42,0x24,0x42,0x24,0x42,0x27,0xC2,0x24,0x42,0x2C,0x42,0x34,0x42,0x04,0x42,0x07,0xC2,0x00,0x02,0x00,0x1E,//色
  45. 0x00,0x00,0x00,0x00,//空白位置
  46. 0x00,0x01,0x00,0x02,0x03,0xEC,0x02,0x20,0x02,0x20,0x02,0x28,0xFE,0x26,0x12,0x20,0x12,0x28,0x12,0x26,0x12,0x20,0x13,0xE0,0x10,0x08,0x10,0x07,//點(diǎn)
  47. 0x00,0x00,0x00,0x00,//空白位置
  48. 0x7F,0xFF,0x40,0x10,0x44,0x08,0x5B,0x10,0x60,0xE0,0x10,0x10,0x13,0x10,0x1D,0x10,0xF1,0x10,0x17,0xFF,0x11,0x10,0x11,0x10,0x11,0x10,0x10,0x10,//陣
  49. 0x00,0x00,0x00,0x00,//空白位置
  50. 0x08,0x20,0x06,0x20,0x40,0x7E,0x31,0x80,0x00,0x01,0x7F,0xE2,0x40,0x0C,0x4F,0xF0,0x40,0x08,0x7F,0xE4,0x00,0x00,0x1F,0xE2,0x00,0x01,0xFF,0xFE,//測
  51. 0x00,0x00,0x00,0x00,//空白位置
  52. 0x02,0x00,0x02,0x00,0x42,0x00,0x33,0xFC,0x00,0x08,0x09,0x14,0x09,0x06,0x09,0xFC,0x09,0x08,0x09,0x08,0xFF,0x80,0x08,0x70,0x88,0x0C,0x68,0x02,0x08,0x0F,//試
  53. 0x00,0x00,0x00,0x00,//空白位置
  54. 0x24,0x10,0x24,0x60,0x25,0x80,0x7F,0xFF,0xC4,0x80,0x44,0x60,0x00,0x02,0x7C,0x92,0x44,0x92,0x44,0x92,0x44,0xFE,0x44,0x92,0x44,0x92,0x7C,0x92,0x00,0x82,//程
  55. 0x00,0x00,0x00,0x00,//空白位置
  56. 0x00,0x02,0x00,0x0C,0x3F,0xF0,0x20,0x00,0x20,0x80,0x20,0x80,0x28,0x80,0xA8,0x82,0x6A,0x81,0x29,0xFE,0x2A,0x80,0x2C,0x80,0x28,0x80,0x20,0xA0,0x20,0xC0,//序
  57. 0x00,0x00,0x00,0x00,//空白位置
  58. /*以上文字添加結(jié)束*/        
  59. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  60. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空白位置
  61. 0xBB,//結(jié)束碼
  62. };

  63. /*************************************************
  64.                 硬件端口定義,按硬件修改
  65. *************************************************/
  66. sbit SER_GREEN=P2^0;                //DS 第14腳 串行數(shù)據(jù)輸入
  67. sbit SRCLK_GREEN=P2^1;                //SH_CP        第11腳 數(shù)據(jù)輸入時(shí)鐘線
  68. sbit SER_RED=P2^2;                //DS 第14腳 串行數(shù)據(jù)輸入
  69. sbit SRCLK_RED=P2^3;                //SH_CP        第11腳 數(shù)據(jù)輸入時(shí)鐘線
  70. sbit SER_COLUMN=P2^4;                //DS 第14腳 串行數(shù)據(jù)輸入
  71. sbit SRCLK_COLUMN=P2^5;                //SH_CP        第11腳 數(shù)據(jù)輸入時(shí)鐘線
  72. sbit LATCH=P2^6;                //ST_CP        第12腳 輸出存儲(chǔ)器鎖存時(shí)鐘線
  73. sbit OE=P2^7;                //OE 第13腳 輸出有效,低電平有效

  74. /*************************************************
  75.                 延時(shí)程序,1T模式單片機(jī)延時(shí)1ms,12MHZ
  76. *************************************************/
  77. void DelayXus(unsigned char n)
  78.         {
  79.                 while (n--)
  80.                         {
  81.                                 _nop_();
  82.                                 _nop_();
  83.                         }
  84.         }

  85. /*************************************************
  86.                 發(fā)送綠色字節(jié)程序
  87. *************************************************/
  88. void SendByte_Green(unsigned char dat)                //低電平有效
  89.         {
  90.                 unsigned char i;
  91.                 for(i=1;i<=8;i++)
  92.                 {        
  93.                         dat<<=1;                //即dat=dat<<1;,將dat變量左移1位后的值賦給dat,結(jié)果會(huì)改變dat變量的值
  94.                         SER_GREEN=CY;                //CY:進(jìn)位標(biāo)志
  95.                         SRCLK_GREEN=0;                //數(shù)據(jù)輸入時(shí)鐘線置0
  96.                         _nop_();                //空指令
  97.                         _nop_();                //空指令
  98.                         SRCLK_GREEN=1;                //數(shù)據(jù)輸入時(shí)鐘線置1,給上升沿
  99.                 }        
  100.         }

  101. /*************************************************
  102.                 發(fā)送紅色字節(jié)程序
  103. *************************************************/
  104. void SendByte_Red(unsigned char dat)                //低電平有效
  105.         {
  106.                 unsigned char i;
  107.                 for(i=1;i<=8;i++)
  108.                 {
  109.                         dat<<=1;                //即dat=dat<<1;,將dat變量左移1位后的值賦給dat,結(jié)果會(huì)改變dat變量的值
  110.                         SER_RED=CY;                //CY:進(jìn)位標(biāo)志
  111.                         SRCLK_RED=0;                //數(shù)據(jù)輸入時(shí)鐘線置0
  112.                         _nop_();                //空指令
  113.                         _nop_();                //空指令                        
  114.                         SRCLK_RED=1;                //數(shù)據(jù)輸入時(shí)鐘線置1,給上升沿
  115.                 }        
  116.         }

復(fù)制代碼

以上程序51hei提供打包下載:
C.zip (2.8 KB, 下載次數(shù): 18)



評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-5-25 20:28 | 只看該作者
好東東  能分享一下原理圖嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:579397 發(fā)表于 2020-5-25 23:04 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2020-5-25 20:28
好東東  能分享一下原理圖嗎?

原理圖我沒有畫了,程序文件表頭有寫595的連接引腳的,PCB圖也可以參考一下引腳連接
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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