导航:首页 > 编程语言 > 程序试验流程图

程序试验流程图

发布时间: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

友情链接