无线传感实验一
更新时间:2023-11-03 14:59:01 阅读量: 综合文库 文档下载
实验七 EL-IOT-II实验箱采集节点DS18B20实验
班级:网工13101 姓名:徐香奇 学号:201317030126
一、实验目的
1、掌握DS18B20的时序。 2、掌握7279的操作时序。 二、实验内容
编写一个程序,通过7279驱动数码管显示采集到的温度值。 三、实验设备
计算机、EL-IOT-II实验箱、仿真器、USB线(一头方的一头扁的)。 四、实验原理
7279的时序类似SPI,根据时序图用GPIO来模拟7279时序,从而显示采集到的温度值。 五、实验步骤
1、将实验箱上的跳线帽JP7短接在右边;
2、将仿真器连接到实验箱的JTAG2接口上,给实验箱上电; 3、在计算机上打开Keil uVision4环境,并打开实验程序\\EL-IOT-II实验箱程序\\LM3S811程序\\DS18B20\\DS18B20. Uvproj,编译、下载程序;
4、按下复位键(REST2)观察数码管上显示的温度值,若显示不正确请给实验箱重新上电; 5、用手摸住DS18B20,观察数码管上显示的温度值的变化。 六、思考题
1、如何控制DS18B20的时序? 答:修改使用如下函数控制时序
void delay(unsigned int t) { }
void short_delay(void) { }
void long_delay(void) { }
SysCtlDelay(20*(SysCtlClockGet( ) / 3000)/1000);
//
延时大约15us
//
短延时,用于控制时钟
SysCtlDelay(15*(SysCtlClockGet( ) / 3000)/1000);
//
延时大约10us
//
短延时,用于控制时钟
//
延时函数
SysCtlDelay(t*(SysCtlClockGet( ) / 3000)/1000);
实验八 EL-IOT-II实验箱采集节点7279实验
班级:网工13101 姓名:徐香奇 学号:201317030126
一、实验目的
1、学习GPIO使用及其相关的API函数。
2、学会对HD7279的操作及编程,并体会这种控制芯片的优势。 二、实验内容
编程使用Cortex-M3的GPIO向HD7279中写入控制命令、显示数据和读按键值等,实现键值的显示。
三、实验设备
计算机、EL-IOT-II实验箱、仿真器、USB线(一头方的一头扁的)。 四、实验原理
配置GPIO,模拟出符合HD7279的总线时序,从而向HD7279中写入控制命令、显示数据和读取按键值等。使能GPIO中断,并将HD7279的中断信号引致该中断,有按键按下即会产生中断。 五、实验步骤
1、将仿真器连接到实验箱的JTAG2接口上,给实验箱上电; 3、在计算机上打开Keil uVision4环境,并打开实验程序\\EL-IOT-II实验箱程序\\LM3S811程序\\HD7279\\HD7279 .Uvproj,编译、下载程序; 4、按下复位键(REST2),然后按下不同的按键,观察数码管显示的数据是否与键盘一一对应。 六、思考题?
1、如何控制7279? /* 接线:
1、用导线将MCU的IO1----IO3、INT0分别连接到HD7279的7279_CS、7279_CLK、7279_DATA、7279_KEY,
跳线帽JP1--JP3、JP10短接在左侧。。
2、用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到
LED DISP的LED_A、LED_B、LED_C、LED_D、LED_E、LED_F、LED_G、LED_DP。
3、用导线将HD7279的7279_C1、7279_C2、7279_C3、7279_C4分别连接到LED DISP的LED_C1、LED_C2、LED_C3、LED_C4。
4、用导线将HD7279的7279_A、7279_B、7279_C、7279_D、7279_E、7279_F、7279_G、7279_DP分别连接到
KEY的KEY7、KEY6、KEY5、KEY4、KEY3、KEY2、KEY1、KEY8。 5、用导线将HD7279的7279_C1连接到KEY的插孔KEY 过程:
上电,运行程序,按键,观察LED显示的数据是否与键盘一一对应。 */
#include \#include \#include \#include \#include \
#include \#include \
#define CTL_PERIPH SYSCTL_PERIPH_GPIOC #define CTL_PORT GPIO_PORTC_BASE #define #define #define
CS
GPIO_PIN_4 GPIO_PIN_5 GPIO_PIN_6
// // //
定义CS 定义CLK 定义DATA
CLK DAT
// 定义INT0 #define
INT0_PERIPH
SYSCTL_PERIPH_GPIOE
#define INT0_PORT GPIO_PORTE_BASE #define INT0_PIN GPIO_PIN_1
#define CS_L GPIOPinWrite(CTL_PORT,CS,0x00); #define CLK_L GPIOPinWrite(CTL_PORT,CLK,0x00); #define DAT_L
GPIOPinWrite(CTL_PORT,DAT,0x00);
#define CS_H GPIOPinWrite(CTL_PORT,CS,0xFF); #define CLK_H GPIOPinWrite(CTL_PORT,CLK,0xFF); #define DAT_H
GPIOPinWrite(CTL_PORT,DAT,0xFF);
#define cmd_reset 0xa4 #define cmd_test 0xbf #define cmd_left 0xa1
#define cmd_read 0x15 #define decode1
0xc8
令
void delay(unsigned int t)
{ SysCtlDelay(t*(SysCtlClockGet( ) / 3000)/1000);
}
void short_delay(void)
{ SysCtlDelay(10*(SysCtlClockGet( ) / 3000)/1000);
//
}
void long_delay(void)
{ SysCtlDelay(15*(SysCtlClockGet( ) / 3000)/1000);
//
}
// 7279的片选输出低电平 // 7279的时钟输出低电平
//
7279的数据输出低电平
// 7279的片选输出高电平 //
7279的时钟输出高电平
//
7279的数据输出高电平
// 7279的复位命令 // 7279的测试命令
// 7279的左移位命令 // 7279的读缓冲命令
//
7279的译码显示命
//
延时函数
//
延时到输入量为0
//
短延时,用于控制时钟
延时大约10us
//
短延时,用于控制时钟
延时大约15us
void send_byte(unsigned char out_byte )
{ unsigned short i; GPIODirModeSet(CTL_PORT, DAT ,GPIO_DIR_MODE_OUT);
出口 ;
CS_L;
long_delay();
for (i=0;i<8;i++)
{
if (out_byte & 0x80) DAT_H
电平
else DAT_L; CLK_H; short_delay(); CLK_L;
short_delay();
out_byte <<= 1;
位
}
short_delay(); DAT_L;
}
unsigned char receive_byte (void) { unsigned char i,in_byte=0; GPIODirModeSet(CTL_PORT, DAT ,GPIO_DIR_MODE_IN);
口 ;
DAT_H;
电平
long_delay();
for(i=0;i<8;i++)
{
CLK_H;
short_delay();
in_byte <<= 1; if (GPIOPinRead(CTL_PORT,DAT)) in_byte |= 1; // CLK_L;
short_delay();
}
//
发送数据
// 设置循环变量
// 设置GPIO 为输
//
置低片选信号
//
延时等待稳定
//
写入8 bit数据
// 最高位为1 //
数据线输出高
// 否则输出低电平 // 置高时钟位 // 延时至稳定 //
置低时钟位 // 延时至稳定 // 输出参数变量右移一
// 延时至稳定
//
置高片选信号
// 接收数据 // 定义变量 // 设置DAT为输入 //
数据线输出高
//
延时等待稳定
// 读出8 bit数据 // 置高时钟位 //
延时至稳定
// 已收到的数据移位 向数据中增加一位
//
置低时钟位
//
延时至稳定
DAT_L; 电平
short_delay(); }
unsigned char read7279(void) { }
void write7279(unsigned char cmd, char dat) { }
void test7279(void) { }
void init(void) {
GPIODirModeSet(CTL_PORT, (CS | CLK ) ,GPIO_DIR_MODE_OUT);
GPIODirModeSet(INT0_PORT, ( INT0_PIN ) ,GPIO_DIR_MODE_IN); GPIOIntTypeSet(INT0_PORT, INT0_PIN, GPIO_FALLING_EDGE); 下降沿触发
GPIOPinIntEnable(INT0_PORT, INT0_PIN); IntEnable(INT_GPIOE); IntMasterEnable(); }
void GPIO_Port_E_ISR(void) 数, 在startup.s中注册中断函数
// GPIOB的中断服务函
// 使能INT0所在管脚的中断
// 使能GPIO端口中断 // 使能处理器中断
// 设置GPIO为输出口 ; // 设置INT0所在管脚为输入 // 设置INT0管脚的中断类型
SysCtlPeripheralEnable( CTL_PERIPH ); SysCtlPeripheralEnable( INT0_PERIPH );
// 使能GPIO口外设 // 使能GPIO口外设
//
芯片初始化
send_byte(cmd_test); delay(50000);
send_byte(cmd_reset);
// //
发送测试命令 //
等待以便观察 发送复位命令
//
显示测试程序
if(cmd != 255) send_byte(cmd); if(dat != 255) send_byte(dat&15);
//
//
写命令
//
置高片选位
写显示数据
//
向LED写显示数据和命令
send_byte(cmd_read);
// //
发送读键值命令 返回键值
return (receive_byte())+1;
//
读键值
//
//
延时至稳定
return(in_byte);
返回接收到的数据
//
数据线输出低
CS_H;
正在阅读:
无线传感实验一11-03
六年级英语总复习,按要求完成句子做题方法09-21
四川省“十二五”规划纲要全文(2011-2015年)08-26
原告孙XX诉被告广西南宁XX物业服务有限责任公司(以下简称XX物业)05-29
中国歧化松香行业市场前景分析预测年度报告(目录) - 图文07-04
新课标2018-2019学年高三上学期第二次月考 地理 Word版含答案03-27
新版“24孝”内容02-09
一句话的奇迹读后感10-19
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 传感
- 无线
- 实验
- 植筋现浇楼板工程承包合同
- 2010年公共营养师考试《基础知识》模拟练习题(8)-中大网校
- LTE网络S1接口切换成功率低分析V1
- 2015执业药师药学专业知识二考前冲刺模拟试题(7)
- 素书解释
- 数学建模企业退休职工养老金制度的改革(3)
- 169内科护理习题@广州中医大 - 血液系统疾病病人护理
- 课题研究调查报告格式及范文 - 图文
- 注册给排水基础考试(水分析化学)历年考试真题及解析 - 图文
- 四川省劳动局印发我局《关于执行“国务院关于职工探亲待遇的规定”的实施细则》的通知
- 2017-2022年中国化妆品市场运行态势报告(目录) - 图文
- 龙塘至中建施工组织设计
- 白山市畜禽养殖业污染治理规划
- 砼技术交底 - 图文
- 陕西省西安地区八校2018届高三下学期5月联考英语试题Word版附详细答案
- 六年级语文校本教材
- 水泵与水泵站课堂讲义
- 手工制作社团活动计划及教案 - 图文
- 施A-1施工组织设计(方案)报审表
- 银行业犯罪及刑事责任(1)