找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2007|回复: 0
打印 上一主题 下一主题
收起左侧

Proteus从串口接收来自虚拟终端的数字、字符,并在点阵屏上显示出来,每接收一个字符

[复制链接]
跳转到指定楼层
楼主
如图所示,使用89C51单片机、74HC37474HC328*8点阵模块构成8*24LED点阵显示器,能从串口接收来自虚拟终端的数字、字符,并在点阵屏上显示出来,每接收一个字符,就将显示屏上现在的字符左移一位,新接收的字符显示上屏幕的最右侧。
                  

请大家帮忙看看这个怎么做,新手小白,自己做了好多次,虚拟终端发送在点阵上显示那一块一直搞不出来,谢谢各位了

单片机源程序如下:
  1. #include
  2. #include
  3. #include
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define ulong unsigned long
  7. #define PA XBYTE[0xfeff]
  8. #define PB XBYTE[0xfdff]
  9. #define PC XBYTE[0xfbff]
  10. #define PCN XBYTE[0x7fff]
  11. uchar code  ASCII_TAB[480] = //0X20~0X7F之间 ASCII码对应的点阵数据表
  12.               { 0x00, 0x00, 0x00, 0x00, 0x00,
  13.                     0x00, 0x00, 0x9e, 0x00, 0x00,
  14.                 0x00, 0x0e, 0x00, 0x0e, 0x00,
  15.                 0x28, 0xfe, 0x28, 0xfe, 0x28,
  16.                 0x48, 0x54, 0xfe, 0x54, 0x24,
  17.                 0x46, 0x26, 0x10, 0xc8, 0xc4,
  18.                 0x6c, 0x92, 0xaa, 0x44, 0xa0,
  19.                 0x00, 0x0a, 0x06, 0x00, 0x00,
  20.                     0x00, 0x38, 0x44, 0x82, 0x00,
  21.                     0x00, 0x82, 0x44, 0x38, 0x00,
  22.                     0x28, 0x10, 0x7c, 0x10, 0x28,
  23.                     0x10, 0x10, 0x7c, 0x10, 0x10,
  24.                     0x00, 0xa0, 0x60, 0x00, 0x00,
  25.                     0x10, 0x10, 0x10, 0x10, 0x10,
  26.                     0x00, 0xc0, 0xc0, 0x00, 0x00,
  27.                    0x40, 0x20, 0x10, 0x08, 0x04,

  28.                   0x7C, 0xA2, 0x92, 0x8A, 0x7C,  
  29.     0x84, 0xC2, 0xA2, 0x92, 0x8C,  
  30.     0x42, 0x82, 0x8A, 0x96, 0x62,  
  31.     0x30, 0x28, 0x24, 0xFE, 0x20,
  32.     0x4E, 0x8A, 0x8A, 0x8A, 0x72,  
  33.     0x78, 0x94, 0x92, 0x92, 0x60,   
  34.     0x02, 0xE2, 0x12, 0x0A, 0x06,   
  35.     0x6C, 0x92, 0x92, 0x92, 0x6C,   
  36.      0x0C, 0x92, 0x92, 0x52, 0x3C,   
  37.     0x00, 0x6C, 0x6C, 0x00, 0x00,  
  38.     0x00, 0xAC, 0x6C, 0x00, 0x00,   
  39.     0x10, 0x28, 0x44, 0x82, 0x00,   
  40.     0x28, 0x28, 0x28, 0x28, 0x28,   
  41.     0x00, 0x82, 0x44, 0x28, 0x10,   
  42.     0x04, 0x02, 0xA2, 0x12, 0x0C,

  43.                 0x64, 0x92, 0xF2, 0x82, 0x7C,  
  44.     0xFC, 0x22, 0x22, 0x22, 0xFC,   
  45.      0xFE, 0x92, 0x92, 0x92, 0x6C,   
  46.     0x7C, 0x82, 0x82, 0x82, 0x44,   
  47.     0xFE, 0x82, 0x82, 0x44, 0x38,  
  48.     0xFE, 0x92, 0x92, 0x92, 0x82,  
  49.     0xFE, 0x12, 0x12, 0x12, 0x02,   
  50.     0x7C, 0x82, 0x92, 0x92, 0xF4,   
  51.     0xFE, 0x10, 0x10, 0x10, 0xFE,  
  52.     0x00, 0x82, 0xFE, 0x82, 0x00,  
  53.     0x40, 0x80, 0x82, 0x7E, 0x02,   
  54.     0xFE, 0x10, 0x28, 0x44, 0x82,   
  55.     0xFE, 0x80, 0x80, 0x80, 0x80,  
  56.     0xFE, 0x04, 0x18, 0x04, 0xFE,   
  57.     0xFE, 0x08, 0x10, 0x20, 0xFE,   
  58.     0x7C, 0x82, 0x82, 0x82, 0x7C,

  59.                 0xFE, 0x12, 0x12, 0x12, 0x0C,
  60.     0x7C, 0x82, 0xA2, 0x42, 0xBC,
  61.     0xFE, 0x12, 0x32, 0x52, 0x8C,  
  62.     0x8C, 0x92, 0x92, 0x92, 0x62,
  63.     0x02, 0x02, 0xFE, 0x02, 0x02,
  64.     0x7E, 0x80, 0x80, 0x80, 0x7E,
  65.     0x3E, 0x40, 0x80, 0x40, 0x3E,
  66.     0x7E, 0x80, 0x70, 0x80, 0x7E,
  67.     0xC6, 0x28, 0x10, 0x28, 0xC6,
  68.     0x0E, 0x10, 0xE0, 0x10, 0x0E,
  69.     0xC2, 0xA2, 0x92, 0x8A, 0x86,
  70.     0x00, 0xFE, 0x82, 0x82, 0x00,
  71.     0x04, 0x08, 0x10, 0x20, 0x40,
  72.     0x00, 0x82, 0x82, 0xFE, 0x00,
  73.     0x08, 0x04, 0x02, 0x04, 0x08,
  74.     0x80, 0x80, 0x80, 0x80, 0x80,

  75.                 0x00, 0x02, 0x04, 0x08, 0x00,
  76.     0x40, 0xA8, 0xA8, 0xA8, 0xF0,
  77.     0xFE, 0x90, 0x88, 0x88, 0x70,
  78.     0x70, 0x88, 0x88, 0x88, 0x40,
  79.     0x70, 0x88, 0x88, 0x90, 0xFE,
  80.     0x70, 0xA8, 0xA8, 0xA8, 0x30,
  81.     0x10, 0xFC, 0x12, 0x02, 0x04,
  82.     0x18, 0xA4, 0xA4, 0xA4, 0x7C,
  83.     0xFE, 0x10, 0x08, 0x08, 0xF0,
  84.     0x00, 0x88, 0xFA, 0x80, 0x00,
  85.     0x40, 0x80, 0x88, 0x7A, 0x00,
  86.     0xFE, 0x20, 0x50, 0x88, 0x00,
  87.     0x00, 0x82, 0xFE, 0x80, 0x00,
  88.     0xF8, 0x08, 0x30, 0x08, 0xF8,
  89.     0xF8, 0x10, 0x08, 0x08, 0xF0,
  90.     0x70, 0x88, 0x88, 0x88, 0x70,

  91.                 0xF8, 0x28, 0x28, 0x28, 0x10,
  92.     0x10, 0x28, 0x28, 0x30, 0xF8,
  93.     0xF8, 0x10, 0x08, 0x08, 0x10,
  94.     0x90, 0xA8, 0xA8, 0xA8, 0x40,
  95.     0x08, 0x7E, 0x88, 0x80, 0x40,
  96.     0x78, 0x80, 0x80, 0x40, 0xF8,
  97.     0x38, 0x40, 0x80, 0x40, 0x38,
  98.     0x78, 0x80, 0x60, 0x80, 0x78,
  99.     0x88, 0x50, 0x20, 0x50, 0x88,
  100.     0x18, 0xA0, 0xA0, 0xA0, 0x78,
  101.     0x88, 0xC8, 0xA8, 0x98, 0x88,
  102.     0x00, 0x10, 0x6C, 0x82, 0x00,
  103.     0x00, 0x00, 0xFE, 0x00, 0x00,
  104.     0x00, 0x82, 0x6C, 0x10, 0x00,
  105.     0x10, 0x10, 0x54, 0x38, 0x10,
  106.     0x10, 0x38, 0x54, 0x10, 0x10};

  107. uchar dbuf[5]={'A','B','C','D','E'};
  108. void delay(void)
  109. {
  110.     uchar i;
  111. for(i=0;i<250;i++);
  112. }
  113. uchar sh[5];
  114. void disp()
  115. {    uchar dat;
  116.     uchar *pch;
  117.     uchar i;
  118.     uchar j;
  119.     ulong bsel=0x01;
  120.     while(RI==0);//读数据
  121.     RI=0;
  122.     dat=SBUF;
  123.     pch=&ASCII_TAB[(dat-0x20)*5];//指向字符起始列的点阵码
  124.     for(i=0;i<5;i++)  //送出字符的5列点阵码
  125.   {
  126.     sh[ i]=*pch;//将获得的数据存入数组
  127.      pch++;
  128.   }  
  129.     for(j=0;j<5;j++)
  130.   {
  131.     P1=sh[ i]; //P1口取数组的值                  
  132.     PC=(uchar)(bsel>>16);
  133.     PB=bsel>>8;
  134.     PA=bsel&0xff;
  135.     bsel=_lrol_(bsel,1);
  136.     delay();            
  137.     PC=0x00;
  138.     PB=0x00;
  139.     PA=0x00;
  140.     SBUF=dat;
  141.     while(TI==0);
  142.     TI=0;
  143.   }
  144. }

  145. void init_serial(void)
  146. {
  147.   SCON=0x50;
  148.   TMOD=0x20;
  149.   PCON=PCON&0x7f;
  150.   TH1=-3;
  151.   TL1=-3;
  152.   TR1=1;
  153. }
  154. void main(void)
  155. {  
  156. init_serial();//初始化串行口
  157. while(1)
  158. {
  159.       disp();
  160. }
  161. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表