找回密码
 立即注册

QQ登录

只需一步,快速开始

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

我想实现按键次数显示在数码管上并发送到电脑上,但是串口助手上显示的不是12345这...

[复制链接]
ID:669905 发表于 2019-12-28 10:11 | 显示全部楼层 |阅读模式
#include <reg52.h>
#include<stdlib.h>
#define uint unsigned long
#define uchar unsigned char
sbit led1 = P2^0; // 0 light
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3;
uchar code table[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};

uint num,a;



sbit Key=P3^5;
void delayms(unsigned char t)
{
unsigned char i;
while(t--)
{
for(i=0;i<255;i++)
{
}
}
}
void display(unsigned long cnt)
{
       
                led1=0;               
                P0=table[(cnt%10000)/1000];       
                delayms(1);               
                P0=0XFF;               
                led1=1;               

                led2=0;               
                P0=table[(cnt%1000)/100];       
                delayms(1);               
                P0=0XFF;               
                led2=1;

                led3=0;               
                P0=table[(cnt%100)/10];       
                delayms(1);               
                P0=0XFF;               
                led3=1;

                led4=0;               
                P0=table[cnt%10];       
                delayms(1);               
                P0=0XFF;               
                led4=1;
               
}


void main(void)
{
unsigned char cnt=0;
SCON = 0x50;
TMOD |= 0x20;
TH1 = 0xFD;  
TR1 = 1;
delayms(1);
while(1)
{display(cnt);
if(Key==0)
{
delayms(10);
if(Key==0)
{
SBUF=cnt;
         cnt++;
while(TI==0);
TI=0;
while(Key==0);
}
}
}
} 我按独立按键,从1 按到21但是显示的却是下面的数字,求大佬指教,怎么可以在电脑上显示按键次数呢!

捕获.PNG


回复

使用道具 举报

ID:384312 发表于 2019-12-29 19:05 | 显示全部楼层
第一可能你选择的是hex,第二可能波特率的问题,第三注意是多少进制的数,第四注意字符型还是整型
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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