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

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

QQ登錄

只需一步,快速開始

搜索
查看: 3418|回復(fù): 0
收起左側(cè)

16*32超級(jí)點(diǎn)陣,上位機(jī)發(fā)送任意漢字到單片機(jī)顯示(含仿真和源程序)

[復(fù)制鏈接]
ID:290170 發(fā)表于 2018-9-17 10:13 | 顯示全部樓層 |閱讀模式
0.png

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.jpg

串口32位delphi上位機(jī)
0.png 0.png

單片機(jī)下位機(jī)源程序如下:
  1. #include "reg51.h"
  2. #include "string.h"
  3. sbit P3_2=P3^2;
  4. char receive_data[96];
  5. char flag;
  6. char converse=0;
  7. unsigned char code table[]={
  8. 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  9. //串口初始化 晶振為11.0592M 方式1 波特率300-57600
  10. void InitCom(unsigned char BaudRate)
  11. {
  12. unsigned char THTL;
  13. switch (BaudRate)
  14. {
  15. case 1: THTL = 64; break; //波特率300
  16. case 2: THTL = 160; break; //600
  17. case 3: THTL = 208; break; //1200
  18. case 4: THTL = 232; break; //2400
  19. case 5: THTL = 244; break; //4800
  20. case 6: THTL = 250; break; //9600
  21. case 7: THTL = 253; break; //19200
  22. case 8: THTL = 255; break; //57600
  23. default: THTL = 208;
  24. }
  25. SCON = 0x50; //串口方式1,允許接收
  26. TMOD = 0x20; //定時(shí)器1定時(shí)方式2
  27. TCON = 0x40; //設(shè)定時(shí)器1開始計(jì)數(shù)
  28. TH1 = THTL;
  29. TL1 = THTL;
  30. PCON = 0x80; //波特率加倍控制,SMOD位
  31. RI = 0; //清收發(fā)標(biāo)志
  32. TI = 0;
  33. TR1 = 1; //啟動(dòng)定時(shí)器
  34. }

  35. //從串口接收一個(gè)定長字符串(非中斷方式,只用于字符需有一個(gè)的idata字符串?dāng)?shù)組)
  36. //如unsigned char *Str;
  37. //unsigned char i[]="abcd";
  38. //InHandStr = &i;
  39. void ComInStr(unsigned char *Str)
  40. {
  41. while(*Str !='@') //判斷是否到了字符串的尾部
  42. {
  43. while(!RI); //空語句判斷字符是否收完
  44. *Str = SBUF; //保存字符
  45. RI = 0; //清RI
  46. Str++; //字符串指針加一
  47. converse=1;
  48. }
  49. }

  50. void delay(int c)
  51.     {
  52.     int i,j;
  53.     for(i=0;i<c;i++)
  54.         for(j=0;j<10;j++)
  55.             ;
  56.      }
  57. void delay1s(void)

  58. {

  59.   unsigned char i,j,k;

  60.   for(k=60;k>0;k--)

  61.   for(i=20;i>0;i--)

  62.   for(j=248;j>0;j--);

  63. }
  64. void main()
  65. {
  66.     unsigned char i,j;    //i:每個(gè)字的顯示循環(huán);j每個(gè)字的顯示碼除以2?
  67.     unsigned int b=0;      //顯示偏移控制,char類型最多只能顯示14個(gè)漢字+一個(gè)空白位字符
  68.     unsigned char a;//控制移動(dòng)間隔時(shí)間
  69.    InitCom(6);
  70.       EA=1;
  71.       ES=1;
  72.       ET1=0;
  73.    while(1)
  74.    {  char i;
  75.       ComInStr(receive_data);
  76. while(converse)
  77.     {
  78.     j=0;
  79.     if(a>3) //移動(dòng)間隔時(shí)間;取值0--255
  80.         {
  81.         a=0;
  82.         b+=2;
  83.         if(b>=96)  //顯示到最后一個(gè)字,回頭顯示,判斷值=字?jǐn)?shù)*32
  84.             {
  85.             b=0;
  86.             }   
  87.         }
  88.      P3_2=1;
  89.      for(i=0;i<16;i++)
  90.         {
  91.         P1=i;
  92.         P0=receive_data[j+b];
  93.         P2=receive_data[j+b+1];
  94.         delay(5);
  95.         P0=0x00;
  96.         P2=0x00;
  97.         j+=2;
  98.         }

  99.      P3_2=0;
  100.      for(i=0;i<16;i++)
  101.         {
  102.         P1=i;
  103.         P0=receive_data[j+b];
  104.         P2=receive_data[j+b+1];
  105.         delay(5);
  106.         P0=0x00;
  107.         P2=0x00;
  108.         j+=2;
  109.         }
  110.         a++;

  111.     }
  112.           
  113.   }


  114. }

  115. //串口接收中斷函數(shù)
  116. //void serial () interrupt 4 using 3
  117. //{
  118.    //ComInStr(receive_data);
  119.    //flag=1;
  120. //}
復(fù)制代碼

所有資料51hei提供下載:
led大屏幕點(diǎn)陣屏設(shè)計(jì)資料.rar (378.82 KB, 下載次數(shù): 79)




回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

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