久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

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

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

一個(gè)串口調(diào)試的問(wèn)題,板凳~~

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:14235 發(fā)表于 2009-6-14 12:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

版主和各位大蝦來(lái)幫我解決下:

我想實(shí)現(xiàn)的功能是:再PC機(jī)端輸入任意一個(gè)數(shù)n(0-99之間),然后通過(guò)串口往下傳,當(dāng)單片機(jī)接收到這個(gè)N以后,做運(yùn)算m=n*2,并把m再通過(guò)串口上傳至PC機(jī)端。(本來(lái)想的很簡(jiǎn)單直接*2,不過(guò)PC端到單片機(jī)端的數(shù)據(jù)存在著“字符”ASCII碼和數(shù)值之間的轉(zhuǎn)換,使得問(wèn)題變的有點(diǎn)麻煩...)望版主和各位大俠賜教!(程序是基于KEILC寫(xiě)的、硬件是基于C51單片機(jī)的、串口調(diào)試的PC端是用串口調(diào)試助手的,所以數(shù)值每次只能一個(gè)一個(gè)上下串...)

程序附上,問(wèn)題應(yīng)該不少,望斑竹或大蝦幫幫忙,謝謝!

 

 

#include <REG52.H>                          
#include <stdio.h>
#include <string.h>

unsigned char flag=0;
  
                
/*主程序*/
void main (void)
{


    SCON  = 0x50;          /* SCON: 模式 1, 8-bit UART, 使能接收         */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
    TH1   = 0xFD;               /* TH1:  reload value for 9600 baud @ 11.0592MHz   */
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    EA    = 1;                  /*打開(kāi)總中斷*/
    ES    = 1;                  /*打開(kāi)串口中斷*/

while (1)                       /*主循環(huán)不做任何動(dòng)作*/
    {
    }
}


void timer0_int(void) interrupt 1  //定時(shí)器定時(shí)5ms
{
     TH0=0xee;
     TL0=0x00;
     while(TF0!=1);
      {flag=1;                   //設(shè)置標(biāo)志位,當(dāng)標(biāo)志位為1時(shí)表示數(shù)據(jù)已經(jīng)接收完畢,否者標(biāo)志位為初始值0
       TF0=0;}
}

 

void UART_SER (void) interrupt 4 //串行中斷服務(wù)程序
{
    unsigned char a,b;          //定義臨時(shí)變量
   //unsigned char Temp;
   int i;
   unsigned char SendTemp[3]="";
   unsigned char SendNumb;


 if(RI)                        //判斷是接收中斷產(chǎn)生
  {
    RI=0;                      //標(biāo)志位清零

    timer0_int();            //這里出錯(cuò)了,錯(cuò)誤提示不能調(diào)用一個(gè)中斷功能

    if(flag==1)              //當(dāng)標(biāo)志位==1時(shí),表示數(shù)據(jù)接收完畢
    { SendTemp[0]=SBUF;      //此時(shí)把SBUF內(nèi)的值放入SendTemp[0]
      SendNumb=1;}
     else                    //當(dāng)標(biāo)志位==0時(shí),表示數(shù)據(jù)沒(méi)有接收完
     {SendTemp[SendNumb]=SBUF;//此時(shí)把SBUF內(nèi)的值放入SendTemp[1]
      SendNumb++;}


      a=(SendTemp[0]-48)+(SendTemp[1]-48)*10;  //把2個(gè)數(shù)進(jìn)行ASCII碼到數(shù)值的轉(zhuǎn)換,并組成由PC輸入的實(shí)際的數(shù)值,賦予a
    b=a*2;                                   //令b=2倍a
      SendTemp[0]=a%10+48;                     //拆解數(shù)值b,并轉(zhuǎn)喊道ASCII碼形式,準(zhǔn)備上傳至PC端
      SendTemp[1]=a/10+48;
   for(i=0;i<3;i++)
    {
     SBUF=SendTemp;
 
        if(TI)                        //如果是發(fā)送標(biāo)志位,清零
        TI=0;
    }
   }

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频一二三 | 国产免费观看一级国产 | 久久久久久成人 | 日韩激情网 | 91美女在线 | 中文在线一区二区 | 国产婷婷色一区二区三区 | 欧美区在线观看 | 中文字幕一区二区三区四区 | 特级丰满少妇一级aaaa爱毛片 | 人人人人干 | 日本中文字幕日韩精品免费 | 日本久草视频 | 色av一区二区三区 | 9191av| 午夜看电影在线观看 | 国产亚洲精品精品国产亚洲综合 | 一级大片 | 国产一区二区免费 | 国产成人午夜精品影院游乐网 | 亚洲一区二区三区在线视频 | 国产精品久久久久久婷婷天堂 | 亚洲精品中文在线观看 | 一区二区在线看 | 日韩久草 | 一区二区三区在线 | 国产欧美在线观看 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 91tv在线观看 | 九九九国产 | 亚洲高清在线观看 | 自拍偷拍欧美 | 激情视频一区 | 麻豆久久 | 亚洲综合成人网 | 久久久久久电影 | 日本中文在线 | 男女视频在线观看网站 | 91精品国产自产在线老师啪 | a欧美| 国产午夜精品久久久 |