单片机课设AD转换
- 格式:doc
- 大小:796.40 KB
- 文档页数:12
单片机课程设计报告题目:ADC转换生成正弦波形专业:测控技术与仪器班级:姓名:学号:指导教师:2015年1 月14 日目录第1章系统设计方案第2章系统硬件设计2.1 主控制器电路2.2 模数转换电路2.3 显示电路第3章系统软件设计3.1 系统整体流程3.2 直流电压采集3.3 交流电压采集第4章系统调试4.1 xxx的调试4.2 xxx的调试。
第5章结论与总结5.1 结论5.2 总结第1章系统设计方案使用STC89c52单片机与ADC0804芯片实现A/D转换直流电压采集,转换之后在LCD1602上显示所采集的直流电压值。
使用STC89c52单片机与ADC0804芯片实现A/D转换交流电压采集,转换之后在KS0108上显示交流电压动态波形。
第2章系统硬件设计2.1 主控制器电路(1)AT89C52单片机(2)晶振电路(3)复位电路2.2 模数转换电路2.3 显示电路(1)LCD1602显示电路(2)KS0108显示电路第3章系统软件设计3.1系统整体流程图3.2直流电压采集程序(1)直流电压采集主程序#include<reg52.h>#include"adc0804.h"#include"lcd1602.h"#define uchar unsigned char #define uint unsigned int #define ulong unsigned longvoid datds();void display();uchar dat=0;uchar a[]="the value is "; uchar b[]={0,0};void main(){uchar i=0;init();for(i=0;i<13;i++){comd(0x80+i);write(a[i]);}while(1){datc();dat=datw();datds();display();}}void datds(){b[0]=dat*5/255;b[1]=dat*50/255%10;}void display(){comd(0xc4);write(b[0]+0x30);comd(0xc5);write('.');comd(0xc6);write(b[1]+0x30);comd(0xc7);write('V');}(2)头文件lcd1602.h#include<reg52.h>#define uchar unsigned char #define uint unsigned int #define ulong unsigned longvoid write(uchar datee); void comd(uchar com);void init();sbit en=P3^4;sbit rs=P3^5;void init(){en=0;comd(0x38);comd(0x0c);comd(0x06);comd(0x01);}void comd(uchar com){rs=0;delay(50);P0=com;delay(50);en=1;delay(50);en=0;delay(50);}void write(uchar datee){rs=1;delay(50);P0=datee;delay(50);en=1;delay(50);en=0;delay(50);}(3)头文件adc0804.h#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longchar datw();void datc();void datd();void delay(uint t);sbit rd=P3^1;sbit wr=P3^2;sbit intr=P3^3;sbit cs=P3^0;void datc() //写命令{cs=0;wr=1;delay(200);wr=0;delay(200);wr=1;while(intr);cs=1;}char datw() //读数据{uchar j=0;cs=0;rd=1;delay(200);rd=0;delay(200);j=P1;rd=1;cs=1;return j;}void delay(uint t){while(t--);}3.3交流电压采集程序(1)交流电压采集主程序#include<reg52.h>#include"adc0804.h"#include"lcd.h"#define uchar unsigned char #define uint unsigned int #define ulong unsigned longvoid datedis();void display();void qing(uchar q2);void qingp();sbit cs1=P0^1;sbit cs2=P0^2;uchar dat=0;uchar i;uchar j,da;void main(){init();while(1){ cs1=0;cs2=1;qingp();display();cs2=0;cs1=1;qingp();display();}}void qing(uchar q2){uchar q1;for(q1=0;q1<8;q1++){comd(184+q1);comd(0x40+q2);write(0);}}void qingp(){uchar q1,q2;for(q1=0;q1<8;q1++){comd(184+q1);comd(0x40);for(q2=0;q2<64;q2++)write(0);}}void display(){uchar x=0;for(x=0;x<64;x++){//qing(x);datc();dat=datw();datedis();comd(i);comd(64+x);write(j);}}void datedis(){ uchar j0=1;da=dat/4;i=184+da/8;j=j0<<(da%8);}(2)头文件lcd.h#include<reg52.h>#define uchar unsigned char #define uint unsigned int #define ulong unsigned longvoid write(uchar datee); void comd(uchar com);void init();sbit en=P3^6;sbit rs=P3^7;void init(){en=0;comd(4);comd(0x3f);}void comd(uchar com){rs=0;delay(50);P2=com;delay(50);en=1;delay(50);en=0;delay(50);}void write(uchar datee) {rs=1;delay(50);P2=datee;delay(50);en=1;delay(50);delay(50);}(3)头文件ADC0804.h#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longchar datw();void datc();void datd();void delay(uint t);sbit rd=P3^1;sbit wr=P3^2;sbit intr=P3^3;sbit cs=P3^0;void datc() //写命令{cs=0;wr=1;delay(200);wr=0;delay(200);wr=1;while(intr);cs=1;}char datw() //读数据{uchar j1=0;cs=0;rd=1;delay(200);rd=0;delay(200);j1=P1;cs=1;return (j1);}void delay(uint t) {while(t--);}第4章系统调试4.1 直流电压采集的调试程序调试采用proteus仿真软件调试采集电压LCD显示结果4.2交流电压采集的调试第5章结论与总结5.1 结论(1)直流电压采集调试中,采集电压为5V的50%(即2.5V),而LCD1602显示值为 2.4V,误差很小,说明实验硬件和软件都很成功,可以成功实现直流电压采集并显示电压值的功能。
目录A/D转换系统设计.................................................................................................................... - 1 -摘要和关键词.......................................................................................................................................... - 1 - 第一章设计任务与要求.......................................................................................................... - 2 -1.1、设计题目......................................................................................................................................... - 2 -1.2、设计目的......................................................................................................................................... - 2 -1.3、设计要求......................................................................................................................................... - 2 -1.4、完成的任务..................................................................................................................................... - 2 - 第二章方案比较与论证.......................................................................................................... - 2 -2.1、方案设想......................................................................................................................................... - 2 -2.2器件选择............................................................................................................................................ - 2 - 第三章芯片简介...................................................................................................................... - 3 -3.1 ADC0808简介................................................................................................................................... - 3 -3.1.1ADC0808的内部逻辑结构..................................................................................................... - 3 -3.1.2ADC0808引脚结构................................................................................................................. - 3 -3.2、8051单片机引脚图与引脚功能简介 ............................................................................................ - 5 -3.2.1、电源: ................................................................................................................................... - 5 -3.2.2 时钟: ....................................................................................................................................... - 5 -3.2.3控制线: .................................................................................................................................... - 5 -3.2.4、I/O线.................................................................................................................................. - 6 -3.3、8255A .............................................................................................................................................. - 6 - 第四章设计方案及程序流程图.............................................................................................. - 7 -4.1、设计方案...................................................................................................................................... - 7 -4.2、系统框图......................................................................................................................................... - 7 -4.3、程序流程图..................................................................................................................................... - 7 - 第五章PROTEUS仿真电路................................................................................................... - 8 -5.1、复位电路......................................................................................................................................... - 8 -5.2、振荡源............................................................................................................................................. - 9 -5.3、二分频电路................................................................................................................................... - 10 -5.4、AD转换电路 ................................................................................................................................ - 10 -5.5、显示电路....................................................................................................................................... - 11 -5.6 8255A电路...................................................................................................................................... - 11 -5.7总电路仿真...................................................................................................................................... - 12 - 第六章程序............................................................................................................................ - 12 -第七章感想体会.................................................................................................................... - 14 -第八章参考文献.................................................................................................................... - 15 -A/D转换系统设计摘要和关键词A/D转换是指将模拟信号转换为数字信号,这在信号处理、信号传输等领域具有重要的意义。
一、实验目的1、掌握单片机与ADC0809的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
二、实验要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。
2、在0809的某一模拟量输入通道上接外部模拟量。
3、在单片机的外部扩展数码管显示器。
4、分别采用延时和查询的方法编写A/D转换程序。
5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。
三、实验电路图四、实验程序流程框图和程序清单1、查询ORG 0000H START:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8H MOVX @DPTR, ALOOP1:JNB P3.2, LOOP1MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, A LCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEH LOOP2:MOV P2, R3 MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETEND2、延时ORG 0000HSTART:LJMP MAINORG 0100HMAIN: MOV SP, #6FHCLR EALOOP: MOV DPTR, #0fef8HMOVX @DPTR, ALCALL DELAY100MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, AMOV A, #10MOV 22H, AMOV A, BLCALL CHULIMOV 21H, AMOV A, BLCALL CHULIMOV 20H, ALCALL DIRLJMP LOOPDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #0FEHLOOP2:MOV P2, R3MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JNB ACC.3, LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1LP2: MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LP3: RETDELAY100: MOV R6,#01H;误差 0usDL0:MOV R5,#2FHDJNZ R5,$DJNZ R6,DL0RETEND3、中断ORG 0000HSTART:LJMP MAINORG 0003HLJMP INTT0ORG 0100HMAIN: MOV SP, #6FHSETB EASETB EX0MOV DPTR, #0000HMOVX @DPTR, AHERE: LJMP HEREINTT0:MOVX A, @DPTRMOV B, #51DIV ABMOV 23H, A //整数部分放22H中MOV A, #10MOV 22H, A //小数点放22H中MOV A, BLCALL CHULIMOV 21H, A //小数点后第一位放21H中 MOV A, BLCALL CHULIMOV 20H, A //小数点后第一位放21H中 LCALL DIRMOV DPTR, #0000HMOVX @DPTR, ARETIDIR: PUSH ACCPUSH DPHPUSH DPLPUSH PSWSETB RS1SETB RS0MOV R0, #20HMOV R3, #01HLOOP2:MOV P2, R3 //位控码初始值MOV DPTR, #TAB1MOV A, @R0MOVC A, @A+DPTRMOV P1, ALCALL DELAYINC R0MOV A, R3JB ACC.3 LOOP3RL AMOV R3, ALJMP LOOP2LOOP3:POP PSWPOP DPLPOP DPHPOP ACCRETTAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,07FH DELAY:MOV R7, #01HDL1: MOV R6, #8EHDL0: MOV R5, #02HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1RETCHULI:CJNE A, #25, LPLJMP LP2LP: JNC LP1MOV B, #10MUL ABMOV B, #51DIV ABLJMP LP3LP1: CLR CSUBB A, #25MOV B, #10MUL ABCLR CSUBB A, #5MOV B, #51DIV ABADD A, #5LJMP LP3LP2: MOV A, #5MOV B, #0LP3: RETEND五、实验结果六、实验总结通过本次试验掌握了A/D转换的电路设计,掌握了AD0808的使用以及编址技术,熟悉了A/D转换的方法和A/D转换的程序设计方法。
基于单片机的AD转换电路与程序设计单片机(MCU)是一种集成了处理器核心、内存、输入输出接口和各种外围设备控制器等功能的集成电路。
MCU通常用于嵌入式系统,广泛应用于各个领域,例如家电、工业控制、汽车电子等。
其中,AD转换是MCU中的一个重要模块,用于将模拟信号转换成数字信号。
在应用中,常常需要将外部的温度、湿度、压力或光照等模拟信号进行转换和处理。
AD转换电路一般由模拟输入端、引脚连接、采样保持电路、比较器、取样调节电路、数字输出端等部分组成。
模拟输入端负责接收外部的模拟量信号;引脚连接将模拟输入信号引到芯片的模拟输入端;采样保持电路负责将引脚输入的模拟信号进行采样和保持,保证AD转换的准确性;比较器用于将模拟信号与参考电压进行比较,判断信号的大小;取样调节电路用于调整模拟信号的边界;数字输出端将模拟信号转换成数字信号输出给MCU。
在程序设计方面,MCU通常使用C语言进行编程。
程序设计分为初始化和数据处理两个步骤。
初始化阶段主要包括设置IO口、初始化外设、设置模拟输入通道等工作。
数据处理阶段主要包括数据采样、数值转换、数据处理和输出等工作。
下面以一个简单的温度采集系统为例进行说明。
首先,在初始化阶段,需要设置IO口和外设,以及设置模拟输入通道。
具体步骤如下:1.设置IO口:根据具体需要配置MCU的引脚功能和工作模式。
2.初始化外设:根据需要初始化ADC模块,包括设置采样频率、参考电压等参数。
3.设置模拟输入通道:选择需要转换的模拟输入通道。
接下来,在数据处理阶段,需要进行数据采样、数值转换和数据处理。
具体步骤如下:1.数据采样:使用ADC模块进行模拟信号的采样,将采样结果保存到寄存器中。
2.数值转换:将采样结果转换成数字信号,可以使用如下公式进行转换:数字信号=(ADC采样结果/采样最大值)*参考电压3.数据处理:根据具体需求进行数据处理,例如计算平均值、最大值或最小值,也可以进行滤波或校正。
51单片机ad转换流程51单片机是一种广泛应用于嵌入式系统中的微控制器。
与其他单片机相比,51单片机的特点之一是其模拟到数字转换功能(AD转换),它允许将模拟信号转换为数字量,以便进行数字信号处理和控制。
在本文中,我们将以“51单片机AD转换流程”为主题,详细介绍AD转换的步骤和相关概念。
第一步:了解AD转换的基本概念模拟到数字转换(AD转换)是电子系统中一种常见的操作。
它涉及将连续的模拟信号转换为离散的数字信号,以便进行数字信号处理。
AD转换的结果通常以二进制形式表示,可以被计算机或其他数字处理设备使用。
在AD转换过程中,最重要的参数是分辨率和采样率。
分辨率是指AD转换器能够分辨的最小信号变化量,通常以比特数表示。
例如,8位AD转换器的分辨率为2^8,即256个离散的信号水平。
采样率是指AD转换器每秒钟进行的样本数量,通常以赫兹(Hz)表示。
第二步:准备硬件连接在进行AD转换之前,需要连接电源、待转换的模拟信号源和51单片机上的AD输入引脚。
具体的硬件连接方式可以根据具体的应用需求和开发板设计进行调整。
通常情况下,待转换的模拟信号将通过电阻网络与AD输入引脚相连接。
这个电阻网络起到电压分压的作用,将输入信号的幅度限制在AD转换器可接受的范围内。
开发板上的AD输入引脚通常还具有可选的电容网络,用于去除输入信号中的高频噪声。
第三步:配置AD转换器参数在开始AD转换之前,需要通过编程设置51单片机上的AD转换器参数。
这些参数包括分辨率、输入通道选择、参考电压选择和采样率等。
这些参数的设置是通过对寄存器的操作来实现的。
通过写入相应的寄存器值,我们可以选择转换的分辨率。
51单片机上的AD转换器可以支持不同的分辨率,如8位、10位或12位。
选择转换的输入通道也是一个重要的步骤。
通常情况下,AD转换器具有多个输入信道,可以同时转换多个信号。
需要根据具体的信号源,选择合适的输入通道。
参考电压的选择也要根据具体的应用需求来确定。
实验十二A/D转换实验一、实验目的1.掌握A/D转换与单片机接口的方法。
2.了解A/D芯片0809转换性能及编程方法。
3.用AT89C51单片机控制ADC0809将模拟信号(0~5V)转换成数值量(0~255),再控制LED数码管以十六进制实时显示出来。
ADC0809为模/数(A/D)转换器。
4.用PROTEUS实现该接口的电路设计和程序设计,并进行实时交互仿真。
5.要求使用查询和中断两种方式编写程序。
二、电路设计1.从PROTEUS库中选取元件①AT89C51.BUS:总线式的单片机;②RES:电阻;③LED-BLUE:蓝色发光二极管;④CAP、CAP-ELEC:电容、电解电容;⑤CRYSTAL:晶振;⑥AD0808:8位A/D转换器;⑦74LS28:四路或非门;⑧NOT :非门;⑨74LS373:八 D 锁存器;⑩POT-LIN :滑动变阻器;○11RESPACK-8:8位排阻。
2.放置元器件3.放置电源和地4.连线5.元器件属性设置6.电气检测三、源程序设计、生成目标代码文件1.流程图2.源程序设计3.源程序编译汇编、生成目标代码文件通过菜单“sourc e →Build All ”编译汇编源程序,生成目标代码文件。
若编译失败,可对程序进行修改调试直至汇编成功。
四、PROTEUS 仿真1.加载目标代码文件2.仿真 单击按钮,启动仿真。
U1X1C1C2U4U5RV1U6U7:AU7:B D1U10D2D3D4U11U12U13D5U14D6D7D8U15U16U17RP1五、思考题:1.目前应用较广泛的A/D 转换器主要有哪几种类型?它们各有什么特点?2.在一个AT89C51单片机与一片ADC0809组成的数据采集系统中,ADC0809的8个通道的地址为7FF8H~7FFFH,试画出相应的接口电路图。
单片机adc进行连续电压转换
单片机的ADC(模数转换器)可以用于连续电压转换。
通常情况下,单片机的ADC模块可以配置为连续转换模式,这样就可以持续地将模拟输入信号转换为数字值。
下面我将从硬件配置和软件编程两个方面来详细说明。
硬件配置:
1. 确保选择的单片机具有内置ADC模块,或者外部ADC芯片与单片机连接。
2. 确保输入电压范围在ADC的输入范围内,否则需要外部电压分压电路。
3. 连接模拟输入信号到ADC引脚,并连接ADC引脚到单片机的对应引脚。
4. 确保ADC的参考电压源正确连接,以确保准确的电压转换。
软件编程:
1. 首先配置ADC的工作模式为连续转换模式,这通常需要设置ADC控制寄存器。
2. 确定转换的采样率,即多久进行一次转换,这取决于应用的要求和单片机的性能。
3. 在主程序中编写ADC中断服务程序或者轮询ADC转换完成标志位的状态,以获取转换结果。
4. 在获取转换结果后,可以对数字值进行进一步处理,比如显示在数码管上、发送到串口或者存储到内存中等。
总之,要实现单片机ADC的连续电压转换,需要合理配置硬件连接,并编写相应的软件程序来控制ADC的工作模式和获取转换结果。
这样就可以实现持续不间断地将模拟电压信号转换为数字值。
单片机AD转换实验代码及电路图ADC0809 ADC0832描述:单片机AD原理图图片:这是自己这段时间做的AD转换的实验以下是程序的源代码,希望能对大家有用,同时希望和大家一起讨论共同进步ORG 00HSTART: MOV P3,#0FFH;CLR P3.3 ;CS=0选中芯片进行AD转换CLR P3.6 ;NOPSETB P3.6 ;WR由低到高,开始转换NOPJB P3.2,$;查询转换结束产生INTR信号(低电平有效)SETB P3.3;停止AD转换NOPMOV P1,#0FFHCLR P3.3 ;选中ADCLR P3.7;读取转换数据结果NOPSETB P3.7;数据转换完成MOV A,P1;SETB P3.3;数据转换完成jisuan:MOV B,#100DIV AB ;求转换后的百位MOV R3,A;将百位存入R3MOV A,B;余数存入AMOV B,#10;分离十位DIV AB ;B存入余数MOV R2,A;R2存十位MOV R0,B;个位存入R0;SETB P2.7;不明白作用MOV R4,#40;数码管扫描次数QQQQ: MOV R1,#255;延时;数码管动态扫描显示QQQ: SETB P2.1;百位显示SETB P2.2;MOV A,R3;百位显示MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,A;段选CLR P2.0NOP;十位显示SETB P2.0SETB P2.2MOV A,R2MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ACLR P2.1NOP;个位显示SETB P2.0SETB P2.1MOV A,R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ANOPCLR P2.2;重复显示DJNZ R1,QQQDJNZ R4,QQQQSJMP STARTTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH; END。