欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2204|回復: 11
打印 上一主題 下一主題
收起左側

求大神幫忙看一段程序!單片機測速度和心率的

[復制鏈接]
跳轉到指定樓層
樓主
我這段程序是測速度和心率的,但是我現在燒進52后,在串口小程序里收不到數據,連0也沒有,設置串口小程序顯示16進制了,還是沒有,求大神指點,是我哪里寫錯了,應該怎么改!謝謝



#include <reg52.h>

unsigned char flag_d = 0;        //發送標志
unsigned char time = 0;                /
unsigned int heart = 0;                //心率變量
unsigned int  num[2]  = {0,0};                //
unsigned int speed = 0;
float temp;
float count = 0;                        //間隔時間

//發送字符
void UART_SChar(unsigned char ch)
{
        SBUF = ch;                                //發送數據
        while(TI == 0);                        //等待發送完成
        TI = 0;                                        //清楚發送標志
}

void main(void)
{
        TMOD = 0x21;                                //定時器工作方式
        SCON = 0X40;                                //串口工作方式
        TH0 = (65536-45872)/256;                                           //定時器0初值
        TL0        = (65536-45872)%256;
        TH1 = 0XFD;                                        //定時器1初值
        TL1 = 0XFD;
        IT0 = 0;                                        //外部中斷0低電平觸發速度
        IT1 = 1;          //下降沿觸發心率
        EA  = 1;                //開中斷
        ES  = 1;          //開串行口中斷
        EX0 = 1;                                        //開外部0中斷
        EX1 = 1;          //開外部1中斷
        ET0 = 1;                //開定時器0中斷
        ET1 = 1;
        TR0 = 1;
        TR1 = 1;                                        //啟動定時器1


        while(1)
        {
                if(flag_d != 0)                        //如果發送標志位有效
                 {
                        UART_SChar(0x00);        //發送數據
                        UART_SChar(speed);        //發送數據
                        UART_SChar(0xff);        //發送數據
                        if(flag_d == 2)                  
                         {
                                                        UART_SChar(0x00);           //發送數據
                                UART_SChar(heart);   //發送數據  
                                                        UART_SChar(0xff);    //發送數據
                          }
                   }
                      flag_d = 0;                        //清除標志                 
          }
}

//T0中斷服務程序
  void T0_ISR(void) interrupt 1                  //
{
        TH0 = (65536-45872)/256;
        TL0 = (65536-45872)%256;
        speed = num[0];
        num[0] = 0 ;
        flag_d = 1 ;
                if (time == 40)
               {
                          heart = num[1];
                          num[1] = 0 ;
                          flag_d = 2 ;
                          time = 0 ;                                 
                 }
         time++;
}

  void INT0_ISR(void) interrupt 0
{
        num[0]++;        
}

//外部中斷1服務程序
void INT1_ISR(void) interrupt 2                  //
{
  num[1]++;         
  }
        

評分

參與人數 1黑幣 +5 收起 理由
Vivi899 + 5

查看全部評分

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

使用道具 舉報

沙發
ID:82765 發表于 2017-6-22 10:49 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:213602 發表于 2017-6-22 10:52 | 只看該作者
cjjcjj1 發表于 2017-6-22 10:49
if(flag_d != 0)       那就是發送標志位一直處于無效狀態

不是啊  if(flag_d != 0)的意思不是判斷flag_d 等不等于0嗎?為啥是移植處于無效?
回復

使用道具 舉報

地板
ID:213602 發表于 2017-6-22 11:05 | 只看該作者
cjjcjj1 發表于 2017-6-22 10:49
if(flag_d != 0)       那就是發送標志位一直處于無效狀態

if(flag_d != 0) 這不是判斷flag_d等不等于0嗎?為啥是無效呢
回復

使用道具 舉報

5#
ID:213602 發表于 2017-6-22 11:05 | 只看該作者
為啥是無效呢?這個不是判斷標志位是不是0嗎?
回復

使用道具 舉報

6#
ID:213631 發表于 2017-6-22 11:15 | 只看該作者
while(TI == 0);   
這個TI有定義的地方嗎
回復

使用道具 舉報

7#
ID:79544 發表于 2017-6-22 15:23 | 只看該作者
void init() {         TMOD=0x20;  //TMOD=0010 0000B,定時器T1工作于方式2               SCON=0x50;           //SCON=0101 0000B,串口工作方式1 1起始位8數據位1停止位             PCON=0x00;  //PCON=0000 0000B,波特率9600  晶振11.0592             TH1=0xfd;    //根據規定給定時器T1賦初值             TL1=0xfd;    //根據規定給定時器T1賦初值             TR1=1;      //啟動定時器T1  }
回復

使用道具 舉報

8#
ID:82765 發表于 2017-6-22 15:53 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

9#
ID:213755 發表于 2017-6-22 16:09 來自觸屏版 | 只看該作者
不清楚_(:з」∠)_
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表