单片机AD模数转换实验报告
单片机ad实验报告

单片机ad实验报告
单片机AD实验报告
实验目的:
本次实验旨在通过单片机的AD(模拟-数字)转换功能,将模拟信号转换为数字信号,并通过单片机进行处理和显示,以加深对单片机AD转换原理和应用的理解。
实验器材:
1. 单片机开发板
2. 模拟信号发生器
3. 示波器
4. 连接线
5. 电脑
实验步骤:
1. 连接模拟信号发生器和单片机开发板,设置模拟信号发生器输出一个正弦波信号。
2. 在单片机开发板上编写程序,配置AD转换功能,将模拟信号转换为数字信号。
3. 将数字信号通过串口传输到电脑上,并用示波器观察数字信号的波形。
4. 在电脑上编写程序,对接收到的数字信号进行处理和显示。
实验结果:
经过实验,成功将模拟信号转换为数字信号,并通过单片机进行处理和显示。
在示波器上观察到了数字信号的波形,验证了AD转换的准确性和稳定性。
在
电脑上也成功对接收到的数字信号进行了处理和显示,进一步验证了单片机AD 转换功能的有效性。
实验总结:
通过本次实验,深入了解了单片机AD转换的原理和应用。
AD转换是单片机重要的功能之一,对于模拟信号的采集和处理具有重要意义。
在实际应用中,可以通过单片机AD转换功能,实现各种类型的模拟信号的数字化处理,为各种电子设备的控制和监测提供了技术支持。
通过本次实验,对单片机AD转换功能有了更深入的理解和掌握,为今后的电子技术应用奠定了坚实的基础。
模数转换adc实验报告

模数转换adc实验报告1. 引言模数转换(ADC)是将模拟信号转换为数字信号的过程,广泛应用于各种电子设备中。
本实验旨在通过搭建一个简单的ADC电路,了解和掌握模数转换的基本原理和方法。
2. 实验设备和工具- 一块Arduino开发板- 一根面包板- 一块电位器- 若干杜邦线- 一台笔记本电脑- Arduino开发环境3. 实验步骤3.1 搭建电路首先在面包板上连接电位器和Arduino开发板。
将电位器的两个引脚与Arduino 的3.3V电源和GND(地)相连,电位器的中间引脚与Arduino的A0引脚相连。
3.2 编写代码打开Arduino开发环境,在新建的代码文件中输入以下代码:C++int potentiometerPin = A0;int adcValue;void setup() {Serial.begin(9600); 设置串口波特率为9600}void loop() {adcValue = analogRead(potentiometerPin); 读取A0引脚的模拟值Serial.println(adcValue); 打印模拟值delay(500); 延时500毫秒}3.3 上传并观察结果将Arduino开发板通过USB连接到电脑上,在Arduino开发环境中点击“上传”按钮将代码上传到开发板上。
上传完成后,点击Arduino开发环境的“串口监视器”按钮,设置波特率为9600,并观察串口监视器上显示的数据。
4. 实验结果与分析通过实验,我们可以得到电位器产生的模拟信号在进行模数转换后得到的数字信号。
数字信号表示了模拟信号的离散程度,数值越高表示模拟信号越接近最大量程。
在实验过程中,我们可以通过旋转电位器来改变模拟信号的大小,从而观察到模数转换的效果。
通过串口监视器显示的数据,我们可以清晰地看到转换后的数字信号随着模拟信号的变化而变化。
模数转换的精度取决于ADC的分辨率,即能够将模拟信号转换为多少个离散的数字信号。
单片机ADC实验报告

ADC实验报告1.实验任务利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。
2.现有元件模数转换器ADC0804,STC89C52单片机,两个共阳极数码管。
3.硬件设计3.1模数转换器ADC0809与单片机STC89C52的连接(1)ADC0809规格及引脚分配图如下图3-1所示:(2)STC89C52各个引脚分布如下图3-2所示:图3-1 ADC0809引脚图图3-2 STC89C52引脚图(3) 硬件连线(a) 把“单片机系统”区域中的P3.0与”模数转换模块ADC0809“区域中的ST端子用导线相连接。
(b) 把“单片机系统”区域中的P3.1与”模数转换模块ADC0809“区域中的ALE端子用导线相连接。
(c) 把“单片机系统”区域中的P3.2与”模数转换模块ADC0809“区域中的OE端子用导线相连接。
(d) 把“单片机系统”区域中的P3.6与”模数转换模块ADC0809“区域中的EOC端子用导线相连接。
(e) 把“单片机系统”区域中的P3.7与”模数转换模块ADC0809“区域中的CLK端子用导线相连接。
(f) 把“模数转换模块ADC0809”区域中的ADDA、ADDB、ADDC端子用导线连接到单片机的VCC端子上。
把“模数转换模块ADC0809”区域中IN7与外接输入电压相连。
(g) 把“单片机系统”区域中的P2.0-P2.7连接到“模数转换模块ADC0809”区域中D0D1D2D3D4D5D6D7端子上。
(h) 把“单片机系统”区域中的P1.0-P1.7连接到“数码管”区域中ABCDEFG端子上。
把“单片机系统”区域中的P0.0-P0.1连接到“数码管”区域中12端口。
4. 电路原理图图4 电路原理图 5、程序设计流程图Y N开始 启动前准备初始化INTO=1?开始转换 延时 取转换后的数值 将数值送显示结束6. C语言源程序#include<reg52.h>sbit ALE = P3^1;sbit ST = P3^0;sbit EOC = P3^2;sbit OE = P3^6;sbit CLK = P3^7;sbit wexuan1=P0^0;sbit wexuan2=P0^1;//sbit IN1 = P0^5;//sbit IN2 = P0^6;//sbit IN3 = P0^7;unsigned int code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段码表unsigned int n=0,flag1=1;flag=1,ad_data,num1=0,num2=0;void delay(xms){unsigned int x,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);}void display()//2位数码管显示{float a;a=(float)ad_data/256*5*1000;num1=(int)a/1000;num2=(int)a/100-num1*10;P1=table[num1];wexuan1=0;delay(1);wexuan1=1;P1=0x00;P1=0x80; //小数点wexuan1=0;delay(1);wexuan1=1;P1=0x00;P1=table[num2];wexuan2=0;delay(1);wexuan2=1;P1=0x00;}void init(){ST = 0;ALE = 0;OE = 0;CLK = 0;// _EOC= 1;TMOD=0x12;IP=0x09;TH0=(65536-22)/256;TL0=(65536-22)%256;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;EX0=1;//打开外部中断IT0=1;//从高到低的负跳变有效P0=0x00;}void start() //int a,int b,int c) //选择通道{// IN1 = a;IN2 = b;IN3 = c;ALE = 0;ALE = 1;ST = 0;ST = 1;ALE = 0;ST = 0;display();delay(10);}int read()unsigned int dat;P2 = 0xff;OE = 1;display();dat = P2;OE = 0;return (dat);}void main(){init();while(1){ ST = 0;ST = 1;ST = 0;if(n==20){flag=1;// display();// start();// while(EOC==0);//转换结束(EOC=1)读出数据后显示// _EOC=0;ad_data=read();flag=0;display();//n = 0;// display();// _EOC = 1;}display();//显示的是if中的电压值}}void INTR_0() interrupt 0while(1){ad_data = read();flag = 0;display();}}void timer0() interrupt 1 // 输出500kHz 方波{CLK=~CLK;}void timer1() interrupt 3{TH1=(65536-45872)/256;TL1=(65536-45872)%256;n++;flag1=0;}7、实验成果接线图。
单片机AD转换实验报告

单⽚机AD转换实验报告三、实验电路五、实验结果将程序产⽣的⼗六进制代码加载到proteus中,运⾏仿真,调节滑动变阻器改变AD 输⼊的电压,可以到如图7.1—7.4所⽰的实验结果。
图7.1输⼊电压0.76V 图7.2输⼊电压1.31V图7.3输⼊电压2.50V 图7.4输⼊电压4.99V四、程序清单及流程图程序⼀(查询):ORG 0000HLJMP MAINORG 0010HMAIN: MOV SP, #2FH CLR EAMOV DPTR, #0EFF8H MOVX @DPTR, AJB P3.3, $MOVX A, @DPTRMOV B, #51DIV ABMOV 7AH, AMOV A, BLCALL CL1MOV 79H, AMOV A, BLCALL CL1MOV 78H, AMOV 7BH, #0AHLCALL DISPLJMP MAINDISP: PUSH ACCPUSH DPHSETB RS1SETB RS0MOV R0, #78HMOV R7, #04HMOV R2, #01HDISP1: MOV A, @R0MOV DPTR, #DKMOVC A, @A+DPTRMOV P2, R2MOV P0, AJNB P2.2, DISP2CLR P0.7DISP2: LCALL DELAYMOV A, R2RL AMOV R2, AINC R0 INC R1DJNZ R7, DISP1POP PSWPOP DPLPOP DPHPOP ACCRETDK: DB 0C0H,0F9H,0A4H,0B0H, 99H,92H,82H,0F8H,80H,90H,0FFH DELAY: MOV R3, #02HLOP: MOV R4, #250DJNZ R4, $DJNZ R3, LOPRETCL1: CJNE A, #25, L00PLJMP L00P2L00P: JNC L00P1L00P2: MOV B, #10DIV ABLJMP L00P3L00P1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #6MOV B, #51DIV ABADD A, #5L00P3: RETEND开始初始化调⽤延时,等待转换读取数据,并转换调⽤显⽰程序启动下⼀次A/D转换程序⼆(延时):延时⽅式只需将查询指令改为⼀个调⽤延时指令,在主程序后加⼊100us延时程序即可。
单片机实验(AD转换)

实验三 A/D、D/A转换实验一、实验目的1.熟悉DAC0832并行接口数模转换器和TLC2543串行接口模数转换器的基本原理和编程方法。
2.进一步熟悉单片机应用系统开发步骤和方法。
二、实验电路实验所用元件清单如下表所示:1. 串行A/D转换器TLC25432.并行D/A转换器DA0832三、相关知识(一)串行A/D转换器TLC25431. TLC2543的特性与引脚TLC2543是TI公司的TLC2543 12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。
由于是串行输入结构,能够节省80C51系列单片机的I/O资源,而且价格适中。
主要特点如下:●12位分辨率A/D转换器。
●在工作温度范围内10 s转换时间。
●11个模拟输入通道。
●3路内置自测试方式。
●采样率为66kbps。
●线性误差+1LSB(max)。
●有转换结束(EOC)输出。
●具有单、双极性输出。
●可编程的MSB或LSB前导。
●可编程的输出数据长度。
2. TLC2543的工作过程TLC2543的工作过程分为两个周期:I/O 周期和实际转换周期。
1)I/O周期I/O周期由外部提供的I/O CLOCK定义,延续8、12或16个时钟周期,决定于选定的输出数据长度。
器件进入I/O周期后同时进行两种操作。
(1)在I/O CLOCK的前8个脉冲的上升沿,以MSB前导方式从DA TA INPUT端输入8位数据流到输入寄存器。
其中前4位为模拟通道地址,控制14通道模拟多路器从11个模拟输入和3个内部自测电压中,选通一路送到采样保持电路,该电路从第4个I/O CLOCK脉冲的下降沿开始,对所选信号进行采样,直到最后一个I/O CLOCK脉冲的下降沿。
I/O周期的时钟脉冲个数与输出数据长度(位数)有关,输出数据长度由输入数据的D3、D2选择为8、12或16位。
当工作于12或16位时,在前8个时钟脉冲之后,DATA INPUT无效。
(2)在DATA OUT端串行输出8、12或16位数据。
AD转换实验报告

实验报告题目: 班级: 时间: 姓名:实验目的熟悉数模转换的基本原理,掌握D/A 的使用方法。
一、实验设备CPU 挂箱、8086CPU 模块、示波器。
二、实验内容利用D/A 转换器产生锯齿波、三角波和方波。
三、实验原理图本实验用A/D 、D/A 电路四、实验步骤1、实验连线 CS0 CS0832 示波器 DOUT DS 跳线:1 22、用实验箱左上角的“VERF.ADJ ”电位器调节0832的8脚上的参考电压至5V 。
3、调试程序并全速运行,产生不同的波形。
4、用示波器观察波形。
六、实验提示利用电位器“VERF.ADJ ”可以调零,“VERF.ADJ ”电位器调整满偏值。
DAC0832在本实验中,工作在双缓冲接口方式下。
当A1=0时可锁存输入数据;当A1=1时,可启动转换输出。
所以要进行D/A 转换需分二步进行,方法如下:MOV DX,ADDRESS ;ADDRESS 片选信号偶地址MOV AL,DATAOUT DX,AL ;锁存数据ADD DX,2OUT DX,AL ;启动转换七、程序框图程序一 产生锯齿波 程序二 产生方波(实验程序名:dac-1.asm ) (实验程序名:dac-2.asm )N 数据清零 数据=FFH ?数据加一开始 开始 锁存数据 转换输出 数据00送BX 寄存BX 中的数据输出到0832 延时 数据FF 送B X 寄存器 延时程序三产生三角波(实验程序名:dac-3.asm)开始数据清零锁存数据转换输出数据加一数据=FFH?数据=FFH锁存数据转换输出数据减一数据=0?八、程序代码清单:DAC-1,产生锯齿波:assume cs:codecode segment publicorg 100hstart: mov dx,04a0hup1: mov bx,0Up2: mov ax,bxout dx,ax ;锁存数据mov dx,04a2hout dx,ax ;输出使能mov dx,04a0hinc bx ;数据加一jmp up2code endsend startDAC-2,产生方波:assume cs:codecode segment publicorg 100hstart: mov dx,04a0hmov cx,04fhup1: mov bx,0up2: mov ax,bxout dx,axmov dx,04a2hout dx,axmov dx,04a0hloop up1mov cx,04fhup4: mov bx,0ffhup3: mov ax,bxout dx,axmov dx,04a2hout dx,axmov dx,04a0hloop up4jmp startcode endsend startDAC3,产生三角波:assume cs:codecode segment publicorg 100hstart: mov dx,04a0hmov bx,0up: mov ax,bxout dx,ax ;锁存数据mov dx,04a2hout dx,ax ;输出使能inc bxmov dx,04a0hcmp bx,0ffhjne up ;产生三角波上升沿down: mov ax,bxout dx,ax ;锁存数据mov dx,04a2hout dx,ax ;输出使能dec bxmov dx,04a0hcmp bx,0jne down ;产生三角波下降沿jmp upcode endsend start九、实验代码所得波形:图1:实验所得锯齿波图形图2:实验所得方波图形图3:实验所得三角波图形十、实验分析与总结1、实验指导书中已给出一部分内容的完整代码,需要自己思考改动的地方不多,因此实验难度不大。
实验六ADC模数转换实验

实验六、ADC0809模数转换实验一、实验目的1、掌握ADC0809模数转换芯片与单片机的连接方法及ADC0809的典型应用2、掌握用查询的方法、中断方法完成模数转换程序的编写方法二、实验说明本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式AD转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路、AD转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号,下图为芯片的引脚图各引脚功能如下:(1)IN0-IN7:八路模拟信号输入端(2)ADDA、ADDB、ADDC:三位地址译码输入端,八路模拟信号选择由这三个端口控制(3)CLOCK:外部时钟输入端(4)D0-D7:数字量输出端(5)OE:AD转换结果输出允许控制端,当OE为高电平时,允许AD转换结果从D0~D7端输出。
(6)ALE:地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE 信号有效时将八路地址锁存。
(7)START:启动AD转换信号输入端,当START端输入一个正脉冲时,将进行AD 转换(8)EOC:AD转换结束信号输出端,当AD转换结束以后,EOC输出高电平。
(9)VREF(+)、VREF(-):正负基准电压输入端,基准正电压为+5V。
(10)VCC、GND:芯片的电源端和接地端。
三、实验步骤1、单片机最小应用系统1的P0口接AD转换的D0~D7,单片机最小应用系统1的Q0~Q7接AD转换的A0~A7,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别连接AD转换的WR、RD、P2.0、CLOCK、INT1,AD转换的IN接+5V,单片机最小应用系统的P1口接LED灯。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加源程序,进行编译,直到编译无误。
单片机实验报告AD转换器实验

.
西华大学实验报告(机械类)
开课学院及实验室:机械工程与自动化学院运算机机房实验时刻:2021年 4月 7 日
一、实验目的
把握SPI总线的ADC0832(或TLC549)数模转换器的利用方式。
二、实验内容
利用ADC0832搜集直流0--5V的电压,并在LCM1602上显示结果。
三、实验电路
四、实验程序
;
DispBuffer[2]=(ad_data%10)+0x30; DispBuffer[3]='v';
DispBuffer[5]='\0';
LCD_Prints(6,1,DispBuffer);
}
}
五、实验步骤
1)依如实验原理图编写程序,用“keil uVision4”编译元件进行编译,如未通过,修改程序,直至通过。
(2)用软件将所编程序的“HEX”码下载到实验板的STC89C52芯片中。
(3)运行程序,用手凝动实验板左端的可变电阻,观看LCM1602是不是显现“改变可变电阻时,LCM1602的数值是不是在之间变更。
若是不符合要求,改写程序,按步骤(1)开始从头做实验,直至成功。
六、附录
用本实验能够开发哪些实际仪表?
答:用本实验能够开发电压表,称重仪等实际仪表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机AD模数转换实验报告
一、实验目的和要求
1、掌握单片机与ADC0809的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
二、设计要求。
1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。
2、在0809的某一模拟量输入通道上接外部模拟量。
3、在单片机的外部扩展数码管显示器。
4、分别采用延时和查询的方法编写A/D 转换程序。
5、启动A/D转换,将输入模拟量的转换
结果在显示器上显示。
三、电路原理图。
图1、电路仿真图
四、实验程序流程框图和程序清单。
1、查询法:
ORG 0000H
START: LJMP MAIN
ORG 0100H
MAIN: MOV SP, #2FH NT: MOV DPTR, #0FF78H MOVX @DPTR, A LOOP: JB P3.3, LOOP MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP NT DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: M OV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回
display 送百分位字符代码送位选信号延时1ms 送十分位字符代码送位选信号延时1ms 送个位及小数点字符代码送位选信号延时1ms 熄灭第四位数码管延时1ms 返回2、延时法:
ORG 0000H START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH LOOP: MOV DPTR, #0FF78H MOVX @DPTR, A LCALL DELAY MOVX A, @DPTR MOV B, #51 DIV AB MOV R0, A MOV A, B MOV B, #5 DIV AB MOV R1, A MOV R2, B LCALL DIR SJMP LOOP DIR: MOV R7, #0 SJMP LOOP1 BH: MOV A, R1 MOV R2, A LOOP1: MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R2 MOVC A, @A+DPTR MOV P1, A LCALL DELAY INC R7 CJNE R7, #2, BH MOV DPTR, #WK MOV A, R7 MOVC A, @A+DPTR MOV P2, A MOV DPTR, #DK MOV A, R0 MOVC A, @A+DPTR ANL A, #7FH MOV P1, A LCALL DELAY RET DELAY: M OV R5, #01H DL1: MOV R4, #8EH DL0: MOV R3, #02H DJNZ R3, $ DJNZ R4, DL0 DJNZ R5, DL1 RET WK: DB 10H DB 20H DB 40H DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
开始启动AD 延时从AD中取数据数据处理结束调显示子函数
END
五、实验结果。
图2、仿真结果
六、实验总结。
由图4可知,设计要求2的内容已经成功完成;由图5可以看出要求3的内容已经成功完成。
通过这次实验,掌握了通过8255来扩展单片机的I/O口线,对8255已经有了充分的认识,以实践操作来验证理论知识,学到了很多东西。
七、思考题。
采用中断的方法编写A/D转换程序,完成实验要求
ORG 0000H
START: LJMP MAIN
ORG 0013H
LJMP INTT1
ORG 0100H
MAIN: MOV SP, #2FH
SETB EA
SETB EX1
MOV DPTR, #0FF78H
MOVX @DPTR, A
HERE: LJMP HERE
DISPLAY: MOV R7, #0
SJMP LOOP1
BH: MOV A, R1
MOV R2, A
LOOP1: MOV DPTR, #WK
MOV A, R7
MOVC A, @A+DPTR
MOV P2, A
MOV DPTR, #DK
MOV A, R2
MOVC A, @A+DPTR
MOV P1, A
LCALL DELAY
INC R7
CJNE R7, #2, BH
MOV DPTR, #WK
MOV A, R7
MOVC A, @A+DPTR
MOV P2, A
MOV DPTR, #DK
MOV A, R0
MOVC A, @A+DPTR
ANL A, #7FH
MOV P1, A
LCALL DELAY
RET
DELAY: MOV R5, #01H
DL1: MOV R4, #8EH
DL0: MOV R3, #02H
DJNZ R3, $
DJNZ R4, DL0
DJNZ R5, DL1
RET
INTT1: MOVX A, @DPTR
MOV B, #51
DIV AB
MOV R0, A
MOV A, B
MOV B, #5
DIV AB
MOV R1, A
MOV R2, B
LCALL DISPLAY
MOV DPTR, #0FF78H
MOVX @DPTR, A
RETI
WK: DB 10H,20H,40H
DK: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
图3、思考题仿真结果。