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

標題: 32*16雙色點陣制作 附單片機程序 [打印本頁]

作者: 405616736    時間: 2020-5-25 18:58
標題: 32*16雙色點陣制作 附單片機程序
本帖最后由 405616736 于 2020-5-25 23:06 編輯

使用8塊8*8雙色點陣拼接成32*16點陣屏,使用74HC595驅動點陣,STC12C5A60S2單片機。自己寫了一個左移的程序,現分享出來。


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

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

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

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

  20. unsigned int section=0x00;                //數據分段輸出控制位

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

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

  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,//點
  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. /*以上文字添加結束*/        
  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,//結束碼
  62. };

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

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

  85. /*************************************************
  86.                 發送綠色字節程序
  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,結果會改變dat變量的值
  94.                         SER_GREEN=CY;                //CY:進位標志
  95.                         SRCLK_GREEN=0;                //數據輸入時鐘線置0
  96.                         _nop_();                //空指令
  97.                         _nop_();                //空指令
  98.                         SRCLK_GREEN=1;                //數據輸入時鐘線置1,給上升沿
  99.                 }        
  100.         }

  101. /*************************************************
  102.                 發送紅色字節程序
  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,結果會改變dat變量的值
  110.                         SER_RED=CY;                //CY:進位標志
  111.                         SRCLK_RED=0;                //數據輸入時鐘線置0
  112.                         _nop_();                //空指令
  113.                         _nop_();                //空指令                        
  114.                         SRCLK_RED=1;                //數據輸入時鐘線置1,給上升沿
  115.                 }        
  116.         }

復制代碼

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




作者: 51hei團團    時間: 2020-5-25 20:28
好東東  能分享一下原理圖嗎?
作者: 405616736    時間: 2020-5-25 23:04
51hei團團 發表于 2020-5-25 20:28
好東東  能分享一下原理圖嗎?

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




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1