51单片机串口通信仿真实现16 16点阵显示程序

发布者:HarmonyInLife最新更新时间:2016-01-15 来源: eefocus关键字:51单片机  串口通信  点阵显示 手机看文章 扫描二维码
随时随地手机看文章
首先要了解串口通信的基本工作原理,连接图如下:

 




 
虚拟终端连接:
单片机+虚拟终端(作为串口输入设备)+串口
 
连接图如下:



设置如下:



 
单片机虚拟终端选项作用如下:


如果输入的是ASCII码,那么就不要勾选 Hex Display Mode
如果输入的是16进制,那么就不要勾选 Hex Display Mode
 
Clear Screen 是清屏  
Echo Typed Characters 是你在虚拟终端窗口输入字符时,输入的字符显示在虚拟终端窗口上。
 
 
 
具体C程序如下(如有疑问联系本人,新浪微博地址:
#include   
#include
#define uint unsigned int
#define uchar unsigned char
unsigned char a,flag;
char code YD[]={


0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80,
0x05,0x40,0x09,0x30,0x31,0x0E,0xDF,0xE4,
0x00,0x80,0x01,0x00,0x7F,0xFE,0x01,0x00,
0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,


0x20,0x40,0x30,0x40,0x24,0x4C,0x42,0x70,
0xFF,0x44,0x42,0x46,0x00,0x7C,0x7E,0x00,
0x42,0x40,0x7E,0x4C,0x42,0x70,0x7E,0x40,
0x42,0x44,0x42,0x46,0x4A,0x3C,0x44,0x00,


0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,
0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0xFE,
0x01,0x00,0x09,0x00,0x09,0xF8,0x09,0x00,
0x15,0x00,0x23,0x00,0x40,0xFE,0x00,0x00,


0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x40,
0x04,0x20,0x09,0x18,0x11,0x0E,0x61,0x04,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,


0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,
0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,/


0x08,0x20,0x08,0x20,0x08,0x20,0x4B,0xFE,
0x4A,0x22,0x4A,0x22,0x4A,0x22,0x4A,0x22,
0x4A,0x22,0x4A,0x22,0x4A,0x22,0x12,0x2E,
0x12,0x24,0x20,0x20,0x40,0x20,0x80,0x20,


0x00,0x00,0x7F,0xFC,0x00,0x10,0x1F,0x90,
0x10,0x90,0x1F,0x90,0x10,0x90,0x00,0x04,
0xFF,0xFE,0x00,0x10,0x1F,0x90,0x10,0x90,
0x1F,0x90,0x10,0x90,0x00,0x50,0x00,0x20
};


void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}

void main()
{
 int i;
 TMOD=0x20;//设置定时器1为工作方式2
 TH1=0xfd;
 TH2=0xfd;//设置波特率为9600
 TR1=1;//启动定时器1
 SM0=0;
 SM1=1;//选择串口工作方式1
 REN=1;//允许接收数据
 EA=1;//打开总中断
  ES=1;//打开串口中断
 
 while(1)
 {
  if(flag==1)
  {
   flag=0;
    while(1)
             {
    if(a==0x31)//键盘码十六进制
    {
     for(i=0;i<16;i++)
     {
      P1=i;
      P0=~YD[2*i];
      P2=~YD[2*i+1];
      delay(2);
      
    }
 
    if(a==0x32)
                {
              for(i=1;i<17;i++)
     {
      P1=i;
      P0=~YD[32+2*i];
      P2=~YD[32+2*i+1];
      delay(2);
 
      
             }
 
    if(a==0x33)
    {
     for(i=1;i<17;i++)
     
      P1=i;
      P0=~YD[64+2*i];
      P2=~YD[64+2*i+1];
      delay(2);
      
    }
 
    if(a==0x34)
    {
     for(i=1;i<17;i++)
     {
      P1=i;
      P0=~YD[96+2*i];
      P2=~YD[96+2*i+1];
      delay(2);
      
    }
 
    if(a==0x35)
    {
     for(i=1;i<17;i++)
     {
      P1=i;
      P0=~YD[128+2*i];
      P2=~YD[128+2*i+1];
      delay(2);
      
    }
 
    if(a==0x36)
    {
     for(i=1;i<17;i++)
     {
      P1=i;
      P0=~YD[160+2*i];
      P2=~YD[160+2*i+1];
      delay(2);
      
    }
 
    if(a==0x37)
    {
     for(i=1;i<17;i++)
     {
      P1=i;
      P0=~YD[192+2*i];
      P2=~YD[192+2*i+1];
      delay(2);
      
    }
 
   }//第二个while结尾
  }//if结尾
 }//第一个while结尾
}//主函数结尾

void ser() interrupt 4
{
 RI=0;//接受中断标志位,清0为取消中断申请
 a=SBUF;//接收数据
 flag=1;//中断标志位
}

关键字:51单片机  串口通信  点阵显示 引用地址:51单片机串口通信仿真实现16 16点阵显示程序

上一篇:89C51单片机的接线及调试
下一篇:51内核单片机中断优先级的理解

推荐阅读最新更新时间:2024-03-16 14:44

C51单片机浮点数运算
第一,不知道你zhi的a和b是什么类型dao的,如果是定义成浮点型,那么,可以这样写: float f_Div = a/b; 如果两个有一个是整形的,那么,把整型强制转换成浮点型: float f_Div = (float)a/(float)b; 注意,那个f_Div变量必须是float型,才能有小数产生 第二,你要进行显示,肯定要把各个位都取出来,这里面肯定有一个取模运算,就是 % , 对于浮点型,不运行取模运算的,所以,你必须把浮点型转换成整型,但是,不能强制转换, 比如: unsigned int I_Div = (unsigned int)f_Div;这是不可以的,你的小数部分就没有了. 所以,你必须要放大一定的倍数,根据
[单片机]
基于51单片机的 汽车速度时间表的毕业设计
一、 前 言 1.1 汽车速度时间表原理 以AT89C51为核心,通过光电传感器来检测汽画的运转情况进而实现对自行车的速度的计算,存储,最后用6位的LED能直观的将速度显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。 1.2 单片机最小系统 1 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。  对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图(图1): 图11 2 详细
[单片机]
基于<font color='red'>51单片机</font>的 汽车速度时间表的毕业设计
空气PM2.5和PM10等测定(51单片机+攀藤PMS5003)
攀藤PMS5003主动式传输协议: 官方推荐的电路: 我的连接方式: 主程序: /* 功能说明: 读取攀藤PMS5003空气质量传感器数据并显示PM2.5和PM10的值。 */ #include config.h #include lcd1602.h void UART_init() { TMOD = 0x20; //T1工作模式2 8位自动重装 TH1 = 0xfd; TL1 = 0xfd; //比特率9600 TR1 = 1; //启动T1定时器 SM0 = 0; SM1 = 1; //串口工作方式1
[单片机]
空气PM2.5和PM10等测定(<font color='red'>51单片机</font>+攀藤PMS5003)
51单片机内部特殊功能寄存器分析
1. Warning 280:’i’:unreferenced LOC al variable 说明局部变量i 在函数中未作任何的存取操作,解决方法消除函数中i 变量的宣告 2 Warning 206:’Mus IC 3’:missing function-prototype 说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用 解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告 3 Compling :C:\8051\MANN.C Error:318: CAN ’t open file ‘beep.h’
[单片机]
如何快速零基础到入门51单片机(三)
单片机介绍 单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口、定时器、中断系统等电路,从而构成了单芯片微型计算机,也就是单片机(single chip Microcomputer)也叫微控制器(MCU)。 https://pic1.zhimg.com/80/v2-7110e1c15a3e3d73697d21841407db97_1440w.jpg 单片机的性能与计算机相比计算机要高出非常多。正是因为早期的电脑为了性能丰富导致体积大、造价昂贵,人们只需要它的部分功能,就把主要的一些器件拿出来组成了新的物品就是单片机。 所以单片机的优点就是体积小、结构简单、而且成本很低。 单片机的工作流程
[单片机]
单片机小白学习之路(十一)---8x8点阵显示数字
目标:8x8点阵显示数字 和上一篇几乎一样,就是多添加几个数据 #include reg51.h //因为52.h里面有SRCLK同名关键词,所以用51,他们内核都一样可以交换使用 #include intrins.h //包含_nop_()的库 typedef unsigned int u16; typedef unsigned char u8; sbit SER=P3^4; sbit SRCLK=P3^6; sbit RCLK=P3^5; u8 ledZ ={0x01,0x91,0x91,0xff,0xff,0x91,0x91,0x01}; u8 ledF ={0x7f,0xbf,0xdf,0xef,0
[单片机]
单片机小白学习之路(十一)---8x8<font color='red'>点阵显示</font>数字
8051单片机教程第十二课:逻辑运算类指令
对累加器A的逻辑操作: CLRA;将A中的值清0,单周期单字节指令,与MOVA,#00H效果相同。 CPLA;将A中的值按位取反 RLA;将A中的值逻辑左移 RLCA;将A中的值加上进位位进行逻辑左移 RRA;将A中的值进行逻辑右移 RRCA;将A中的值加上进位位进行逻辑右移 SWAPA;将A中的值高、低4位交换。 例:(A)=73H,则执行CPLA,这样进行: 73H化为二进制为01110011, 逐位取反即为10001100,也就是8CH。 RLA是将(A)中的值的第7位送到第0位,第0位送1位,依次类推。 例:A中的值为68H,执行RLA。68H化为二进制为01101000,按
[单片机]
STM32速成笔记(5)—串口通信
一、什么是串口通信 串口通信是指外部设备与主控芯片之间,通过数据信号线、地线等,按位进行数据传输的一种通信方式,属于串行通信方式。串行通信是指使用一条数据线依次逐位传输数据,每一位数据占据固定长度的时间。可以看一下简单的串行通信示意图。 串口通信示意图 二、串口通信有什么用 这里简单列举一下串口通信的用途 • 下载程序 • 外设与单片机通信 单片机给外设发送一些指令或者配置信息,外设给单片机回传一些信息。 • 打印信息 比如将ADC采集到的电压发送给上位机的串口调试助手,或者实时监测某一个变量的变化。 三、STM32的串口通信 普中核心板上使用的STM32F103ZET6有三
[单片机]
STM32速成笔记(5)—<font color='red'>串口通信</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved