接口实验指导书Word文档下载推荐.docx

上传人:b****6 文档编号:19635402 上传时间:2023-01-08 格式:DOCX 页数:21 大小:271.77KB
下载 相关 举报
接口实验指导书Word文档下载推荐.docx_第1页
第1页 / 共21页
接口实验指导书Word文档下载推荐.docx_第2页
第2页 / 共21页
接口实验指导书Word文档下载推荐.docx_第3页
第3页 / 共21页
接口实验指导书Word文档下载推荐.docx_第4页
第4页 / 共21页
接口实验指导书Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

接口实验指导书Word文档下载推荐.docx

《接口实验指导书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《接口实验指导书Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

接口实验指导书Word文档下载推荐.docx

//函数名称:

delayus

//入口参数:

count

//函数功能:

延时子程序

voiddelayus(uintcount)

{

uinti;

while(count--)

{

for(i=0;

i<

125;

i++){}

}

}

Reset_18B20

voidReset_18B20(void)

TMDAT=0;

i=103;

while(i>

0)i--;

//大约900us

TMDAT=1;

i=4;

Wait_18B20

等待DS18B20应答

voidWait_18B20(void)

while(TMDAT);

while(~TMDAT);

Readbit_18B20

//返回值:

dat

在总线上读一位

bitReadbit_18B20(void)

uinti=0;

bitdat=0;

i++;

dat=TMDAT;

i=8;

return(dat);

Readbyte_18B20

读一个字节

unsignedcharReadbyte_18B20(void)

uchari=0,j=0,dat=0;

for(i=1;

=8;

i++)

j=Readbit_18B20();

dat=(j<

<

7)|(dat>

>

1);

Writebyte_18B20

dat

写命令

voidWritebyte_18B20(uchardat)

ucharj=0;

bittestb=0;

for(j=1;

j<

j++)

testb=dat&

0x01;

dat=dat>

1;

if(testb)

//写1

i++;

while(i>

else

//写0

Start_Convert

开始转换

voidStart_Convert(void)

Reset_18B20();

Wait_18B20();

delayus

(1);

Writebyte_18B20(0xcc);

Writebyte_18B20(0x44);

读取温度值

voidGet_temp()

ucharH_18B20=0,L_18B20=0,y1=0,y2=0;

fg=0;

//初始化DS18B20

//跳过ROM命令

Writebyte_18B20(0xbe);

//发送读取数据命令

L_18B20=Readbyte_18B20();

//读取温度低八位数据

H_18B20=Readbyte_18B20();

//读取温度高八位数据

if(H_18B20>

0x7f)//最高位为1时温度是负

L_18B20=~L_18B20+1;

//补码转换,取反加一

H_18B20=~H_18B20;

fg=1;

//读取温度为负时fg=1

//温度小数部分

Temp_Decimal=L_18B20&

0x0f;

//温度整数部分

L_18B20=L_18B20>

4;

H_18B20=H_18B20<

Temp_Integer=H_18B20|L_18B20;

/*********************************************************************

*功能:

*说明:

形参delayusms=5000,时间延长大约为1s

*********************************************************************/

voidDelay(uintdelayusms)

ucharj;

delayusms;

for(j=0;

255;

j++);

//以下为max7219的代码,根据手册分析代码的作用

sbitSCK=P1^0;

sbitMOSI=P1^2;

sbitLOAD=P1^1;

voidWriteMax7219(unsignedcharaddr,unsignedchardat)

inti;

LOAD=0;

8;

SCK=0;

MOSI=(bit)(addr&

0x80);

SCK=1;

addr<

=1;

MOSI=(bit)(dat&

dat<

LOAD=1;

voidInitMax7219()

LOAD=1;

SCK=0;

WriteMax7219(0xc,0x1);

//关闭掉电模式

WriteMax7219(0xb,0x7);

//8个数码管都显示

WriteMax7219(0xa,0xf);

//亮度设置,0xf最亮

WriteMax7219(0x9,0xff);

//所有数码管译码显示

WriteMax7219(0x1,1);

//

WriteMax7219(0x2,2);

WriteMax7219(0x3,3);

WriteMax7219(0x4,4);

WriteMax7219(0x5,5);

WriteMax7219(0x6,6);

WriteMax7219(0x7,7);

WriteMax7219(0x8,8);

voidDisValue(longval)

WriteMax7219(0x1,val/10000000%10);

WriteMax7219(0x2,val/1000000%10);

WriteMax7219(0x3,val/100000%10);

WriteMax7219(0x4,val/10000%10);

WriteMax7219(0x5,val/1000%10);

WriteMax7219(0x6,val/100%10);

WriteMax7219(0x7,val/10%10);

WriteMax7219(0x8,val%10);

//在以下的主函数中将两部分代码协调调用,使满足本次实验要求

voidmain()

//内容自己编写

记录实验结果,并写到实验报告上。

[思考与分析]

1.使用DS2413单总线芯片实现led的闪烁驱动,

Ds2413的控制方式参考其手册。

2.将本实验中再接入一个温度传感器tc72,并将tc72采样的温度值送到max7219进行显示。

Tc72的操作参照它的datasheet。

实验二IIC接口实验

2.掌握IIC协议的软件模拟实现方法

IIC是2线接口,可用于最多127个外设的连接,总线具有仲裁功能,主机可以实现对总线上的器件单独读或者写操作。

读写速率为100k或400k。

设计一个电路并用软件实现驱动。

该电路使用iic接口芯片AT24C02,使用8051向存储器的0地址写入一个数0x55,通过查看存储器内容的变化验证数据操作的正确性。

使用的器件型号如下

和一个i2c协议分析器,

使用keilc51创建一个工程,命名为iic。

新建并添加主程序main.c到项目中。

#include<

intrins.h>

sbitSCL=P1^0;

sbitSDA=P1^1;

voidIICStart()

SCL=1;

_nop_();

SDA=1;

SDA=0;

voidIICStop()

SCL=0;

_nop_();

_nop_();

voidSlaveAck()

{unsignedchartime=255;

//释放SDA线

//SCL=0;

while(SDA)

{time--;

if(time==0)

return;

}

voidMasterAck()

SCL=0;

voidMasterNAck()

voidWriteByte(unsignedcharch)

chari;

i++){

SDA=(bit)(ch&

ch<

unsignedcharReadByte()

unsignedchardat=0;

{dat<

=1;

SCL=1;

//

dat|=SDA;

//

returndat;

//初始化

IICStart();

WriteByte(0xa0);

//写从器件地址0xa0

SlaveAck();

WriteByte

(1);

WriteByte(0x55);

IICStop();

while

(1);

运行生成的hex文件,分析协议分析器的内容及含义,通过暂停proteus,用菜单

查看存储器中内容的变化,记录实验结果。

【思考与分析】

1.若要连续的向存储器中的0x20~0x35地址中写入15个数,如何实现,根据协议分析器分析实现的过程。

2.根据at24c02的手册,编写一段代码实现从存储器的0x0地址读取一个数,试着用代码实现并验证结果。

实验三上位机串口收发实验

1.掌握串行口的工作原理

2.掌握串行口的上位机编程方法

3.了解虚拟串口软件的使用

PC机操作系统WinXP,VisualBasic6.0集成开发环境。

PC通常在数据传输中充当上位机,可以通过串口实现和其他串口设备的通信。

VB通过MSCOMM控件可以对串口各种参数进行设置,并通过事件机制实现对串口数据的收发。

使用VisualBasic6.0软件设计一个对话框界面,分别设置两个编辑框,一个作为发送数据端,一个作为接收数据端。

实现数据的串口通信。

1.检查一下电脑系统中是否有mscomm32.ocx文件,在系统C:

\WINDOWS\system32目录下,如果没有安装之(通过双击MSCOMM32压缩包里面的Setup.bat,运行前先解压)

2.安装虚拟串口软件,在电脑上虚拟出两个相互连接在一起的串口,实验中一个用于发送,另一个接收。

安装过程:

解压VSPD(虚拟串口).zip到当前目录,找到vspd.exe,双击运行,一直点next,直到Finish为止。

最后会出现提示注册的窗口,点击cancel。

然后用刚才解压目录下的两个文件覆盖C:

\ProgramFiles\EltimaSoftware\VirtualSerialPortDriver6.9目录下的相应的文件,然后点击桌面上的ConfigureVirtualSerialPortDriver快捷方式启动虚拟串口,见下图

然后点击添加端口按钮,界面变为如下图:

这时候系统就已经虚拟了两个串口,分别是串口2和串口3(注:

不同机器上串口号可能不一样),它们是交叉连接在一起的。

3,安装VB6精简版,一路next即可。

4.打开vb,见下图

点击打开,在左侧的工具栏上右击,见下图

选择部件,弹出窗口,按下图勾选

然后点击应用,这是VB的控件栏多了一个“电话”图标,这就是mscomm控件。

接下来向界面中添加控件,见下图

控件及其属性的设置见下表

控件类型

控件名称

控件的caption

Text属性

备注

Label

Label1

发送数据

Label2

接收数据

Label3

你的姓名+串口实验

TextBox

TextSend

Text1

TextRecieve

Text2

CommandButton

Command1

发送

Command2

退出程序

窗口

Form1

MSComm

MSComm1

用于发送数据的串口

MSComm2

用于接收数据的串口

双击窗口任意位置,打开代码编辑窗口

PrivateSubCommand1_Click()

MSComm1.Output=TextSend.Text

EndSub

PrivateSubCommand2_Click()

End

PrivateSubForm_Load()

'

当窗口加载时,初始化相关的控件

MSComm1.CommPort=2'

设置串口2

MSComm1.Settings="

9600,N,8,1"

'

波特率9600bps,无校验,8位数据,1位停止位

MSComm1.InputLen=0'

读取接收缓冲区的所有字符

MSComm1.InBufferSize=1024'

设置接收缓冲区为1024字节

MSComm1.OutBufferSize=512'

设置发送缓冲区为512字节

MSComm1.PortOpen=True'

打开串口

MSComm1.SThreshold=0'

不触发发送事件

MSComm1.RThreshold=1'

每一个字符到接收缓冲区都触发接收事件

MSComm1.InBufferCount=0'

清除发送缓冲区数据

MSComm1.OutBufferCount=0'

清除接收缓冲区数据

TextSend.Text="

"

清空发送文本框

MSComm2.CommPort=3'

设置串口3

MSComm2.Settings="

MSComm2.InputLen=0'

MSComm2.InBufferSize=1024'

MSComm2.OutBufferSize=512'

MSComm2.PortOpen=True'

MSComm2.SThreshold=0'

MSComm2.RThreshold=1'

MSComm2.InBufferCount=0'

MSComm2.OutBufferCount=0'

TextRecieve.Text="

清空接收文本框

PrivateSubMSComm2_OnCom

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1