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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2034|回復: 3
打印 上一主題 下一主題
收起左側(cè)

我封裝的超聲波傳感器HS-SR04的模塊,但是想用數(shù)碼管檢驗的時候一直用不了

[復制鏈接]
回帖獎勵 15 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:602220 發(fā)表于 2020-2-25 22:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 940675854 于 2020-2-25 22:44 編輯

各位大神幫我看看,代碼作用是封裝后放在一個定時器,跟一些傳感器一起,作狀態(tài)掃描。
檢驗的時候放在主程序延時800ms不斷循環(huán),用一個定時器刷新數(shù)碼管狀態(tài),傳感器輸出數(shù)據(jù)放在數(shù)組里。但是數(shù)碼管一直不顯示輸出.


/************************封裝的ultrasonic.c************************/
#include<reg52.h>
#include <intrins.h>
#include"ultrasonic.h"

unsigned int t=0;
unsigned char k=0;
unsigned int sum=0;
unsigned int s=0;


void nops(unsigned int nop)
{
while(nop--)
{
  _nop_();
}
}
unsigned  int getDistance()
{
TH1=TL1=0;//清除計時器,為下一次測距做準備
EX1=1;//打開外部中斷INT0
Trig=1;
nops(10);//觸發(fā)信號延時
Trig=0;
TR1=1;//打開定時器開始計時
return t;//340/2*(t/1000/10)cm
}
unsigned int  getdis()
{
unsigned char N=5;//樣本數(shù)量
unsigned char k=N;
unsigned int sum=0;
while(k--)
{
  sum+=getDistance();
}
return sum/N;
}
/*************************************************/
void Timer1Init()
{
TMOD &= 0x0F;  //設置定時器模式
TMOD |= 0x10;  //設置定時器模式
TL1 = 0x00;   //設置定時初值
TH1 = 0x00;   //設置定時初值
TF1 = 0;    //清除TF1標志
ET1 = 1;   
TR1 = 0;    //定時器1開始計時
  EA = 1;                     
}
char over=0;
void Interrupt_time1() interrupt 3     //T0中斷用來計數(shù)器溢出,超過測距范圍
{
    over=1;        //中斷溢出標志
}
/*******************************************************/
void extern1Init(void)
{
IE1  = 0;             //將INT1中斷請求標志位清"0"
EX1 = 1;             //使能INT1中斷允許位
IT1 = 1;                   //選擇INT1為下降沿觸發(fā)方式
EA = 1;                     //允許總中斷
}


void Interrupt_exter1() interrupt 2
{
TR0=0;//進入外部中斷INT0后停止計時
t=(TH1*256+TL1);//計算定時器時間
t=(t*1.87)/100;
if(t>420||over==1)
{
  t=420;
  over=0;
}
TH1=TL1=0;//清除計時器,為下一次測距做準備
}
/*************************************************/

/***************************************主程序*******************/
#include<reg52.h>
#include"main.h"
#include"ultrasonic.h"
#include"smg.h"
void main(void)
{
unsigned char S;
Timer2Init();
Timer1Init();
extern1Init();
while(1)
{
  S = getdis();
  if(S>=4000) //超出測量范圍顯示“ERR0”
  {  
   disbuff[0]=0x3f;    //“-”
   disbuff[1]=0x50;    //“-”
   disbuff[2]=0x50;    //“-”
   disbuff[3]=0x79;    //“-”
  }
  else
  {
   disbuff[3]=DIG_CODE[S%10000/1000];
   disbuff[2]=DIG_CODE[S%1000/100];
   disbuff[1]=DIG_CODE[S%100/10];
   disbuff[0]=DIG_CODE[S%10/1];
  }
}
}

/*****************************************************/
void Timer2Init(void)
{
T2CON = 0X00;//實現(xiàn)16位自動重裝載定時、
RCAP2H = 0XF8;
RCAP2L = 0X30;
//PT2 = 1; //設置中斷優(yōu)先級為高
TH2=0xF8;//定時50ms
TL2=0X30; //定時器2的,寫入數(shù)值寄存器的低8位
ET2 = 1;//開定時器2中斷
EA=1; //總中斷打開
TR2 = 1;
}  
void Interrupt_time2() interrupt 5     //T0中斷用來計數(shù)器溢出,超過測距范圍
{
   DigDisplay();
}
/*******************************************************/


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

使用道具 舉報

沙發(fā)
ID:584814 發(fā)表于 2020-2-28 07:35 | 只看該作者
先調(diào)整數(shù)碼管可正常顯示,然后再調(diào)超聲波的程序。
回復

使用道具 舉報

板凳
ID:372579 發(fā)表于 2020-2-29 15:59 | 只看該作者
是不是數(shù)碼管沒弄好
回復

使用道具 舉報

地板
ID:93224 發(fā)表于 2020-2-29 17:13 | 只看該作者
你封裝的電路圖展示出來啊 一起分析
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区亚洲二区三区 | 久久精品久久综合 | 日韩电影中文字幕在线观看 | 国产欧美精品 | 女女百合av大片一区二区三区九县 | 欧美黑人激情 | 欧美不卡视频 | 色爱综合网 | 亚洲精品乱码久久久久久黑人 | 亚洲一区二区三区免费在线观看 | 久久出精品 | 欧美午夜影院 | 91人人澡人人爽 | 色黄网站 | 亚洲欧美综合精品久久成人 | 97伦理最新伦理 | 国产精品国产a | 国产一区二区三区 | 在线观看免费av网 | 综合网伊人 | 色综合99| 久久精品色欧美aⅴ一区二区 | 亚洲一区二区视频在线观看 | 久久99成人| 精品一区二区观看 | 黄色一级大片在线免费看产 | 玖玖精品| 在线欧美日韩 | 欧美日韩国产一区二区三区 | 一级黄色片网址 | 人人九九精 | 午夜欧美| www.日韩系列 | www.精品国产 | 欧美日韩一区二区视频在线观看 | 国产精品日本一区二区在线播放 | 成人av鲁丝片一区二区小说 | 国产精品一区二区视频 | 中文精品视频 | 国产精品久久毛片av大全日韩 | 不卡一区二区三区四区 |