骨质硬化是什么意思| 区委副书记是什么级别| 筹钱是什么意思| 最不干净的动物是什么生肖| 大健康是什么| 什么是低钾血症| 上焦中焦下焦是什么| 发热是什么原因| 眼角有眼屎是什么原因| 刺梨是什么| 9月什么星座| 言外之意什么意思| 夏天喝什么茶最好| 小孩儿咳嗽有什么妙招| 间歇性跛行是什么意思| 赭色是什么颜色| 经血发黑是什么原因| 血清肌酐高说明什么问题| 印度讲什么语言| 转网是什么意思| 音召念什么| 醋泡脚有什么好处| 花开半夏什么意思| 蝎子吃什么东西| 出色的什么| 一什么大厦| 瑞夫泰格手表什么档次| 经期不能吃什么药| 本是同根生相煎何太急是什么意思| 夏至当天吃什么| 牛字五行属什么| 尖锐是什么意思| 芹菜炒什么配菜好吃| 六根不净是什么意思| 鼻塞用什么药| 爱情鸟是什么鸟| 英文为什么怎么写| 皮炎是什么症状| 妈妈的表哥叫什么| 符号是什么| 静脉曲张 看什么科| 立春之后是什么节气| 睾丸疼什么原因| 亚洲没有什么气候| 包饺子剩下的面团能做什么| 肋间神经痛吃什么药| 男性什么适合长期泡水喝| e m s是什么快递| 萎缩性胃炎可以吃什么水果| 三月27号是什么星座| 令人唏嘘是什么意思| 摸头是什么意思| 出阁宴是什么意思| 食管在什么位置图片| 一直不射精是什么原因| 相安无事什么意思| 痛风吃什么肉最好| ooxx是什么意思| 生酮是什么| 专台号是什么意思| 超脱是什么意思| 肝回声密集是什么意思| 心肌缺血有什么症状和表现| 女生的逼长什么样| 西瓜可以做什么饮料| 很困但是睡不着是什么原因| 一个鱼一个完读什么| hbv是什么| 益生菌是什么东西| 总胆汁酸高是什么原因| 什么是水马| 膀胱炎做什么检查能看出来| 圆脸适合什么眼镜| 牙齿为什么会变黑| 猫离家出走预示着什么| 费玉清为什么不结婚| 女人腰酸背痛是什么病| 西游记什么朝代写的| 生长激素分泌的高峰期是什么时候| 打完耳洞不能吃什么| 挖野菜是什么意思| 顶嘴是什么意思| 动物园里有什么游戏| 长期大便不成形是什么原因造成的| 6月19日是什么日子| 2010年是什么年| 肉桂是什么东西| 婴儿便便是绿色的是什么原因| s和m什么意思| 发霉是什么菌| 自来水养鱼为什么会死| 冲太岁什么意思| 莞尔一笑什么意思| 人活着是为了什么| 莱卡是什么面料| 吃素是什么意思| 舌头两边有齿痕是什么原因| 眼睛干痒用什么眼药水| 脂蛋白a是什么| 贵字五行属什么| bug是什么意思网络用语| 绿萝叶子发黄是什么原因| 夸奖的近义词是什么| 布五行属什么| 孕妇吃榴莲对胎儿有什么好处| 什么津津| 男人吃逍遥丸治什么病| 孟夏是什么意思| 女同学过生日送什么礼物比较好| 牙疼是什么原因导致的| 真丝香云纱是什么面料| 蛇字五行属什么| 一个厂一个人念什么| 什么是篮球基本功| 小囊肿是什么病严重吗| 黑布林是什么水果| 什么银行卡最好用| 十面埋伏是什么生肖| 火眼是什么症状| 二审是什么意思| 内心os是什么意思| 地笼捕河虾用什么诱饵| 白炽灯属于什么光源| 蟑螂喜欢什么样的环境| 什么蔬菜降血压效果最好| 什么是豆制品| 脾功能亢进是什么意思| 汉语拼音什么时候发明的| 河南人喜欢吃什么| 清晰是什么意思| 什么时期最容易怀孕| 身体燥热是什么原因| 房颤什么意思| 什么叫做罹患疾病| 怀孕脚浮肿是什么原因引起的| 大电念什么| 什么是gdp| 立刀旁的字和什么有关| 什么血型| 身上有红色的小红点是什么原因| 特斯拉是什么电池| 月亮五行属什么| 不什么其什么的成语| 6.13是什么星座| 肝肾两虚吃什么中成药| 什么的雷锋| 胃体息肉是什么意思| 梦见把老鼠打死是什么意思| bees是什么意思| 潮起潮落是什么意思| 梦见钱是什么预兆| icd是什么意思| 喝什么祛湿气效果最好| 大便是黑色的是什么原因| 玛尼是什么意思| 乳头湿疹用什么药| 阴囊湿疹用什么药膏效果最好| 落花雨你飘摇的美丽是什么歌| 离线缓存是什么意思| 97年的属什么生肖| 贫血喝什么口服液| 湿毒吃什么药最有效| 尿胆红素阳性是什么意思| 综合体是什么意思| 二是什么意思| 变性淀粉是什么| 姜为什么不能晚上吃| hpv是什么疫苗| 减肥期间吃什么最好| 前列腺在哪里男人的什么部位| 甲亢病是一种什么病| 制作人是干什么的| 福寿螺为什么不能吃| 再接再厉什么意思| 冷泡茶用什么茶叶| 什么是动态口令| 唯有读书高的前一句是什么| 8月7日是什么星座| 检查阑尾炎挂什么科| 鸭胗是什么器官| 发烧喉咙痛吃什么药好| 孕期吃什么长胎不长肉| 印第安老斑鸠什么意思| 红细胞体积偏高是什么意思| 发烧42度是什么概念| 动卧是什么意思| 人头马是什么酒| 蟋蟀是靠什么发声的| 尿酸高是什么原因造成的| 蜂胶有什么作用和功效| 透明的什么| 破相是什么意思| 梦见老公回来了是什么征兆| 嗓子痛吃什么好| 吃什么补气虚| 梦见网鱼是什么征兆| 小丑叫什么| 本体是什么意思| 什么是变态| 祛是什么意思| 赊账是什么意思| 圣女果是什么水果| 滞气是什么意思| 万里长城是什么生肖| 为什么新疆人长得像外国人| 女性盆腔炎吃什么药| hpv什么病毒| 皇家礼炮是什么酒| 什么叫心脏早搏| 观音菩萨什么生肖| 大男子主义什么意思| 摇粒绒是什么面料| MP是什么| 大林木命忌讳什么颜色| g18k是什么金| 1945年是什么年| 一岁宝宝口臭是什么原因引起的| 治阴虱去药店买什么药| 地球为什么自转| 手术后吃什么最有营养| 预约转账什么时候到账| 宫颈多发纳氏囊肿是什么意思| 榴莲皮有什么功效| 偏左偏右是什么意思| 宫颈筛查是检查什么| 清浅是什么意思| 五十年婚姻是什么婚| 戴字五行属什么| 头疼挂什么科| 无可奈何的笑是什么笑| 鸡蛋可以炒什么菜| 耳道炎是什么原因引起的| 炎黄子孙是什么生肖| 攻心翻是什么病| 蜜蜡属于什么五行属性| 子加一笔是什么字| 梦见过年是什么意思| 白痰多是什么原因造成的| 什么人不能吃苦瓜| 唏嘘什么意思| 堤防是什么意思| 吃什么补血小板效果最好| 农历4月14日是什么星座| 仄怎么读什么意思| 胎儿左心室强光斑是什么意思| 经常打飞机有什么危害| 补气血吃什么最好最快| 麦粒肿吃什么消炎药| 什么是活性叶酸| 择期什么意思| 谭咏麟为什么叫校长| 吃叶酸有什么副作用| 一什么机枪| 适当是什么意思| 秋天有什么花开| 过期牛奶有什么用途| 常流鼻血是什么原因| 乘务长是干什么的| 人流后吃什么好| 米粉和米线有什么区别| 在眼皮老跳是什么征兆| 跑步后脸红是什么原因| 呼吸内科主要看什么病| 剪发虫是什么| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 企业专区 ? TI ? 最终课程设计——温度报警与显示

共1条 1/1 1 跳转至

最终课程设计——温度报警与显示

助工
2025-08-04 22:05:54     打赏
百度 事件最后以平台方面补给胡女士优惠券告终。

微信图片_20240715221024.jpg通过课程的学习,完成了前期的数码管的驱动以及DS18B20的通信,最终的设计就是在课程的基础上编写了一个简单的逻辑,加上了对温度的判断和蜂鸣器的开关。

以下的部分主要代码:

DS18B20代码:

#include "ti_msp_dl_config.h"
#include "bsp18B20.h"
#include "bspRGB.h"


#define DS18B20_DQ_OUTH DL_GPIO_setPins(GPIOA_HC595_PORT, GPIOA_HC595_DS18B20_DQ_PIN)
#define DS18B20_DQ_OUTL DL_GPIO_clearPins(GPIOA_HC595_PORT, GPIOA_HC595_DS18B20_DQ_PIN)
#define DS18B20_DQ_READ DL_GPIO_readPins(GPIOA_HC595_PORT, GPIOA_HC595_DS18B20_DQ_PIN)

#define DS18B20_DQ_IN DL_GPIO_initDigitalInput(GPIOA_HC595_DS18B20_DQ_IOMUX);DL_GPIO_disableOutput(GPIOA_HC595_PORT, GPIOA_HC595_DS18B20_DQ_PIN)
#define DS18B20_DQ_OUT DL_GPIO_initDigitalOutput(GPIOA_HC595_DS18B20_DQ_IOMUX);DL_GPIO_enableOutput(GPIOA_HC595_PORT, GPIOA_HC595_DS18B20_DQ_PIN)



#define delay_us_cycle   32

/* 延时函数 */
void inline delay_us(uint16_t us)
{
    do{
        delay_cycles(delay_us_cycle);
    }while (us --);
}

/* 复位芯片 */
static void DS18B20_Rst(void)
{
    DS18B20_DQ_OUT;
    DS18B20_DQ_OUTL;    /* 拉低DQ,复位 */
    delay_us(750);      /* 拉低750us */
    DS18B20_DQ_OUTH;    /* DQ=1, 释放复位 */
    delay_us(15);       /* 延迟15US */
}
/* 检查总线上是否存在温度芯片 */
uint8_t DS18B20_Check(void)
{
  uint8_t retry = 0;
  DS18B20_DQ_IN;
  while (DS18B20_DQ_READ && retry < 200)
  {
    retry++;
    delay_us(1);
  };
  if (retry >= 200)
    return 1;
  else
    retry = 0;
  while (!DS18B20_DQ_READ && retry < 240)
  {
    retry++;
    delay_us(1);
  };
  if (retry >= 240)
    return 1;
  return 0;
}
/* 芯片初始化 */
uint8_t DS18B20_Init(void)
{
  DS18B20_Rst();
  return DS18B20_Check();
}
/* 读取单bit数据 */
uint8_t DS18B20_Read_Bit(void) // read one bit
{
  DS18B20_DQ_OUT;
  uint8_t data;
  DS18B20_DQ_OUTL;
  delay_cycles(2 * 32);
  DS18B20_DQ_OUTH;
  delay_cycles(12 * 32);
  DS18B20_DQ_IN;
  if (DS18B20_DQ_READ)
    data = 1;
  else
    data = 0;
  delay_cycles(50 * 32);
  return data;
}
/* 读取一字节数据 */
uint8_t DS18B20_Read_Byte(void) // read one byte
{
  uint8_t i, j, dat;
  dat = 0;
  for (i = 1; i <= 8; i++)
  {
    j = DS18B20_Read_Bit();
    dat = (j << 7) | (dat >> 1);
  }
  return dat;
}
/* 写入一字节数据 */
void DS18B20_Write_Byte(uint8_t dat)
{
  uint8_t j;
  uint8_t testb;
  DS18B20_DQ_OUT;
  for (j = 1; j <= 8; j++)
  {
    testb = dat & 0x01;
    dat = dat >> 1;
    if (testb)
    {
      DS18B20_DQ_OUTL; // Write 1
    //   delay_cycles(2 * 32);
      delay_us(2);
      DS18B20_DQ_OUTH;
    //   delay_cycles(60 * 32);
      delay_us(60);
    }
    else
    {
      DS18B20_DQ_OUTL; // Write 0
    //   delay_cycles(60 * 32);
      delay_us(60);
      DS18B20_DQ_OUTH;
    //   delay_cycles(2 * 32);
      delay_us(12);
    }
  }
}
/* 启动芯片 */
void DS18B20_Start(void) // ds1820 start convert
{
  DS18B20_Rst();
  DS18B20_Check();
  DS18B20_Write_Byte(0xcc); // skip rom
  DS18B20_Write_Byte(0x44); // convert
}

float DS18B20_Get_Temp(void)
{
  uint8_t temp;
  uint8_t TL, TH;
  int16_t tem;
  float fValue = 0.0;
  DS18B20_Start(); // ds1820 start convert
  DS18B20_Rst();
  DS18B20_Check();
  DS18B20_Write_Byte(0xcc); // skip rom
  DS18B20_Write_Byte(0xbe); // convert
  TL = DS18B20_Read_Byte(); // LSB
  TH = DS18B20_Read_Byte(); // MSB

  if (TH > 7)
  {
    TH = ~TH;
    TL = ~TL;
    temp = 0; // 温度为负
  }
  else
    temp = 1; // 温度为正
  tem = TH;   // 获得高八位
  tem <<= 8;
  tem += TL;                // 获得底八位
  fValue = (float)tem * 0.0625; // 转换
  if (temp)
    return fValue; // 返回温度值
  else
    return -fValue;
}
数码管的显示与报警的判断:
#include "ti_msp_dl_config.h"
#include "bspRGB.h"
#include "bsp18B20.h"


#if 0
void RgbFlowLED(void)
{
    RGB_BLUE;
    DELAY;
    RGB_GREEN;
    DELAY;
    RGB_RED;
    DELAY;
}
#endif


uint16_t tempval =0 ;
uint8_t TimerCnt = 0 ;

unsigned char Disp_DX[16] ={ 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x8C, 0xBF, 0xC6, 0xA1, 0x86, 0xFF };
unsigned char Disp_PX[8] = {1,2,3,4,5,6,7,8};

#define HC595_DAT(x) ((x)?(DL_GPIO_setPins(GPIOA_HC595_PORT,GPIOA_HC595_HC595_DAT_PIN)) : (DL_GPIO_clearPins(GPIOA_HC595_PORT,GPIOA_HC595_HC595_DAT_PIN)))
#define HC595_CLK(x) ((x)?(DL_GPIO_setPins(GPIOA_HC595_PORT,GPIOA_HC595_HC595_SLK_PIN)) : (DL_GPIO_clearPins(GPIOA_HC595_PORT,GPIOA_HC595_HC595_SLK_PIN)))
#define HC595_RCK(x) ((x)?(DL_GPIO_setPins(GPIOA_HC595_PORT,GPIOA_HC595_HC595_RLK_PIN)) : (DL_GPIO_clearPins(GPIOA_HC595_PORT,GPIOA_HC595_HC595_RLK_PIN)))

#define BeepON  DL_GPIO_clearPins(GPIOA_HC595_PORT, GPIOA_HC595_GPIO_BEEP_PIN);
#define BeepOFF DL_GPIO_setPins(GPIOA_HC595_PORT, GPIOA_HC595_GPIO_BEEP_PIN);



void Display_0ut()
{
HC595_RCK(0);
delay_cycles(32);
HC595_RCK(1);
delay_cycles(32);
}

void HC595_WriteData(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(data & 0x80)
{
HC595_DAT(1);
}
else
{
HC595_DAT(0);
}
data <<= 1;
HC595_CLK(0);
delay_cycles(32);
HC595_CLK(1);
delay_cycles(32);
}
}

void HC595_Send_Data(uint8_t dis_num,uint8_t dis_bit)

{
HC595_WriteData(dis_num);
HC595_WriteData(1<<dis_bit);
Display_0ut();

}


void Disp_Data(uint16_t u16DataH)
{
    uint16_t templ,tempH;
    uint8_t num_q,num_b,num_s,num_g;

    tempH = u16DataH;
    num_q = tempH/1000;
    num_b = tempH/100%10;
    num_s = tempH/10%10;
    num_g = tempH%10;
    HC595_Send_Data(Disp_DX[num_q],7);
    HC595_Send_Data(Disp_DX[num_b],6);
    HC595_Send_Data(Disp_DX[num_s],5);
    HC595_Send_Data(Disp_DX[num_g],4);
}

void TIMER_0_INST_IRQHandler(void)
{
switch(DL_TimerG_getPendingInterrupt(TIMER_0_INST))

    {

    case DL_TIMER_IIDX_ZERO:

        TimerCnt++;

        if(TimerCnt >=100)

        {

            TimerCnt=0;
            tempval = DS18B20_Get_Temp();//温度数据一秒读取一次

            if(tempval > 30)
            {
            BeepON;
            }
            else
            {
            BeepOFF;
            }

        }

        break;

    default:

        break;
    }
}
主函数:
#include <ti/driverlib/m0p/dl_interrupt.h>
#include "ti_msp_dl_config.h"
#include "bspRGB.h"

extern uint16_t tempval;

int main(void)
{
    SYSCFG_DL_init();
    NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);

    while (1)
    {

    Disp_Data(456);
    }
}





关键词: 课程设计    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
下肢血液循环不好吃什么药 牛加一笔是什么字 吃什么水果对肺好 985211大学是什么意思 甲状腺是由什么引起的
重庆为什么叫重庆 儿童荨麻疹吃什么药 胆囊手术后不能吃什么 鼻涕带血是什么原因 任性什么意思
6月28是什么星座 睡觉空调开什么模式 化疗为什么要剃光头 痰湿体质吃什么中成药 病毒性扁桃体发炎吃什么药
脸上长黑痣是什么原因 清华大学校长什么级别 肠胃不好吃什么药好 阿玛尼是什么意思 葫芦挂在家里什么位置好
男人艾灸什么地方壮阳hcv9jop0ns5r.cn 身不由己是什么生肖hcv9jop6ns2r.cn 黑曜石是什么材质hcv9jop1ns2r.cn 手关节痛是什么原因hcv7jop9ns0r.cn 肠粘连是什么原因引起hcv8jop9ns4r.cn
和田玉对身体有什么好处hcv9jop3ns5r.cn 滚床单什么意思hcv8jop6ns6r.cn mj是什么意思hcv8jop2ns4r.cn 帝陀表什么档次hcv8jop2ns9r.cn 六月是什么星座的hcv8jop4ns3r.cn
肝郁气滞吃什么药mmeoe.com 左边头疼是什么原因怎么办hcv7jop6ns0r.cn 排骨汤什么时候放盐最好hcv8jop0ns1r.cn npv是什么意思hcv9jop7ns0r.cn 青霉素v钾片治什么病hcv9jop4ns5r.cn
爱豆什么意思qingzhougame.com 后顶焦度是什么意思hcv8jop2ns0r.cn 扁平疣用什么药膏除根hcv9jop2ns8r.cn 甘蓝是什么hcv9jop2ns5r.cn 一个月一个寸读什么hcv8jop6ns8r.cn
百度