微机原理与接口技术实验指导书大纲.doc_第1页
微机原理与接口技术实验指导书大纲.doc_第2页
微机原理与接口技术实验指导书大纲.doc_第3页
微机原理与接口技术实验指导书大纲.doc_第4页
微机原理与接口技术实验指导书大纲.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术实验指导书电气与自动化工程学院常熟理工学院二零一四年二月实验一、AD转换实验一、实验目的1. 了解ADC0809的AD转换原理;2. 了解ADC0809的硬件设计原理图;3. 自主设计ADC0809的AD转换程序以及显示程序。二、实验设备单片机实验箱一台;PC机一台;USB下载线一根;ADC0809模块;LCD12864液晶模块。三、实验内容通过ADC0809的IN0端口采集模拟量信号,然后进行AD转换,转换完成后的数字量在LCD12864液晶屏上显示出来。模拟信号由05V的可调电位器提供,ADC0809的时钟频率由单片机定时器0提供。四、实验原理ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。转换时间约100s,含锁存控制的8路多路开关,输出有三态缓冲器控制,单电源5V供电。主要时序信号如图2所示:START是转换启动信号,高电平有效;ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号,当启动转换约100s后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线,至此ADC0809的一次转换结束。ADC0809通道的选择与工作时序图,如图1,2所示图1:ADC0809通道的选择图2:ADC0809工作时序图五、 实验步骤1、 连接硬件接线:将ADC0809模块和LCD12864模块分别通过牛角插头连接至单片机对应接口,连接单片机电源。2、 ADC0809模块实验板说明:该模块板自带电压表,显示IN0,IN1输入端电压,显示可以通过S1与S2波动开关选择,一次只能允许有一个开关拨到ON位置,严禁两个开关同时为ON。模块实验板预留出IN2IN7输入端口,可供扩展AD实验口使用。3、 理解硬件原理图:理解ADC0809的硬件原理图,根据硬件原理图设计软件流程图。ADC0809的硬件电路图如图3所示。其中引脚分配为:ADA = P10; / 地址选择位ADB = P11; / 地址选择位ADC = P12; / 地址选择位ST = P13; / 转换启动信号EOC = P14; / 转换情况状态信号CLK = P16; / 转换时钟信号EN = P15; / 转换使能控制 ALE = P17; / 转换地址锁存控制图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 #define uchar unsigned char#define uint unsigned int extern void sys_init(void); / 系统初始化extern void display_ad(void); / 显示AD转换结果#endif/*/* note:需要建立LCD12864_ADC0832.h文件和LCD12864_ADC0832.c文件* note: 以下为LCD12864_ADC0832.c函数与变量*/*/#include LCD12864_ADC0832.h sbit ADA = P10; /地址选择位sbit ADB = P11; /地址选择位sbit ADC = P12; /地址选择位sbit ST = P13; /转换启动信号sbit EOC = P14; /转换情况状态信号sbit CLK = P16; /转换时钟信号sbit EN = P15; /转换使能控制 sbit ALE = P17; /转换地址锁存控制/引脚定义sbit CS = P00;/片选 高电平有效 单片LCD使用时可固定高电平sbit PSB = P01;/低电平时表示用串口驱动,可固定低电平sbit SCLK = P02;/时钟sbit SID = P03;/数据void write(bit start, unsigned char ddata);void sendbyte(unsigned char bbyte);void delaynms(unsigned int di);void lcdinit(void);void lcdtest(void);void lcdcls(void); unsigned char code ma =汉字显示LCD;unsigned char code ma2=AD转换的结果:;unsigned char code ma3=控制IC:ST7920;unsigned char code ma4=常熟理工学院;unsigned char code DIS4 = 0123456789;unsigned char temp3 = 0,0,0;unsigned char ad=0 ;/ms延时函数void Delay_xms(uint x)uint i,j;for(i=0;ix;i+)for(j=0;j112;j+);void lcdinit(void)/初始化LCD delaynms(10); /启动等待,等LCM讲入工作状态PSB=0; /串口驱动模式/ RESET=0; delaynms(1); /RESET=1; / 复位LCDCS=1;write(0,0x30); /8 位介面,基本指令集write(0,0x0c); /显示打开,光标关,反白关write(0,0x01); /清屏,将DDRAM的地址计数器归零 void write(bit start, unsigned char ddata) /写指令或数据unsigned char start_data,Hdata,Ldata;if(start=0) start_data=0xf8; /写指令else start_data=0xfa; /写数据Hdata=ddata&0xf0; /取高四位Ldata=(ddata4)&0xf0; /取低四位sendbyte(start_data); /发送起始信号delaynms(5); /延时是必须的sendbyte(Hdata); /发送高四位delaynms(1); /延时是必须的sendbyte(Ldata); /发送低四位delaynms(1); /延时是必须的void sendbyte(unsigned char bbyte) /发送一个字节 unsigned char i; for(i=0;i8;i+) SID=bbyte&0x80; /取出最高位 SCLK=1; SCLK=0; bbyte=1; /左移 void delaynms(unsigned int di) /延时 unsigned int da,db; for(da=0;dadi;da+) for(db=0;db10;db+);void lcdtest(void)/图形方式下屏幕全黑 unsigned char i,j;for(i=0;i32;i+) write(0,0x80+i);write(0,0x80); for(j=0;j16;j+) write(1,0xff); for(i=0;i32;i+) write(0,0x80+i);write(0,0x88); for(j=0;j16;j+) write(1,0xff); void lcdcls(void) /图形方式下清屏 unsigned char i,j;for(i=0;i32;i+) write(0,0x80+i);write(0,0x80); for(j=0;j16;j+) write(1,0x00); for(i=0;i32;i+) write(0,0x80+i);write(0,0x88); for(j=0;j16;j+) write(1,0x00); void display_ad(void)unsigned char i; 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; temp0 = (unsigned char)ad / 100 ;/ 将变量数值拆分成单个数字用于显示temp1 = (unsigned char)ad %100 / 10 ;temp2 = (unsigned char)ad % 10;write(0,0x80); for(i=0;i16;i+) write(1,ma2i);write(0,0x90); for(i=0;i3;i+) write(1,DIS4tempi);void sys_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; temp0 = (unsigned char)ad / 100 % 10 ;temp1 = (unsigned char)ad / 10 % 10 ;temp2 = (unsigned char)ad % 10; void main(void) sys_init(); /系统初始化 while(1) display_ad(); /显示AD转换值 /* 定时器0函数 */void timer0() interrupt 1TH0=(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位;电流输出,稳定时间为1ms;可双缓冲输入、单缓冲输入或直接数字输入; 单一电源供电(+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:基准电压输入端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为-10V10V;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、 理解硬件原理图:DAC0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论