|
*本文及代碼參閱彭偉《單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例》
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (673.37 KB, 下載次數(shù): 46)
下載附件
2020-7-6 12:50 上傳
圖1
二,調(diào)整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
2.png (236.05 KB, 下載次數(shù): 51)
下載附件
2020-7-6 12:50 上傳
圖2
3.png (256.85 KB, 下載次數(shù): 39)
下載附件
2020-7-6 12:50 上傳
圖3
4.png (268.73 KB, 下載次數(shù): 62)
下載附件
2020-7-6 12:50 上傳
圖4
三,點(diǎn)擊Source Code標(biāo)簽。(如下圖5所示)
5.png (170.75 KB, 下載次數(shù): 53)
下載附件
2020-7-6 12:50 上傳
圖5
四,編輯main.c Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a19_DS18B20_LCD1602 (如下圖6所示)
6.png (175.44 KB, 下載次數(shù): 47)
下載附件
2020-7-6 12:50 上傳
圖6
五,Main.c 代碼:
//-----------------------------------------------------------------
// 名稱: DS18B20溫度傳感器測試
//-----------------------------------------------------------------
// 說明: 運(yùn)行本例時(shí),外界溫度將顯示在1602LCD上.
// 調(diào)節(jié)DS18B20時(shí),所模擬的外界溫度值將刷新顯示在液晶顯示屏上,
// 包括正負(fù)溫度及小數(shù)位.
//
//-----------------------------------------------------------------
#include "lcd1602.h"
#include "ds18B20.h"
extern INT8U DS18B20_ERROR;
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
DDRB= 0x00; PORTB= 0x00;
DDRC= 0xFF;
DDRD= 0xFF;
Initialize_LCD();
LCD_ShowString(0, 0, "DS18B20 Test PRG", 16);
LCD_ShowString(0, 1, " Wait... ", 16);
Read_Temperature();
_delay_ms(1000);
LCD_ShowString(0, 1, " ", 16);
while(1) {
Read_Temperature();
if(!DS18B20_ERROR) {
Temperature_Convert();
Disp_Temperature();
_delay_ms(100);
}
}
}
Myfunc01.h
//******************************************************************************************
#ifndef _DS18B20_H_
#define _DS18B20_H_
#include "lcd1602.h"
//DS18B20引腳定義
#define DQ PB3
//設(shè)置數(shù)據(jù)方向
#define DQ_DDR_0() DDRB &= ~_BV(DQ)
#define DQ_DDR_1() DDRB |= _BV(DQ)
//溫度管引腳操作定義
#define DQ_1() PORTB |= _BV(DQ)
#define DQ_0() PORTB &= ~_BV(DQ)
#define RD_DQ_VAL() (PINB & _BV(DQ)) //注意保留這一行的括號(hào)
//溫度小數(shù)位對照表
//如果不使用此表,也可以使用本例后面代碼中提供的小數(shù)位計(jì)算程序.
static INT8U df_Table[]= {0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};
//-----------------------------------------------------------------
// 初始化DS18B20
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// 顯示溫度信息
//-----------------------------------------------------------------
//void Disp_Temperature();
INT8U Init_DS18B20();
INT8U ReadOneByte();
void WriteOneByte(INT8U dat);
void Read_Temperature();
void Temperature_Convert();
#endif
六,點(diǎn)擊構(gòu)建工程按鈕,編譯工程。(如下圖7所示)
7.png (206.34 KB, 下載次數(shù): 53)
下載附件
2020-7-6 12:50 上傳
圖7
七,點(diǎn)擊窗口左下方仿真按鈕,可見虛擬溫度在虛擬LCD顯示屏顯示。 (如下圖8,9,10所示)
8.png (280.33 KB, 下載次數(shù): 53)
下載附件
2020-7-6 12:50 上傳
圖8
9.png (278.74 KB, 下載次數(shù): 52)
下載附件
2020-7-6 12:50 上傳
圖9
10.png (281.71 KB, 下載次數(shù): 67)
下載附件
2020-7-6 12:50 上傳
圖10
八,選擇release,點(diǎn)擊構(gòu)建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
11.png (216.23 KB, 下載次數(shù): 47)
下載附件
2020-7-6 12:50 上傳
圖11
附件Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a19_DS18B20_LCD1602在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
需要進(jìn)一步了解,請加入QQ群:976235464
|
-
-
a19_DS18B20_02pt.rar
2020-7-6 12:52 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
141.2 KB, 下載次數(shù): 36, 下載積分: 黑幣 -5
在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
評(píng)分
-
查看全部評(píng)分
|