微机原理与接口技术实验指导书大纲.docx

上传人:b****4 文档编号:6665421 上传时间:2023-05-10 格式:DOCX 页数:16 大小:232.14KB
下载 相关 举报
微机原理与接口技术实验指导书大纲.docx_第1页
第1页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第2页
第2页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第3页
第3页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第4页
第4页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第5页
第5页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第6页
第6页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第7页
第7页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第8页
第8页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第9页
第9页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第10页
第10页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第11页
第11页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第12页
第12页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第13页
第13页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第14页
第14页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第15页
第15页 / 共16页
微机原理与接口技术实验指导书大纲.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术实验指导书大纲.docx

《微机原理与接口技术实验指导书大纲.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验指导书大纲.docx(16页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术实验指导书大纲.docx

微机原理与接口技术实验指导书大纲

 

《微机原理与接口技术》

实验指导书

电气与自动化工程学院

 

常熟理工学院

二零一四年二月

 

实验一、AD转换实验

一、实验目的

1.了解ADC0809的AD转换原理;

2.了解ADC0809的硬件设计原理图;

3.自主设计ADC0809的AD转换程序以及显示程序。

二、实验设备

单片机实验箱一台;PC机一台;USB下载线一根;ADC0809模块;LCD12864液晶模块。

三、实验内容

通过ADC0809的IN0端口采集模拟量信号,然后进行AD转换,转换完成后的数字量在LCD12864液晶屏上显示出来。

模拟信号由0~5V的可调电位器提供,ADC0809的时钟频率由单片机定时器0提供。

四、实验原理

ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。

转换时间约100μs,含锁存控制的8路多路开关,输出有三态缓冲器控制,单电源5V供电。

主要时序信号如图2所示:

START是转换启动信号,高电平有效;ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。

当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号,当启动转换约100μs后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线,至此ADC0809的一次转换结束。

ADC0809通道的选择与工作时序图,如图1,2所示

图1:

ADC0809通道的选择

图2:

ADC0809工作时序图

 

五、实验步骤

1、连接硬件接线:

将ADC0809模块和LCD12864模块分别通过牛角插头连接至单片机对应接口,连接单片机电源。

2、ADC0809模块实验板说明:

该模块板自带电压表,显示IN0,IN1输入端电压,显示可以通过S1与S2波动开关选择,一次只能允许有一个开关拨到ON位置,严禁两个开关同时为ON。

模块实验板预留出IN2~IN7输入端口,可供扩展AD实验口使用。

3、理解硬件原理图:

理解ADC0809的硬件原理图,根据硬件原理图设计软件流程图。

ADC0809的硬件电路图如图3所示。

其中引脚分配为:

ADA=P1^0;//地址选择位

ADB=P1^1;//地址选择位

ADC=P1^2;//地址选择位

ST=P1^3;//转换启动信号

EOC=P1^4;//转换情况状态信号

CLK=P1^6;//转换时钟信号

EN=P1^5;//转换使能控制

ALE=P1^7;//转换地址锁存控制

图3:

ADC0809硬件电路图

4、画出程序流程图:

根据程序流程图,编写并调试软件程序。

图4:

软件流程图

实验程序如下:

/**

**@note:

需要建立LCD12864_ADC0832.h文件和LCD12864_ADC0832.c文件

**@note:

LCD12864_ADC0832.h文件声明LCD12864_ADC0832.c函数与变量

**@note:

以下为LCD12864_ADC0832.h文件程序

*/

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

#ifndef_LCD12864_ADC0832_h_

#define_LCD12864_ADC0832_h_

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

externvoidsys_init(void);//系统初始化

externvoiddisplay_ad(void);//显示AD转换结果

#endif

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

/**

**@note:

需要建立LCD12864_ADC0832.h文件和LCD12864_ADC0832.c文件

**@note:

以下为LCD12864_ADC0832.c函数与变量

*/

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

#include"LCD12864_ADC0832.h"

 

sbitADA=P1^0;//地址选择位

sbitADB=P1^1;//地址选择位

sbitADC=P1^2;//地址选择位

sbitST=P1^3;//转换启动信号

sbitEOC=P1^4;//转换情况状态信号

sbitCLK=P1^6;//转换时钟信号

sbitEN=P1^5;//转换使能控制

sbitALE=P1^7;//转换地址锁存控制

//引脚定义

sbitCS=P0^0;//片选高电平有效单片LCD使用时可固定高电平

sbitPSB=P0^1;//低电平时表示用串口驱动,可固定低电平

sbitSCLK=P0^2;//时钟

sbitSID=P0^3;//数据

 

voidwrite(bitstart,unsignedcharddata);

voidsendbyte(unsignedcharbbyte);

voiddelaynms(unsignedintdi);

voidlcdinit(void);

voidlcdtest(void);

voidlcdcls(void);

unsignedcharcodema[]={"汉字显示LCD"};

unsignedcharcodema2[]={"AD转换的结果:

"};

unsignedcharcodema3[]={"控制IC:

ST7920"};

unsignedcharcodema4[]={"常熟理工学院"};

unsignedcharcodeDIS4[]={"0123456789"};

 

unsignedchartemp[3]=

{

0,0,0

};

unsignedcharad=0;

//ms延时函数

voidDelay_xms(uintx)

{

uinti,j;

for(i=0;i

for(j=0;j<112;j++);

}

voidlcdinit(void)//初始化LCD

{

delaynms(10);//启动等待,等LCM讲入工作状态

PSB=0;//串口驱动模式

//RESET=0;

delaynms

(1);

//RESET=1;//复位LCD

CS=1;

write(0,0x30);//8位介面,基本指令集

write(0,0x0c);//显示打开,光标关,反白关

write(0,0x01);//清屏,将DDRAM的地址计数器归零

}

voidwrite(bitstart,unsignedcharddata)//写指令或数据

{

unsignedcharstart_data,Hdata,Ldata;

if(start==0)start_data=0xf8;//写指令

elsestart_data=0xfa;//写数据

Hdata=ddata&0xf0;//取高四位

Ldata=(ddata<<4)&0xf0;//取低四位

sendbyte(start_data);//发送起始信号

delaynms(5);//延时是必须的

sendbyte(Hdata);//发送高四位

delaynms

(1);//延时是必须的

sendbyte(Ldata);//发送低四位

delaynms

(1);//延时是必须的

}

voidsendbyte(unsignedcharbbyte)//发送一个字节

{

unsignedchari;

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

{

SID=bbyte&0x80;//取出最高位

SCLK=1;

SCLK=0;

bbyte<<=1;//左移

}

}

voiddelaynms(unsignedintdi)//延时

{

unsignedintda,db;

for(da=0;da

for(db=0;db<10;db++);

}

voidlcdtest(void)//图形方式下屏幕全黑

{

unsignedchari,j;

for(i=0;i<32;i++)

{

write(0,0x80+i);write(0,0x80);

for(j=0;j<16;j++)write(1,0xff);

}

for(i=0;i<32;i++)

{

write(0,0x80+i);write(0,0x88);

for(j=0;j<16;j++)write(1,0xff);

}

}

voidlcdcls(void)//图形方式下清屏

{

unsignedchari,j;

for(i=0;i<32;i++)

{

write(0,0x80+i);write(0,0x80);

for(j=0;j<16;j++)write(1,0x00);

}

for(i=0;i<32;i++)

{

write(0,0x80+i);write(0,0x88);

for(j=0;j<16;j++)write(1,0x00);

}

}

voiddisplay_ad(void)

{

unsignedchari;

ADA=0;

ADB=0;

ADC=0;//选定IN0输入端口

ST=0;

ALE=0;

_nop_();

ALE=1;

ST=1;//根据时序图进行AD转换的初始化

_nop_();_nop_();//延时等待转换稳定

ALE=0;

ST=0;

while(!

EOC);//等待转换完成

EN=1;

ad=P2;//将转换结果赋值给变量用于显示

EN=0;

temp[0]=(unsignedchar)ad/100;//将变量数值拆分成单个数字用于显示

temp[1]=(unsignedchar)ad%100/10;

temp[2]=(unsignedchar)ad%10;

write(0,0x80);for(i=0;i<16;i++)write(1,ma2[i]);

write(0,0x90);for(i=0;i<3;i++)write(1,DIS4[temp[i]]);

}

voidsys_init(void)

{

Delay_xms(100);//上电,等待稳定

lcdinit();//初始化LCD

TMOD=0x01;

TH0=(65536-1)/256;

TL0=(65536-1)%256;//取余

EA=1;

TR0=1;

ET0=1;

ad=0x80;

temp[0]=(unsignedchar)ad/100%10;

temp[1]=(unsignedchar)ad/10%10;

temp[2]=(unsignedchar)ad%10;

}

voidmain(void)

{

sys_init();//系统初始化

while

(1)

{

display_ad();//显示AD转换值

}

}

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

*定时器0函数

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

voidtimer0()interrupt1

{

TH0=(65536-1)/256;

TL0=(65536-1)%256;

CLK=~CLK;

}

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

六、思考题:

1)如何改用IN2为输入端口?

请修改程序并观察实验现象。

2)实验中出现哪些问题,如何解决的?

实验二、DAC0832转换实验

一、实验目的

1.了解DAC0832的DA转换原理;

2.了解DAC0832的硬件设计原理图;

3.自主设计DAC0832的DA转换程序。

二、实验设备

单片机实验箱一台;PC机一台;USB下载线一根;DAC0832模块;9V电源适配器一个。

三、实验内容

通过DAC0832的DI0-DI7输入端输入数字信号,经DA转换后将模拟电压显示到电压表上。

四、实验原理

DAC0832是具有两个输入数据寄存器的8位DAC,能直接与51单片机相连。

主要特性如下:

分辨率为8位;电流输出,稳定时间为1s;可双缓冲输入、单缓冲输入或直接数字输入;单一电源供电(+5~+15V)。

DAC0832的逻辑结构如图所示:

图1:

DAC0832的逻辑结构图

其引脚分布如图2所示:

图2:

DAC0832的引脚分布图

DAC0832各引脚说明:

DI0-DI7:

转换数据输入端;

CS:

片选信号输入端。

ILE:

数据锁存允许信号输入端,高电平有效。

WR1:

输入寄存器写选通控制端。

当CS=0、ILE=1、WR1=0时,数据信号被锁存在输入寄存器中。

Xfer:

数据传送控制信号输入端,低电平有效。

WR2:

DAC寄存器写选通控制端。

当XFER=0,WR2=0时,输入寄存器状态传入DAC寄存器中。

Iout1:

电流输出1端,当数据全为1时,电流输出最大;当数据全为0时,输出电流最小。

Iout2:

电流输出2端。

DAC0802具有Iout1+Iout2=常数的特性。

Rfb:

反馈电阻端。

Vref:

基准电压输入端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为-10V~10V;

VCC和GND:

芯片的电源和接地端。

DAC内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器有LIE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可以实现三种工作方式:

直通方式,单缓冲方式,双缓冲方式。

直通方式是将两个寄存器的五个控制端预先置为有效信号,两个寄存器都开通,只要有数字信号输入就立即进入DA转换。

单缓冲方式是使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xref相连接到地上,并把WR1接到80C51的WR上,LIE接高电平,CS接高位地址或地址译码的输出端上。

双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可以用于多路模拟量要求同时输出的情况下。

三种工作方式的区别是:

直通方式不需要选通,直接进行DA转换;单缓冲方式一次选通;双缓冲方式二次选通。

控制时序图:

图3:

DAC0832控制时序图

五、实验步骤

1、连接硬件接线:

将DAC0832模块通过牛角插头连接至单片机对应接口,连接单片机电源。

2、理解硬件原理图:

DAC0832的硬件原理图,根据硬件原理图设计软件流程图。

硬件电路图如图所示:

其中引脚分配为:

RW=P2^7;//输入端选通信号。

CS=P2^6;//片选信号输入端。

P1;//为数字信号输入口

图4:

DAC0832电路原理图

3、画出程序流程图:

根据程序流程图,编写并调试软件程序。

图5:

软件流程图

DA转换程序实例:

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

平台:

51最小系统板

单片机:

STC89C52RC

晶振:

12MHz

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

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitRW=P2^7;//输入端口选通信号

sbitCS=P2^6;//输入信号锁存信号

//功能:

延时1毫秒

voidDelay_xms(uintx)

{

uinti,j;

for(i=0;i

for(j=0;j<112;j++);

}

//功能:

12us延时

voidDelay_xus(uintt)

{

for(;t>0;t--)

{

_nop_();

}

}

voidDAC_init(void)//DA初始化

{

CS=0;//输入信号锁存信号

RW=0;//输入端口选通信号

}

voidDAC_start(void)

{

P1=0x80;//输入数字信号

}

voidmain(void)

{

DAC_init();

while

(1)

{

DAC_start();

}

}

观察实验结果。

六、思考题:

1、本硬件电路为单缓冲工作方式,运放采用的是单电源供电设计,如果运放采用双电源供电,单缓冲工作方式电路该怎样设计?

2、实验中遇到哪些问题?

是如何解决的?

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

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2