找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2198|回复: 1
收起左侧

单片机串口 - 数码管显示 - ‘a’结束符源程序

[复制链接]
回帖奖励 10 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次(中奖概率 50%)
ID:223281 发表于 2017-12-5 17:25 | 显示全部楼层 |阅读模式
串口 - 数码管显示 - ‘a’结束符

单片机源程序如下:
  1. #include "stc15.h"
  2. #include "intrins.h"
  3. #include "gpio.h"
  4. #include "uart.h"
  5. #include "595hc.h"
  6. #include "stdlib.h"

  7. u16 counter = 0;
  8. u8 i=0,j,k;
  9. u8 number;

  10. ///********************** Timer0初始化 ************************/
  11. void Timer0Init(void)                //1毫秒 @11.0592MHz
  12. {
  13.         AUXR = 0x80;                //定时器时钟1T模式
  14.         TMOD = 0x00;                //设置定时器模式
  15.         TL0 = 0xCD;                //设置定时初值
  16.         TH0 = 0xD4;                //设置定时初值
  17.         EA = 1;                    //开启总中断
  18.         ET0 = 1;                //允许定时器0中断
  19.         TF0 = 0;                //清除TF0标志
  20.         TR0 = 1;                //定时器0开始计时
  21. }
  22. ///********************** Timer0中断函数 ************************/
  23. void timer0 (void) interrupt 1
  24. {
  25.         counter++;
  26.         DisplayScan();
  27. }



  28. void main(void)
  29. {
  30.         GPIO();
  31.         Timer0Init();
  32.         UART1_config();    // 使用Timer2做波特率.
  33.         EA = 1;             //允许全局中断

  34.         printf1("********Welcome!********\r\n");
  35.         for (k = 0; k < 8; k++) LED8[k] = 17;
  36.         
  37.         while (1)
  38.         {
  39.                 number = 0;
  40.                 if((TX1_Cnt != RX1_Cnt) && (!B_TX1_Busy))   //收到数据, 发送空闲
  41.                 {
  42.                         if(RX1_Buffer[TX1_Cnt] != 'a')//以字符"a"作为结束符
  43.                         {
  44.                                 SBUF = RX1_Buffer[TX1_Cnt];                        
  45.                                 B_TX1_Busy = 1;        
  46. /********************************************************/
  47.                                 if(i < 8)   //数码管显示
  48.                                 {
  49.                                         LED8[i++] = RX1_Buffer[TX1_Cnt] - 48;
  50.                                 }
  51.                                 else
  52.                                 {
  53.                                         i = 0;
  54.                                         LED8[i++] = RX1_Buffer[TX1_Cnt] - 48;
  55.                                 }
  56. /********************************************************/
  57.                                 if(++TX1_Cnt >= UART1_BUF_LENGTH)   TX1_Cnt = 0;
  58.                         }
  59.                         else
  60.                         {
  61.                                 for (k = TX1_Cnt; k < 8; k++) LED8[k] = 17;
  62.                                 TX1_Cnt = 0;
  63.                                 RX1_Cnt = 0;
  64.                                 i = 0;
  65.                         }
  66.                 }        
  67.         }
  68. ……………………

  69. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
串口 - 数码管显示 - ‘a’结束符.rar (33.08 KB, 下载次数: 7)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:210588 发表于 2018-1-22 16:33 | 显示全部楼层
编译都不成功  想问下 什么问题
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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