導航:首頁 > 編程語言 > 程序試驗流程圖

程序試驗流程圖

發布時間:2023-06-14 02:59:07

1. 用visio繪制邏輯電路圖和流程圖

安office 2003 的Visio
一基本電氣圖:
在 Visio Professional 中,「基本電氣」模板和形狀位於「電氣工程」文件夾中。
使用它們的人士和方式
電氣工程師:表達示意圖和布線。
機械工程師:創建基本電氣圖,例如單線圖。
電信工程師:共享組件設計和服務設計構思。
二電路和邏輯電路圖
在 Visio Professional 中,「電路和邏輯」模板和形狀位於「電氣工程」文件夾中。
使用它們的人士和方式
電氣工程師:設計電路板並解決電路板問題。
電信工程師:確保高效率的傳輸路徑。
電氣工程師:比較電路板設計並查看路徑的終止位置。
三工業控制系統圖表
在 Visio Professional 中,「工業控制系統」模板和形狀位於「電氣工程」文件夾中。
使用它們的人士和方式
控制工程師:設計復雜的工業控制組件和系統。
生產工程師:設計裝配線。
電氣工程師:估計電力系統的最大輸出瓦特數
四系統圖
在 Visio Professional 中,「系統」模板和形狀位於「電氣工程」文件夾中。
要使用它們的人士和方式
電氣工程師:設計公共設施的基礎設施。
機械工程師:試驗並確定電氣設備最高效的傳輸路徑。
系統維修人員:以直觀的方式記錄維修情況。

2. 求個溫度採集的流程圖

寫好初始化、讀位元組、寫位元組、讀取溫度、溫度值轉換子程序
然後開機初始化DS18B20,需要時調用讀取溫度子程序即可
注意DS18B20的讀寫時序,延時時間,上拉電阻阻值,工作電壓。
否則無法工作、精度極低或顯示85.0℃
————————————————————————————
使用DS18B20的注意事項
(1)DS18B20從測溫結束到將溫度值轉換成數字量需要一定的轉換時間,這是必須保證的,不然會導致轉換錯誤,使溫度輸出總是顯示85℃。
(2)在實際使用中發現,應使電源電壓保持在5V左右,若電源電壓過低,會使所測得的溫度與實際溫度出現偏高現象,經過試驗發現,一般在5V左右。
(3)較小的硬體開銷需要相對復雜的軟體進行補償,由於DS18B20與單片機間採用串列方式傳送數據,因此,在對DS18B20進行讀寫編程時,必須嚴格保證讀寫時序,否則將無法讀取測溫結果。
(4)在DS18B20測溫程序設計中,向DS18B20發出溫度轉換命令後,程序總要等待DS18B20的返回信號,一旦DS18B20接觸不好或斷線,當程序讀該DS18B20時,將沒有返回信號,程序進入死循環,這一點在進行DS18B20硬體連接和軟體設計時也要給予一定的重視。

可用的例子程序,用於51系列12M,需要用到時包含這個驅動即可
temp就是溫度值浮點數數值
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//這是一個溫度採集模塊的驅動程序。
/*
|----|
| DS | DS18B20管腳排列
+----+
| | |
| | |
| | |----------Vdd
| |------------DQ-->P1.0
|---------------GND
*/
#ifndef _DS18B20_h
#include "stdio.h"
#include "reg52.h"
#include "intrins.h"
#include <delay.h>

//外部函數
//--------------delay.c--------------------
extern void delay_nus(unsigned int delay_time); //延時子程序
//----------------------------------------

//------------DS18B20控制命令-----------------------------
#define T_CONVER 0x44 //開始溫度轉換
#define T_CONFIG 0x5f //11位轉換
#define T_READ 0xbe //讀暫存器
#define T_WRITE 0x4e //寫暫存器
#define T_ROM_JMP 0xcc //忽略64ROM地址
#define T_COPY_E2 0x48 //將溫度上下限數值寫到E2ROM
#define T_RECALL_E2 0xb8 //將E2中存儲的溫度上下限數值復制到上下限寄存器中。
#define T_cont 0.0625 //溫度轉換常數
//------------------------------------------------------
sbit DQ=P1^0; //DS18B20數據輸出端
sbit LED=P1^5; //LED
bit REC_suc=0; //DS18B20成功復位標志位
bit T_sign; //溫度正負符號
float temp=0; //轉換好的溫度數值
signed char temp_TH=25,temp_TL=10; //溫度上下限
unsigned char t_,t_shi,t_ge,t_feng; //溫度轉換好的各個位
void DS18B20_init(); //DS18B20初始化函數
void DS18B20_send(unsigned char in_data); //DS18B20發送一個位元組數據函數
unsigned char DS18B20_read(); //從DS18B20讀取一個位元組函數
void ReadTemperature(); //讀取溫度數值
void temp_data_turn(float in_data); //溫度轉換
//--------------------------------------------------------

/****************************DS18B20初始化函數**************************/
/*函數原型:void DS18B20_init()
/*函數功能:DS18B20初始化
/*輸入參數:無
/*輸出參數:無
/*調用模塊:delay()
/*建立時間:2005/11/14
/*作者:丁霄
/**********************************************************************/
void DS18B20_init()
{
unsigned char i=1;
DQ=0;
DQ=1;
delay_nus(20); //延時227us
while(REC_suc==0)
{
DQ=0;
delay_nus(45); //延時502us
DQ=1;
delay_nus(3); //等待DS18B20作出相應 延時40us
while(1)
{ i=DQ;
if(i==0)
{
REC_suc=1;
delay_nus(20); //延時227us
break;
}
}
}
REC_suc=0;
}

/****************************DS18B20發送函數**************************/
/*函數原型:void DS18B20_send(unsigned char in_data)
/*函數功能:DS18B20發送數據
/*輸入參數:要發送的數據
/*輸出參數:無
/*調用模塊:_cror_()
/*建立時間:2005/11/14
/*作者:丁霄
/**********************************************************************/
void DS18B20_send(unsigned char in_data)
{
unsigned char i,out_data,k;
out_data=in_data;
for(i=1;i<9;i++) //串列發送數據
{
DQ=0;
DQ=1;
_nop_();
_nop_();
k=out_data&0x01;
if(k==0x01) //判斷數據 寫1
{
DQ=1;
}
else //寫0
{
DQ=0;
}
delay_nus(5); //延時62us
DQ=1;
out_data=_cror_(out_data,1); //循環左移1位
}
}

/**************************DS18B20讀函數**************************/
/*函數原型:void DS18B20_read()
/*函數功能:DS18B20讀數據
/*輸入參數:無
/*輸出參數:讀到的一位元組內容
/*調用模塊:delay()
/*建立時間:2005/11/14
/*作者:丁霄
/******************************************************************/
unsigned char DS18B20_read()
{
unsigned char i,in_data,k;
in_data=0;
for(i=1;i<9;i++) //串列發送數據
{
DQ=0;
DQ=1;
_nop_();
_nop_();
k=DQ; //讀DQ端
if(k==1) //讀到的數據是1
{
in_data=in_data|0x01;
}
else
{
in_data=in_data|0x00;
}
delay_nus(4); //延時51us
DQ=1;
in_data=_cror_(in_data,1); //循環左移1位
}
return(in_data);
}

/**************************DS18B20讀取溫度函數**************************/
/*函數原型:void ReadTemperature()
/*函數功能:DS18B20讀取溫度轉換好的數據
/*輸入參數:無
/*輸出參數:無
/*調用模塊:DS18B20_send(),DS18B20_send(),DS18B20_init(),DS18B20_send(),DS18B20_send(),
T_L=DS18B20_read(),T_H=DS18B20_read()
/*建立時間:2005/11/15
/*作者:丁霄
/******************************************************************/
void ReadTemperature()
{
unsigned char T_L=0;
unsigned char T_H=0;
unsigned char k;
DS18B20_init();
DS18B20_send(T_ROM_JMP); // 跳過讀序號列號的操作
DS18B20_send(T_CONVER); // 啟動溫度轉換
DS18B20_init();
DS18B20_send(T_ROM_JMP); //跳過讀序號列號的操作
DS18B20_send(T_READ); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度

T_L=DS18B20_read();
T_H=DS18B20_read();

k=T_H&0xf8;
if(k==0xf8)
T_sign=1; //溫度是負數
else
T_sign=0; //溫度是正數

T_H=T_H&0x07;
temp=(T_H*256+T_L)*T_cont;
}

/**************************DS18B20溫度轉換函數**************************/
/*函數原型:void temp_data_turn(float in_data)
/*函數功能:DS18B20讀取溫度轉換
/*輸入參數:無
/*輸出參數:無
/*調用模塊:無
/*建立時間:2005/11/16
/*作者:丁霄
/******************************************************************/
void temp_data_turn(float in_data)
{
unsigned int y;
in_data=in_data*10; //數值擴大10倍,精度到0.1
t_=in_data/1000;
y=(unsigned int)in_data%1000;
t_shi=y/100;
y=y%100;
t_ge=y/10;
t_feng=y%10;
}

閱讀全文

與程序試驗流程圖相關的資料

熱點內容
dede工具 瀏覽:507
5g網盟app怎麼下載 瀏覽:486
微信備份老是連接中斷 瀏覽:886
出台多少份文件 瀏覽:380
鞋子怎麼搭配衣服的app 瀏覽:755
文件名使用的通配符的符號是什麼 瀏覽:916
lol分卷文件損壞怎麼辦 瀏覽:276
6分管車螺紋怎麼編程 瀏覽:732
海口農商銀行信用卡app是什麼 瀏覽:770
win10任務欄文件夾我的電腦 瀏覽:14
安卓nba2k18 瀏覽:776
文件夾密碼怎麼修改密碼 瀏覽:271
蘋果數據中心用什麼伺服器 瀏覽:769
省內圓通快遞寄文件夾需要多少錢 瀏覽:740
iphone程序加密 瀏覽:884
win10文件夾調整文件行高 瀏覽:681
創意手繪教程 瀏覽:754
微信刪除帳號信息 瀏覽:596
mysql操作類文件 瀏覽:649
繞過xp密碼 瀏覽:158

友情鏈接