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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

16X64點陣屏上位機軟件與下位機單片機程序(串口改字與頻譜)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:277987 發(fā)表于 2018-2-20 17:23 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
此點陣屏與控制卡的電路原理圖與詳細制作資料詳見:
http://www.zg4o1577.cn/bbs/dpj-107584-1.html


上位機字幕軟件采用VB.NET編寫,所以用此軟件需先安裝dotnet2.0平臺 需要自己去下載

針對16*64點陣,上位機取模大小為16*16的漢字,STC12C5A32S2 內(nèi)部有32K EEP 可存儲1000個漢字,把你需要的字輸入文本框點生成字幕后
點發(fā)送數(shù)據(jù),此時要保證串口與控制卡連接正常。下載完成字幕后 點下設(shè)置發(fā)送 方可顯示,顯示過程中可通過設(shè)置改變移動速度和顯示顏色。



附帶2個下位機源碼:高級--加放大16分頻與64分頻16X64雙色點陣頻譜程序與
串口改字16X64點陣單片機源程序如下:
  1. /****************************************
  2. 下位機程序:Fucp
  3. 上位機軟件:Zhanggr

  4. 主控芯片;STC12C5A32S2  晶振:18.432M
  5. 通信波特率:9600
  6. 使用點陣屏 :16*64雙色

  7. 串口除了下載程序外,也是配置字幕數(shù)據(jù)的接口,
  8. 用USB轉(zhuǎn)串口方便小巧

  9. 下面見視頻效果:

  10. 程序?qū)崿F(xiàn)功能:
  11. 通過上位機字幕軟件生成的字幕數(shù)據(jù)下載到單片機內(nèi)部的EEPROM
  12. 此款單片機內(nèi)部有32K的EEPROM 所以可以存儲1000 個16*16漢字
  13. 字幕軟件配置16*16字體
  14. 其中字體可設(shè)置顯示顏色 紅 綠 黃 三種
  15. 可設(shè)置移動速度
  16. 移動方式目前只有一種左移 往后繼續(xù)加
  17. 其他功能待開發(fā)

  18. 上位機使用見說明
  19. 祝大家學(xué)習(xí)進步!
  20. *****************************************/
  21. #include "NEW_8051.H"
  22. #include "main.h"
  23. #define light 3                        //定義亮度
  24. uchar code hanzi[];                                            //漢字字模
  25. uchar code hanzi1[];                                            //漢字字模
  26. // uchar code sw[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};/*16行段碼*/
  27. //如果用自己的單片機實驗板連接A B C D 一一對應(yīng),則用這個掃描數(shù)據(jù)
  28. //uchar code sw[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};/*16行段碼*///138驅(qū)動數(shù)據(jù)

  29. //下面的A B C D行掃描數(shù)據(jù)是反向的 配套我們的控制卡用                                 
  30. uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段碼*///138驅(qū)動數(shù)據(jù)


  31. #define DataOut        P0
  32. sbit STR=P1^7;              //鎖存         
  33. sbit SCK=P1^6;                    //時鐘         
  34. sbit SERr= P0^4;            //紅色數(shù)據(jù)
  35. sbit SERg= P0^5;                        //綠色數(shù)據(jù)
  36. uchar Move,Speed,line;  //時間變量
  37. uint zimuo;                                   //字模計數(shù)器
  38. uchar BUFF[20];                                   //緩存
  39. uchar ucTimeOut;
  40. uchar i;
  41. uint uiBaseAddress=0;
  42. uint uiFontNumber=0;
  43. //void   DelayMs(void);              // 延時
  44. void   in_data();                                   // 調(diào)整移動數(shù)據(jù)
  45. void   rxd_data();                                   // 串口發(fā)送移動數(shù)據(jù)
  46. /******************************************************/
  47. uchar ucSetSpeed=0;
  48. uchar ucSpeed=3;
  49. uchar ucSetPlateNum=0;
  50. uchar ucPlateNum=0;
  51. uchar ucSetShowMode=0;
  52. uchar ucShowMode=0;
  53. uchar ucSetFontSize=0;
  54. uchar ucFontSize=0;
  55. uchar BuffCount=0;
  56. uchar ucSetFontColor=0;
  57. uchar ucFontColor=0;
  58. uchar DelayMs=0;
  59. uchar l=0;
  60. bit bDelayMsOver=0;
  61. uchar ucEEPArray=0;
  62. uchar ucUdateTime=0;
  63. /*************************/
  64. void DelayMss(void)
  65. {
  66.   uchar TempCyc;
  67.   for(TempCyc=150;TempCyc>1;TempCyc--)
  68.      {;}
  69. }
  70. /**************************延時***********************/
  71. void InitTimer0(void)
  72. {
  73.     TMOD|= 0x01;
  74.     TH0 = 0x0C4;
  75.     TL0 = 0x00;
  76.     EA = 1;
  77.     ET0 = 1;
  78.     TR0 = 1;
  79. }
  80. /***********************************/
  81. void Send_data(unsigned char d)          /*從串口發(fā)送數(shù)據(jù)*/
  82. {
  83.           ES=0;
  84.       SBUF=d;
  85.           while(TI==0);       //等待發(fā)送完畢
  86.       TI=0;
  87.           ES=1;
  88. }
  89. /*****************************************/
  90. void Timer0Interrupt(void) interrupt 1
  91. {
  92.     TH0 = 0x0C4;
  93.     TL0 = 0x00;
  94.         if( ucTimeOut )
  95.         {
  96.                 ucTimeOut--;
  97.                 if( !ucTimeOut )
  98.                 {
  99.                         //bEanle=0;
  100.                         LED4=1;
  101.                 }
  102.                         
  103.         }
  104.         if(ucUdateTime)
  105.         {
  106.                 ucUdateTime--;
  107.                 if(!ucUdateTime)
  108.                 {
  109.                                        
  110.                         //uiBaseAddress=0;
  111.                         //bEanle=0;
  112.                         
  113.                 }
  114.         }
  115.         
  116. /**************************************/
  117.    
  118. }
  119. /****************************************/
  120. void LED_Display(void)
  121. {
  122.         ucSetPlateNum=byte_read(0x0003);//讀取EEPROM里設(shè)置的點陣屏塊數(shù)量(16*64一塊)
  123.         switch ( ucSetPlateNum )
  124.         {
  125.         case 0X01:
  126.                 ucPlateNum=8; //1塊
  127.                 break;
  128.         case 0X02:
  129.                 ucPlateNum=16; //2塊
  130.                 break;
  131.         case 0X03:
  132.                 ucPlateNum=24;//3塊
  133.                 break;
  134.         case 0X04:
  135.                 ucPlateNum=32;//4塊
  136.                 break;
  137.         case 0X05:
  138.                 ucPlateNum=40;        //5塊
  139.                 break;
  140.         default:
  141.                 ucPlateNum=8;        //1塊
  142.                 break;
  143.         }
  144. /***********************************/

  145.   ucSetShowMode=byte_read(0x0004); //顯示方式
  146.   switch ( ucSetShowMode )
  147.    {
  148.            case 0X01:
  149.                 ucShowMode=1;  //左移
  150.                 break;
  151.         case 0X02:
  152.                 ucShowMode=2;
  153.                 break;
  154.         case 0X03:
  155.                 ucShowMode=3;
  156.                 break;
  157.         case 0X04:
  158.                 ucShowMode=4;
  159.                 break;
  160.         case 0X05:
  161.                 ucShowMode=5;
  162.                 break;
  163.         default:
  164.                 ucShowMode=2;
  165.                 break;
  166.         }
  167. /***********************************/

  168. ucSetSpeed=byte_read(0x0000); //移動速度
  169.   switch ( ucSetSpeed )
  170.    {
  171.            case 0X01:
  172.                 ucSpeed=2;
  173.                 break;
  174.         case 0X02:
  175.                 ucSpeed=4;
  176.                 break;
  177.         case 0X03:
  178.                 ucSpeed=6;
  179.                 break;
  180.         case 0X04:
  181.                 ucSpeed=8;
  182.                 break;
  183.         case 0X05:
  184.                 ucSpeed=10;
  185.                 break;
  186.         default:
  187.                 ucSpeed=5;
  188.                 break;
  189.         }
  190. /********************************************/
  191. ucSetFontSize=byte_read(0x0001); //字體大小
  192.   switch ( ucSetFontSize )
  193.    {
  194.            case 0X01:
  195.                 ucFontSize=16;
  196.                 break;
  197.         default:
  198.                 ucFontSize=16;
  199.                 break;
  200.         }
  201. /**************************************************/
  202. ucSetFontColor=byte_read(0x0002); //字體顏色
  203.   switch ( ucSetFontColor )
  204.    {
  205.            case 0X01:
  206.                 ucFontColor=1;         //紅
  207.                 break;
  208.         case 0X02:
  209.                 ucFontColor=2; //綠
  210.                 break;
  211.         case 0X03:
  212.                 ucFontColor=3; //黃
  213.                 break;
  214.         default:
  215.                 ucFontColor=1;
  216.                 break;
  217.         }
  218. uiFontNumber=(byte_read(0x0100)<<8)+byte_read(0x0101);
  219. }

  220. /*主函數(shù)*/
  221. void main()
  222. {  
  223.    InitTimer0();
  224.    uart_init();
  225.    Move=0;
  226.    zimuo=0;
  227.    LED_Display();

  228.    //uart_rBIT=1;   
  229. /*******************************************/

  230. while(1)  
  231. {
  232.         while(zimuo<uiFontNumber+64)
  233.         {
  234.                 if(ucShowMode==0x01)
  235.                 {
  236.                         while(Move<ucFontSize)        //數(shù)據(jù)移位。
  237.                         {                        
  238.                                         for(Speed=0;Speed<ucSpeed;Speed++) //移動速度
  239.                                         {        
  240.                                                 for(line=0;line<16;line++)
  241.                                                 {
  242.                                                         in_data();                //調(diào)整移動數(shù)據(jù)
  243.                                                         rxd_data();
  244.                                                         DataOut=sw[line];                                                                        
  245.                                                         STR=1;//鎖存
  246.                                                         STR=0;
  247.                                                         STR=1;
  248.                                                         DelayMss();         //延時,等待一段時間,讓這列顯示的內(nèi)容在人眼內(nèi)產(chǎn)生“視覺暫留”現(xiàn)象。                                                                                
  249.                                                 }
  250.                                         }
  251.                                 
  252.                 /****************************************************/
  253.                         l++;
  254.                                 if(l==16)l=0;
  255.                                 Move++;                                                 //移動一步
  256.                         }
  257.                            Move=0;               
  258.                         zimuo=zimuo+32;
  259.                         
  260.                 }                                       
  261. /**********************************************************/        
  262.                         else if(ucShowMode==0x02)
  263.                                 {

  264.                                 }
  265.                         
  266.         }
  267.         zimuo=0;
  268.         }
  269. }
  270. /**********************************************************/
  271. void in_data(void)                                       //調(diào)整數(shù)據(jù)
  272. {
  273.           char s;   
  274.         if(ucShowMode==0x01)//左移
  275.         {
  276.                  if( ucFontSize==16 )//如果字體是16*16
  277.                  {
  278.                          for(s=8;s>=0;s--)                                            //i為向后先擇字節(jié)計數(shù)器,zimuoo為向后先字計數(shù)器
  279.                          {
  280.                                  BUFF[2*s+1]=byte_read(0x200+zimuo+1+32*s+2*line);            //把第一個字模的第一個字節(jié)放入BUFF0中,第二個字模和第一個字節(jié)放入BUFF2中
  281.                                  BUFF[2*s]=byte_read(0x200+zimuo+32*s+2*line);                //把第一個字模的第二個字節(jié)放入BUFF1中,第二個字模的第二個字節(jié)放入BUFF3中

  282.                          }
  283.                  }
  284.         
  285.         }
  286. }

  287. /***********************發(fā)送移動的數(shù)據(jù)****************************/
  288. void rxd_data(void)                            //串行發(fā)送數(shù)據(jù)
  289. {
  290.   uchar s;
  291.   uchar inc,tempyid,temp,k;
  292.          if(Move<8)
  293.         {
  294.                 inc=0;
  295.         }
  296.         else
  297.         {
  298.                 inc=1;
  299.         }
  300.   for(s=0+inc;s<8+inc;s++)                   //發(fā)送ucSePlateNum字節(jié)數(shù)據(jù)
  301.         {
  302.                  if(l<8)
  303.                        tempyid=l;
  304.               else
  305.                      tempyid=l-8;
  306. ……………………

  307. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼


更新日志:
2012-6-29 10:13:00__Start
2012-6-29 10:13:37__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:13:44__字模數(shù)據(jù)發(fā)送失敗---讀串口超時
2012-6-29 10:13:55__字模數(shù)據(jù)發(fā)送失敗---讀串口超時
2012-6-29 10:15:38__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:15:44__字模數(shù)據(jù)發(fā)送成功---(      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢
,潦倒新停濁酒懷。)
2012-6-29 10:15:46__參數(shù)設(shè)置成功,速度3,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:38:22__字模數(shù)據(jù)發(fā)送失敗---讀串口超時
2012-6-29 10:38:32__字模數(shù)據(jù)發(fā)送失敗---讀串口超時
2012-6-29 10:38:37__參數(shù)設(shè)置成功,速度2,32*32,紅色,屏數(shù)2,左移
2012-6-29 10:38:51__字模數(shù)據(jù)發(fā)送成功---(      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢
,潦倒新停濁酒懷。)
2012-6-29 10:54:14__參數(shù)設(shè)置成功,速度2,32*32,紅色,屏數(shù)2,左移
2012-6-29 10:58:25__參數(shù)設(shè)置成功,速度2,32*32,紅色,屏數(shù)2,左移
2012-6-29 10:58:31__字模數(shù)據(jù)發(fā)送成功---(      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。)
2012-6-29 10:59:22__參數(shù)設(shè)置失敗,速度2,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:59:27__參數(shù)設(shè)置失敗,速度2,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:59:41__參數(shù)設(shè)置失敗,速度2,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:59:49__參數(shù)設(shè)置失敗,速度2,16*16,紅色,屏數(shù)2,左移
2012-6-29 10:59:52__參數(shù)設(shè)置成功,速度2,16*16,紅色,屏數(shù)2,左移
2012-6-29 11:00:01__字模數(shù)據(jù)發(fā)送成功---(      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。)
2012-6-29 11:00:31__參數(shù)設(shè)置失敗,速度2,32*32,紅色,屏數(shù)2,左移
2012-6-29 11:00:36__參數(shù)設(shè)置成功,速度2,32*32,紅色,屏數(shù)2,左移
2012-6-29 11:01:12__字模數(shù)據(jù)發(fā)送成功---(      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。)
2012-6-29 11:01:18__參數(shù)設(shè)置失敗,速度2,32*32,綠色,屏數(shù)2,左移
2012-6-29 11:01:22__參數(shù)設(shè)置成功,速度2,32*32,綠色,屏數(shù)2,左移
2012-6-29 11:01:32__參數(shù)設(shè)置成功,速度2,32*32,黃色,屏數(shù)2,左移
2012-6-29 11:01:44__參數(shù)設(shè)置失敗,速度1,32*32,綠色,屏數(shù)2,左移
2012-6-29 11:01:55__參數(shù)設(shè)置成功,速度1,32*32,綠色,屏數(shù)2,左移
2012-6-29 11:02:34__字模數(shù)據(jù)發(fā)送成功---(      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢
,潦倒新停濁酒懷。)
2012-6-29 11:02:51__參數(shù)設(shè)置成功,速度1,32*32,紅色,屏數(shù)2,左移
2012-6-29 11:04:55__Close
2012-7-26 01:42:44__Start
2012-7-26 01:44:03__字模數(shù)據(jù)發(fā)送成功---(      歡迎光臨DIY視界 祝大家制作成功!  《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。)
2012-7-26 01:44:14__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:44:19__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:44:24__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:44:35__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:44:47__參數(shù)設(shè)置失敗,速度3,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:44:53__Close
2012-7-26 01:49:09__Start
2012-7-26 01:50:24__字模數(shù)據(jù)發(fā)送成功---(       歡迎光臨DIY視界,祝大家制作成功      《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢,潦倒新停濁酒懷。)
2012-7-26 01:50:26__參數(shù)設(shè)置成功,速度3,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:52:01__參數(shù)設(shè)置失敗,速度2,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:52:09__參數(shù)設(shè)置失敗,速度2,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:52:57__參數(shù)設(shè)置成功,速度2,16*16,紅色,屏數(shù)1,左移
2012-7-26 01:53:40__字模數(shù)據(jù)發(fā)送成功---(       歡迎光臨DIY視界,祝大家制作成功!   《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢,潦倒新停濁酒懷。)
2012-7-26 01:54:03__字模數(shù)據(jù)發(fā)送成功---(    歡迎光臨DIY視界,祝大家制作成功!   《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢,潦倒新停濁酒懷。)
2012-7-26 01:55:56__字模數(shù)據(jù)發(fā)送成功---(    歡迎光臨DIY視界,祝大家制作成功!   《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢,潦倒新停濁酒懷。)
2012-7-26 01:56:41__字模數(shù)據(jù)發(fā)送成功---(    歡迎光臨DIY視界,祝大家制作成功!   《登高》風(fēng)急天高猿嘯哀,渚清沙白鳥飛回。無邊落木蕭蕭下,不盡長江滾滾來。萬里悲秋常作客,百年多病獨登臺。艱難苦恨繁霜鬢,潦倒新停濁酒懷。)
2012-7-26 01:57:18__參數(shù)設(shè)置成功,速度2,16*16,綠色,屏數(shù)1,左移
2012-7-26 01:57:54__參數(shù)設(shè)置成功,速度2,16*16,黃色,屏數(shù)1,左移
2012-7-26 01:58:23__參數(shù)設(shè)置成功,速度1,16*16,黃色,屏數(shù)1,左移
2012-7-26 01:59:19__參數(shù)設(shè)置成功,速度1,16*16,綠色,屏數(shù)1,左移
2012-7-26 01:59:58__參數(shù)設(shè)置成功,速度1,16*16,紅色,屏數(shù)1,左移
2012-7-26 02:00:07__Close




全部資料51hei下載地址:
http://www.zg4o1577.cn/bbs/dpj-107584-1.html



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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线一区二区三区 | 国产精品视频一区二区三区四蜜臂 | 99在线播放| 久久精品亚洲精品国产欧美 | 欧洲亚洲精品久久久久 | 日韩精品视频一区二区三区 | 欧美日本韩国一区二区 | 久久久久久久久久毛片 | 91久久久久久久 | 久久伊 | 伊人狼人影院 | 99精品视频免费观看 | www.97国产| 精品不卡 | 天天拍天天操 | 亚洲视频一区 | 97精品一区二区 | 视频一区二区在线观看 | 一级看片免费视频 | 亚洲一区视频在线 | 久久久青草 | 国产精品伦一区二区三级视频 | 亚洲在线一区二区 | 黄色片免费看 | 欧美一二三区 | 中文字幕日韩欧美一区二区三区 | 欧美黄在线观看 | 黑人巨大精品欧美一区二区免费 | 91久久精品国产91久久 | 国产日韩一区二区三免费高清 | 精久久| 中文字幕不卡在线观看 | 男女国产网站 | 少妇黄色 | 欧美综合国产精品久久丁香 | 国产成人99久久亚洲综合精品 | 91精品一区| 亚洲免费一区 | 国产成人高清视频 | 欧美日韩在线免费 | 在线中文视频 |