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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2518|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

一種通過(guò)ASCII碼值的字符型轉(zhuǎn)整型方式

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:328334 發(fā)表于 2019-4-19 17:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
串口接收到的數(shù)據(jù)一定是字符型,如何把字符型里的數(shù)字轉(zhuǎn)成整型?
我們知道,0的ASCII碼值是0X30,如果發(fā)送一個(gè)“9”,那么得到的ASCII碼值為0X39,減去0X30就完成了字符型到整型的轉(zhuǎn)變
例:
unsigned int k=0;
unsigned char j="5";
k=j-0x30; //這樣k就是5了


拆分、轉(zhuǎn)換、合并的源程序如下
#include "reg52.h"               
typedef unsigned int u16;       
typedef unsigned char u8;
u8 chatet[5]={'1','1','0','1','\0'};
u16 hhj=0;
u16 kl1=1;
u16 kl2=3;
sbit ght=P2^0;void delay(u16 n);       
void UsartInit()
{
        SCON=0X50;               
        TMOD=0X20;       
        PCON=0X80;               
        TH1=0XF3;       
        TL1=0XF3;
        ES=1;                               
        EA=1;                               
        TR1=1;                               
}

void main()
{       
        UsartInit();
        while(1)
  {
                kl1=(chatet[0]-0X30)*10+chatet[1]-0X30;
             kl2=(chatet[2]-0X30)*10+chatet[3]-0X30;
                ght=0;
                delay(kl1);
                ght=1;
                delay(kl2);
        }               
}

void delay(u16 n)
{
         unsigned int i=0,j=0;
    for(i=0;i<n;i++)
        for(j=0;j<21738;j++);
}


void Usart() interrupt 4
{
        chatet[hhj]=SBUF;
        hhj=hhj+1;
        if(hhj==4)
        {
          hhj=0;
        }
        RI=0;
        TI=0;       
}


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:277550 發(fā)表于 2019-4-19 21:02 | 只看該作者
我們知道,0的ASCII碼值是0X30

應(yīng)該是

我們知道,'0'的ASCII碼值是0X30



我們知道,數(shù)字0的ASCII碼值是0X30


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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