77范文网 - 专业文章范例文档资料分享平台

传感器与检测技术课程设计报告 - 图文(3)

来源:网络收集 时间:2019-04-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

{ }

while(n) {

_nop_(); n--; }

/*------------------------------------------- 函数名:ad_conv_tlc549( )

功 能:AD转换芯片TLC549的实现程序 --------------------------------------------*/ unsigned char ad_conv_tlc549() {

unsigned char i;

unsigned char tmp_data = 0; TLC549_CS = 1; //此时DATA OUT 接口处于高阻态,此时I/O CLK不起作用 _nop_();

TLC549_CLK = 0;

_nop_();

TLC549_CS = 0; //等待两个内部时钟上升沿和一个下降沿,单片机确认这一变化,

然后自动将前一次转换结果

_nop_(); //的最高位(D7)位输出到DATAOUT

}

_nop_();

for (i = 0;i < 8;i++) {

}

TLC549_CLK = 1;

tmp_data = (tmp_data << 1) | TLC549_DATAOUT; TLC549_CLK = 0;

TLC549_CS = 1; delay_us(17); return tmp_data;

/*------------------------------------------ 主函数

--------------------------------------------*/ float main_1() { float v; while(1) {

11

v=ad_conv_tlc549()*1.0/256.0*5.0;

v=30*log10(v+1)+0.4; delay_us(200); return v; } }

/*========================================================= 1602液晶显示的实验例子

------------------------------------------------- | DB4-----P0.4 | RW-------P2.1 | DB5-----P0.5 | RS-------P2.2 | DB6-----P0.6 | E--------P2.0 | DB7-----P0.7 |

--------------------------------------------------- =========================================================*/ #include #include\噪声测量.h\#define LCM_RW P2_1 //定义引脚 #define LCM_RS #define LCM_E

P2_2 P2_0

#define LCM_Data P0 #define Busy 0x80 //用于检测LCM状态字中的Busy标识 code uint8 a[]={\无法忍受 b[]={\感到疼痛; c[]={\很吵; d[]={\较静 e[]={\安静

f[]={\极静 g[]={\无声

h[]={\无法检测

/*------------------------------------------ 子函数声明

------------------------------------------*/ void Write_Data_LCM(unsigned char WDLCM);

void Write_Command_LCM(unsigned char WCLCM,BuysC); void Read_Status_LCM(void); void LCM_Init(void);

void Set_xy_LCM(unsigned char x, unsigned char y);

void Display_List_Char(unsigned char x, unsigned char y, unsigned char *s);

12

/*===================================== 函数名:Read_Status_LCM() 功 能: 忙检测函数

======================================*/ void Read_Status_LCM(void) {

unsigned char read=0; LCM_RW = 1; LCM_RS = 0; LCM_E = 1; LCM_Data = 0xff; do {

read = LCM_Data;

}

while(read & Busy);

LCM_E = 0;

}

/*------------------------------------------- 函数名:Write_Data_LCM ( ) 功 能: 对LCD 1602写数据

--------------------------------------------*/ void Write_Data_LCM(unsigned char WDLCM) {

Read_Status_LCM(); //检测忙

LCM_RS = 1; LCM_RW = 0;

LCM_Data &= 0x0f;

LCM_Data |= WDLCM&0xf0;

LCM_E = 1; //若晶振速度太高可以在这后加小的延时 LCM_E = 1; //延时 LCM_E = 0;

WDLCM = WDLCM<<4; LCM_Data &= 0x0f; LCM_Data |= WDLCM&0xf0; LCM_E = 1; LCM_E = 1; //延时 LCM_E = 0; }

13

/*-------------------------------------------

函数名:Write_Command_ LCM ( ) 功 能: 对LCD 1602写指令

--------------------------------------------*/

void Write_Command_LCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测 {

if (BuysC)

Read_Status_LCM(); //根据需要检测忙

LCM_RS = 0; LCM_RW = 0;

LCM_Data &= 0x0f;

LCM_Data |= WCLCM&0xf0;//传输高四位 LCM_E = 1; LCM_E = 1;

LCM_E = 0;

WCLCM = WCLCM<<4; //传输低四位 LCM_Data &= 0x0f;

LCM_Data |= WCLCM&0xf0; LCM_E = 1; LCM_E = 1; LCM_E = 0; }

/*------------------------------------------- 函数名:LCM_Init()

功 能: 对LCD 1602初始化

--------------------------------------------*/ void LCM_Init(void) //LCM初始化 {

LCM_Data = 0;

Write_Command_LCM(0x28,0); //三次显示模式设置,不检测忙信号 delay_nms(15);

Write_Command_LCM(0x28,0); delay_nms(15);

Write_Command_LCM(0x28,0);

delay_nms(15); Write_Command_LCM(0x28,1); //显示模式设置,开始要求每次检测忙信号 Write_Command_LCM(0x08,1); //关闭显示 Write_Command_LCM(0x01,1); //显示清屏

Write_Command_LCM(0x06,1); //显示光标移动设置 Write_Command_LCM(0x0C,1); //显示开及光标设置 }

14

/*------------------------------------------- 函数名:Set_xy_LCM () 功 能:设定显示坐标位置

--------------------------------------------*/ void Set_xy_LCM(unsigned char x, unsigned char y) {

unsigned char address; if( x == 0 )

address = 0x80+y; else

address = 0xc0+y;

Write_Command_LCM(address,1);

}

/*------------------------------------------- 函数名:Display_List_Char()

功 能:按指定位置显示一串字符

--------------------------------------------*/

void Display_List_Char(unsigned char x, unsigned char y, unsigned char *s) {

Set_xy_LCM(x,y); while(*s)

{

LCM_Data = *s;

Write_Data_LCM(*s); s++; } }

/*------------------------------------------- 函数名:dB()

功 能:显示dB程序

--------------------------------------------*/ void dB() { }

Write_Command_LCM(0x06,1); Write_Command_LCM(0xCe,1); Write_Data_LCM('d'); Write_Data_LCM('B');

/*------------------------------------------- 函数名:wrrite()

功 能:清空显示程序

--------------------------------------------*/ void wrrite()

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库传感器与检测技术课程设计报告 - 图文(3)在线全文阅读。

传感器与检测技术课程设计报告 - 图文(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/615059.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: