文档库 最新最全的文档下载
当前位置:文档库 › 数字电压表的Verilog程序

数字电压表的Verilog程序

数字电压表的Verilog程序
数字电压表的Verilog程序

//********************************************************* //** TLC549控制程序

//********************************************************* module TLC549(clk,reset,sdata,cs,adc_clk,data_out);

input clk,reset,sdata;

output cs,adc_clk;

output [7:0]data_out;

reg cs;

reg [7:0]data_out;

reg [7:0]data_out_r;

reg [7:0]count_clk;

reg adc_clk_r;

reg clk_r;

reg mark; //标识八位数据

reg flag ; //标识八位数据接收完

reg [3:0]cnt;//标识八位数的个数

parameter s0=0,s1=1,s2=2;

reg [2:0]c_st;

reg[5:0] temp; //1.4us 的计数

assign adc_clk=adc_clk_r;

//assign adc_clk_r=~clk_r;

always@(posedge clk)

begin if (count_clk<119) count_clk=count_clk+1;

else begin count_clk<=0;clk_r=~clk_r;end

end

always@(posedge clk)

begin

adc_clk_r=~clk_r;

end

always@(posedge clk_r or negedge reset)

begin if (!reset) c_st<=s0;

else case (c_st)

s0:begin cs<=1;mark<=0;

if (temp==3) begin c_st<=s1;temp<=0;end

else begin temp<=temp+1;c_st<=s0;end

s1:begin cs<=0;mark<=1;

c_st<=s2;

end

s2:begin cs<=0;mark<=1;

if(flag==1)c_st<=s0;else c_st<=s2;

end

default:c_st<=s0;

endcase

end

always@(posedge adc_clk_r)

begin

if(mark==1) begin

if(flag==1) data_out<=data_out_r;

else begin data_out_r<={data_out_r[6:0],sdata};end

end

end

always@(posedge adc_clk_r)

begin

if(mark==1)

begin if(cnt==8) begin cnt<=0;flag<=1;end

else begin cnt<=cnt+1;flag<=0;end

end

end

endmodule

//********************************************************* //** 10进制加法器

//********************************************************* module cnt10(V1,V2,q,c_in,c_out);

input[3:0]V1,V2;

input c_in;

output [3:0]q;

output c_out;

reg [3:0]q;

reg a,b;

reg c_out;

always@(V1,V2)

if((V1[3:0]+V2[3:0]>9)||((V1[3:0]>=8)&&(V2[3:0]>=8))||((V1[3:0]>=9)&&(V2[3:0]>=7))||((V1[ 3:0]>=7)&&(V2[3:0]>=9))) a=1;

else a=0;

if(V1[3:0]+V2[3:0]==9) b=1;

else b=0;

end

always@(V1,V2,c_in,a)

begin if(a==1&&c_in==1&&b==0) q[3:0]<=V1[3:0]+V2[3:0]+7;

else if(a==1&&c_in==0&&b==0) q[3:0]<=V1[3:0]+V2[3:0]+6;

else if(a==0&&c_in==1&&b==0) q[3:0]<=V1[3:0]+V2[3:0]+1;

else if(a==0&&c_in==1&&b==1)q[3:0]<=V1[3:0]+V2[3:0]+7;

else q[3:0]<=V1[3:0]+V2[3:0];

end

always@(a,V1,V2,c_in)

begin if(a==1||(V1[3:0]+V2[3:0]==9&&c_in==1))

c_out=1;

else c_out=0;

end

endmodule

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

//** 数字转换查找表

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

module lookup(V,q);

input [7:0]V;

output [11:0]q;

reg [11:0]q;

reg [11:0]HB,LB;

wire d1,d2,d3;

always@(V)

begin case(V[7:4]) //--A/D值的高4位转换成3位BCD码

4'b1111: HB<=12'b001001000000; //--2.40

4'b1110: HB<=12'b001000100100; //--2.24

4'b1101: HB<=12'b001000001000; //--2.08

4'b1100: HB<=12'b000110010010; //--1.92

4'b1011: HB<=12'b000101110110; //--1.76

4'b1010: HB<=12'b000101100000; //--1.60

4'b1001: HB<=12'b000101000100; //--1.44

4'b1000: HB<=12'b000100101000; //--1.28

4'b0111: HB<=12'b000100010010; //--1.12

4'b0110: HB<=12'b000010010110; // --0.96

4'b0101: HB<=12'b000010000000; // --0.80

4'b0100: HB<=12'b000001100100; //--0.64

4'b0011: HB<=12'b000001001000; //--0.48

4'b0010: HB<=12'b000000110010; //--0.32

4'b0001: HB<=12'b000000010110; //--0.16

4'b0000: HB<=12'b000000000000; // --0.00

default: HB<=12'b111111111111;

endcase

case(V[3:0]) //--A/D值低4位变为3位BCD码

4'b1111: LB<=12'b000000010101; // --0.15

4'b1110: LB<=12'b000000010100; // --0.14

4'b1101: LB<=12'b000000010011; // --0.13

4'b1100: LB<=12'b000000010010; // --0.12

4'b1011: LB<=12'b000000010001; // --0.11

4'b1010: LB<=12'b000000010000; // --0.10

4'b1001: LB<=12'b000000001001; // --0.09

4'b1000: LB<=12'b000000001000; // --0.08

4'b0111: LB<=12'b000000000111; // --0.07

4'b0110: LB<=12'b000000000110; // --0.06

4'b0101: LB<=12'b000000000101; // --0.05

4'b0100: LB<=12'b000000000100; // --0.04

4'b0011: LB<=12'b000000000011; // --0.03

4'b0010: LB<=12'b000000000010; // --0.02

4'b0001: LB<=12'b000000000001; // --0.01

4'b0000: LB<=12'b000000000000; // --0.00

default: LB<=12'b111111111111;

endcase

end

cnt10 u1(.V1(LB[3:0]),.V2(HB[3:0]),.q(q[3:0]),.c_in(1'b0),.c_out(d1)); cnt10 u2(.V1(LB[7:4]),.V2(HB[7:4]),.q(q[7:4]),.c_in(d1),.c_out(d2)); cnt10 u3(.V1(LB[11:8]),.V2(HB[11:8]),.q(q[11:8]),.c_in(d2),.c_out(d3));

endmodule

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

//** 译码显示电路

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

module scan_led(clk_1k,d,dig,seg); //模块名scan_led

input clk_1k; //输入时钟

input[11:0] d; //输入要显示的数据

output[7:0] dig; //数码管选择输出引脚output[7:0] seg; //数码管段输出引脚

reg[7:0] seg_r; //定义数码管输出寄存器

reg[7:0] dig_r; //定义数码管选择输出寄存器reg[3:0] disp_dat; //定义显示数据寄存器

reg[2:0]count; //定义计数寄存器

assign dig = dig_r; //输出数码管选择

assign seg = seg_r; //输出数码管译码结果

always @(posedge clk_1k) //定义上升沿触发进程begin

if(count<2)

count <= count + 1'b1;

else count<=0;

end

always @(posedge clk_1k)

begin

case(count) //选择扫描显示数据3'd0:disp_dat = d[11:8]; //第一个数码管

3'd1:disp_dat = d[7:4]; //第二个数码管

3'd2:disp_dat = d[3:0]; //第三个数码管

endcase

case(count) //选择数码管显示位3'd0:dig_r = 8'b01111111; //选择第一个数码管显示

3'd1:dig_r = 8'b10111111; //选择第二个数码管显示

3'd2:dig_r = 8'b11011111; //选择第三个数码管显示endcase

case(count)

3'd0:seg_r[7]=0;

3'd1:seg_r[7]=1;

3'd2:seg_r[7]=1;

endcase

end

always @(disp_dat)

begin

case(disp_dat) //七段译码

4'h0:seg_r[6:0] = 7'b1000000; //显示0

4'h1:seg_r[6:0] = 7'b1111001; //显示1

4'h2:seg_r[6:0] = 7'b0100100; //显示2

4'h3:seg_r[6:0] = 7'b0110000; //显示3

4'h4:seg_r[6:0] = 7'b0011001; //显示4

4'h5:seg_r[6:0] = 7'b0010010; //显示5

4'h6:seg_r[6:0] = 7'b0000010; //显示6

4'h7:seg_r[6:0] = 7'b1111000; //显示7

4'h8:seg_r[6:0] = 7'b0000000; //显示8

4'h9:seg_r[6:0] = 7'b0010000; //显示9 default:seg_r[6:0] = 7'b1111111;

endcase

end

endmodule

//********************************************************* //** 数字电压表顶层文件

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

单片机课程设计数字电压表

单片机课程设计 ——电压表的设计 学院:信息工程学院 专业:电子信息科学与技术 班级:2011150 学号:201115002 姓名:王冬冬 同组同学:凡俊兴 201115001

目录 1 引言 (1) 2设计原理及要求 (2) 2.1数字电压表的实现原理 (2) 2.2数字电压表的设计要求 (2) 3软件仿真电路设计 (2) 3.1设计思路 (2) 3.2仿真电路图 (3) 3.3设计过程 (3) 3.4 AT89C51的功能介绍 (4) 3.4.1简单概述 (4) 3.4.2主要功能特性 (5) 3.4.3 AT89C51的引脚介绍 (5) 3.5 ADC0809的引脚及功能介绍 (7) 3.5.1芯片概述 (7) 3.5.2 引脚简介 (8) 3.5.3 ADC0809的转换原理 (8) 3.6 74LS373芯片的引脚及功能 (8) 3.6.1芯片概述 (8) 3.6.2引脚介绍 (9) 3.7 LED数码管的控制显示 (9) 3.7.1 LED数码管的模型 (9)

LED数码管模型如图3-6所示。 (9) 3.7.2 LED数码管的接口简介 (9) 4系统软件程序的设计 (9) 4.1 主程序 (10) 4.2 A/D转换子程序 (11) 4.3 中断显示程序 (12) 5使用说明与调试结果 (13) 6总结 (13) 参考文献 (14) 附录1 源程序 (15) 附录2原理电路 (19)

1 引言 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。 目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[3]。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号

基于51单片机的简易数字电压表的设计

课题交流毫伏表设计 系别 专业 年级 姓名 学号 指导教师

目录 第一章引言 (2) 1.1摘要 (2) 1.2 设计目的 (2) 1.3设计任务及要求 (2) 1.4 课程设计过程 (2) 第二章系统方案选择和论证 (3) 2.1基本方案论证 (3) 2.2输出部分中各模块的方案选择 (3) 2.3总体方案设计 (4) 第三章AT89C51的结构 (5) 3.1AT89C51的概述 (5) 3.2 AT89C51部结构 (5) 3.3存储器和特殊功能寄存器的介绍 (5) 3.4时钟电路和复位电路 (7) 第4章元器件的选择 (7) 4..1显示 (7) 4.2 模数(A/D)芯片 (11) 4.3 数模AC/DC736芯片 (13) 4.4 OP07 (13) 第五章电路的设计 (14) 5.1时钟电路 (15) 5.2A/D转换程序 (17) 第6章系统的调试 (18) 6.1 硬件的调试 (18) 6.2软件调试 (19) 参考文献 (20) 附录 (20) 程序清单 (20) 元件清单 (25)

容摘要 本次设计主要解决AC/DC转换、A/D转换、数据处理及显示控制等几个模块。控制系统采用AT89C51单片机,A/D转换采用ADC0809。要求交流毫伏表检测信号的电压围:1mv—2v ,输入信号的频率围:10Hz-2000KHz,并在LCD1602液晶上显示测量电压信号。 关键词AT89C51单片机;电压测量;A/D转换;LCD1602液晶显示;AC/DC 转换;放大;衰减。 1.2 设计目的 本课程的任务是通过“交流毫伏表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。 1.3设计任务及要求 1、设计一个交流毫伏表,检测信号的电压围:1mv—2v。 2、输入信号的频率围:10Hz-2000KHz 3、查阅相关资料,了解交流毫伏表的各种现实发法极其特点,并着重掌 握交流毫伏表的设计及显示等。 4、熟悉并掌握个芯片的功能极其管脚分。 5、检测设计电路中所需要的各种电子元器件。 6、对设计的交流毫伏表进行装接与调试,要时设计的电路达标。 7、完成设计交实物图极其设计报告。 1.4课程设计过程 1、各组组成员讨论并进行软硬件系统设计,经指导老师同意进行具体方 案实施。 2、将可行方案硬件电路焊接在万能板上,并检查。 3、软硬件仿真。

简易数字电压表

单片机课程设计报告 简易数字电压表 一、设计任务与要求 1.电压表的测量范围为0-5V; 2.测量精度约为20mV。 二、方案设计与论证 方案一: 选择MC14433A/D转换器、CD4511等元器件设计电路: 方案二: 用单片机设计电路:

设计采用STC89C52单片机、A/D转换器ADC0809和共阴数码管为主要硬件,分析了数字电压表Proteus软件仿真电路设计及编程方法。将单片机应用于测量技术中,采用ADC0809将模拟信号转化为数字信号,用STC89C52实现数据的处理。通过数码管以扫描的方式完成显示。 方案比较: 方案1:3为半双积分式A/D转换器MC14433转换精度为读数的±0.05%±1字,并能很方便地判断出是否超欠量程,以便于量程的自动切换功能的实现,其中集成了双积分式A/D转换器所有的CMOS模拟电路和数字电路。具有输入阻抗高,功耗低,电源电压范围宽,精度高等特点,并且具有自动校零和自动极性转换功能。缺点是工作速度低,且外围电路需配基准电源,短译码驱动器和位驱动器,电路较复杂。 方案2:设计电路简单。易于控制,且性能稳定;单调试过程需要一定的编程基础,可利用Proteus软件仿真电路设计和调试。Proteus软件是一种电路分析和实物模拟仿真软件。它运行于Windows操作系统上,可以进行仿真、分析(SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大,具有系统资源丰富、硬件投入少、形象直观等优点,因此可用此软件方便调试电路。 经过以上两种方案的特点比较,方案二中的电路设计采用比较常见的元器件,对这种方案有一定的专业基础,故采用第二种方案。 三、单元电路设计与参数计算 1 A/D转换模块

单片机课程设计 数字电压表设计

《单片机原理及应用》课程设计报告书 课题名称数字电压表设计 名姓 学号 专业

指导教师 机电与控制工程学院月年日 1 任务书 电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、LED显示器为主体,设计了一款简易的数字电压表,能够测量0~5V的直流电压,最小分辨率为0.02V。 该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下: 1、单片机部分。使用常见的8051单片机,同时根据需要设计单片机电路。 2、测量部分。该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。根据需要本设计采用逐次逼近型A∕D转换器ADC0809进行模数转换。 3、键盘显示部分。利用4×6矩阵键盘的一个按键控制量程的转换,3或4位LED显示。其中一位为整数部分,其余位小数部分。 关键词:8051 模数转换LED显示矩阵键盘 2 目录

1 绪论 (1) 2 方案设计与论证 (2) 3 单元电路设计与参数计算 (3) 4 总原理图及参考程序 (8) 5 结论 (14) 6 心得体会 (15) 参考文献16 (7) 3 1.绪论 数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优

点。 电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D 转换的方式可分为两类:积分式和逐次逼近式。 积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。 逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。 在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以8051单片机为核心,以逐次比较型A/D转换器ADC0809、LED 显示器为主体,构造了一款简易的数字电压表,能够测量1路0~5V直流电压,最小分辨率0.02V。 4 2.方案设计与论证 基于单片机的多路数字电压表电路的基本组成如图3.1所示。

多功能数字电压表课程设计

1.设计主要内容及要求; 设计一个多功能数字电压表。 要求:1)硬件电路设计,包括原理图和PCB板图。 2)数字电压表软件设计。 3)要求能够测量并显示直流电压、交流电压,测量范围0.002V---2V。 2.对设计论文撰写内容、格式、字数的要求; (1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。 (2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。 (3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。 (4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。 3.时间进度安排;

中文摘要 随着微型计算机及微电子技术在测试领域中的广泛应用,仪器仪表在测量原理、准确度、灵敏度、可靠性、多种功能及自动化水平等方面都发生了巨大的变化,逐步形成了完全突破传统概念的新一代仪器——智能仪器。智能化是现代仪器仪表的发展趋势,许多嵌入式系统、电子技术和现场总线领域的新技术被应用于智能仪器仪表的设计,尤其是嵌入式系统的许多新的理念极大地促进了智能仪器仪表技术的发展。 今年来,随着大规模集成电路的发展,有单片A/D转换器构成的数字电压表获得了迅速普及和广泛应用,它是目前在电子测量及维修工作中最常用、最得力的一种工具类数字仪表。数字电压表具有很高的性价比,其主要优点是准确度高、分辨力强测试功能完善、测量速率快、显示直观。 测试仪器的智能化已是现代仪器仪表发展的主流方向。因此学习智能仪器的工作原理、掌握新技术和设计方法无疑是十分重要的。 关键词智能,数字,电压表,仪器仪表

#简易数字电压表的设计

一、简易数字电压表的设计 l .功能要求 简易数字电压表可以测量0~5V 的8路输入电压值,并在四位LED 数码管上轮流显示或单路选择显示。测量最小分辨率为0.019 V ,测量误差约为土0.02V 。 2.方案论证 按系统功能实现要求,决定控制系统采用A T89C52单片机,A /D 转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其它A /D 转换量的测量、远程测量结果传送等扩展功能。数字电压表系统设计方案框图如图1-1。 3.系统硬件电路的设 计 简易数字电压测量电 路由A /D 转换、数据处 理及显示控制等组成,电 路原理图如图1-2所示。A /D 转换由集成电路0809完 成。0809具有8路模拟输人 端口,地址线(23~25脚)可决定对哪一路模拟输入作A /D 转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存,6脚为测试控制,当输入一个2us 宽高电平脉冲时,就开始A /D 转换,7脚为A /D 转换结束标志,当A /D 转换结束时,7脚输出高电平,9脚为A /D 转换数据输出允许控制,当OE 脚为高电平时,A /D 转换数据从该端口输出,10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1 MHz 时钟。单片机的P1、P3.0~P3.3端口作为四位LED 数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A /D 转换数据读入用,P2端口用作0809的A /D 转换控制。 4.系统程序的设计 (1)初始化程序 系统上电时,初始化程序将70H ~77H 内存单元清0,P2口置0。 (2)主程序 在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将 图1-1 数字电压表系统设计方案

简易数字电压表 程序

/*简易数字电压表制作(C语言版)*/ /*目标器件:AT89S52 */ /*晶振:12.000MHZ */ /*编译环境:Keil */ /***********************************************************************************/ /*********************************包含头文件********************************/ #include #include /*********************************端口定义**********************************/ sbit CS = P3^4; sbit Clk = P1^0; sbit DA TI = P1^1; sbit DA TO = P1^1; /*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值 unsigned char count = 0x00; //定时器计数 unsigned char CH; //通道变量 unsigned char dis[] = {0x00, 0x00, 0x00}; //显示数值 /*******************************共阳LED段码表*******************************/ unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /**************************************************************************** 函数功能:AD转换子程序 入口参数:CH 出口参数:dat ****************************************************************************/ unsigned char adc0832(unsigned char CH) { unsigned char i, test, adval; adval = 0x00; test = 0x00; Clk = 0; //初始化 DA TI = 1; _nop_( ); CS = 0; _nop_(); Clk = 1; _nop_(); if ( CH == 0x00 ) //通道选择 { Clk = 0; DA TI = 1; //通道0的第一位 _nop_(); Clk = 1;

设计制作一个简易数字电压表.doc

设计制作一个简易数字电压表 目录 一、设计要求................................................................................................ 错误!未定义书签。 二、设计方案、电路图和工作原理............................................................ 错误!未定义书签。 三、软件仿真................................................................................................ 错误!未定义书签。 四、PCB设计............................................................................................... 错误!未定义书签。 五、元器件清单表........................................................................................ 错误!未定义书签。 五、焊接和调试............................................................................................ 错误!未定义书签。 六、过程照片................................................................................................ 错误!未定义书签。 七、总结、心得及其他................................................................................ 错误!未定义书签。 八、指导老师评定........................................................................................ 错误!未定义书签。 目录 二.课程设计任务与要求 2.1 设计目的 2.2 设计要求 三.设计思路 3.1 方案选择 3.2 系统框图 四.课程设计框图及工作原理 4.1 工作原理 4.2 ICL7107的工作原理

基于51单片机的ADC0832数字电压表(仿真+程序)

仿真图: #in elude #in elude vintrin s.h> sbit CS = P3A 5; sbit Clk =卩3人3; sbit DATI = P3A4; sbit DATO = P3A4; sbit P20=P2A0 ; un sig ned char dat = 0x00; un sig ned char count = 0x00; /** ***************************** ^定义全局变^量 ****************************** /** 斗 XT C £J_1 XTW2 R^T Pd KI W KUW? PQ pa.&^oo KMW POTror ip? rw P2/W PG£H 芒酒r P2.4m; fcA. 旳腳威 *2 ma 5 P3.IM 沁 Pi 1 pg.vwt F3.Z/IOO Fts PH M.:州和 P2-4TD P1 6 P16 ?"■S.aUtfk P3 & ■ 14 ■和 PV1 ******************************* 包含头文^件 ****************************** /** ******************************* ^端■口定^义 ******************************** //AD 值 //定时器计数 U2 xinjjbn ■TBMK ■ & EK ■曲 ■詡 'RP1 ■ 12 4 '

unsigned char CH; // 通道变量 unsigned char dis[] = {0x00, 0x00, 0x00}; // 显示数值 /*************************共阳 LED 段码表unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; char code tablewe[]={ 0xfd,0xfb,0xf7,0xef,0xdf,0xfe }; /*************************************************************************** * 函数功能 :AD 转换子程序 入口参数 :CH 出口参数 :dat ************************************************************************** unsigned char adc0832(unsigned char CH) { unsigned char i,test,adval; adval = 0x00; test = 0x00; Clk = 0; // 初始化 DATI = 1; _nop_(); CS = 0; _nop_(); Clk = 1; _nop_();

基于51单片机制作的数字电压表

基于51单片机数字电压表的设计 基于51单片机数字电压表的设计 摘要:本文介绍了基于STC89C52单片机为核心的,以AD0809数模转换芯片作为采样,以四位八段数码管作为显示的具有测量功能的具有一定精度的数字电压表。在实现基础功能的情况下,另外还可以扩展串行口通信,时钟,等其他一系列功能,使系统达到了良好的设计效果和要求。本课题主要解决A/D转换,数据处理及显示控制等三个模块。 关键词:STC89C52;数字电压表;模数转换;数字信号

Abstract:This paper introduces STC89C52 SCM as the core based on AD0809 analog-to-digital conversion chip, as sampled to four seven segment digital tube as display with certain with measuring function of digital voltmeter accuracy. The basic function in realizing circumstance, also can expand serial port communication, clock, and other series of function, make the system to achieve a good design effect and requirements.This subject mainly to solve AD, data processing and display control three modules. Key words: Digital voltmeter; Frequency-field; Digital signal 本设计在分析研究和总结了单片机技术的发展历史及趋势的基础上,以使用可靠,经济,精度高等设计原则为目标,设计出基于单片机的数字测量电压表。单片机有着微处理所具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。 单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可用软件控制来实现,并能够实现智能化。由于单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此,现在单片机控制范畴无所不在,例如通信产品,家用电器,智能化仪器仪表,过程控制和专用控制装置等等,单片机的应用领域越来越广泛。 1 系统构成 该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片STC89C51来完成,其负责把ADC0809传送来的数字量,经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。显示模块主要由7段数码管显示测量到的电压值 系统构成框图 2 系统硬件设计 2.1 电源电路原理 由于本系统的主控芯片是单片机,所以应提供五伏的恒流源作为单片机的基准电压。主要原理是用变压器将220V交流电压进行变压,然后经过电桥整流,将交流电变为直流电源,经过稳压管稳压,得到稳定的5V电源供单片机使用。 电桥由整流二极管1N4007所搭建的电

简易数字电压表(单片机课程设计)

课程设计说明书 简易数字电压表的设计 院(系) 专业机械电子工程 班级二班 学生姓名 指导老师 2015 年 3月 13 日 课程设计任务书 兹发给机械电子工程(2)班学生课程设计任务书,内容如下:

1.设计题目:简易数字电压表的设计 2.应完成的项目: (1)可测0~5V的8路电压输入值; (2)在LED数码管上轮流显示; (3)单路选择显示; (4)利用功能键可以实现滚动显示,显示启动/停止等; 3.参考资料以及说明: [1]刘瑞新.单片机原理及应用教程[M].北京:机械工业出版社, 2003.7 [2]张俊,钟知原,王日根.简易数字电压表的设计[J].科协论坛:下半月,2012(8)34-35 [3]赵静,刘少聪,丁浩.王莉莎.基于单片机的数字电压表的设计[J].数字技术与应用,2011(6):121-125 [4]魏立峰.单片机原理及应用技术[M].北京大学出版社,2005年 [5]谭浩强.C语言程序设计(第二版)[M].北京:清华大学出版社,2005.12 4.本设计任务书于2015年3月2日发出,应于2015年3月13日前完成,然后进行答辩。 专业教研室、研究所负责人审核年月日 指导教师签发年月日 课程设计评语:

课程设计总评成绩: 课程设计答辩负责人签字: 年月日

摘要 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。 本实验设计主要讲述了数字电压表的设计过程,主要包括硬件设计和程序设计,硬件主要包括以STC89C51单片机为主要控制电路、数据采样电路、显示电路等,是基于51单片机开发平台实现的一种数字电压表系统。该设计采用STC89C51单片机作为控制核心,驱动控制四块数码管显示被测电压,以ADC0809为模数转换数据采样,实现被测电压的数据采样,使得该数字电压表能够测量0-5V之间的直流电压值。 关键词:STC89C51、ADC0809、显示电路、数据采样

简易数字电压表设计内容

简易数字电压表设计 一、设计要求 1、利用ADC0809设计一简易数字电压表,要求可以测量0—5V之间8路输入电压值、电压值由四位LED数码管显示,并在数码管上轮流显示或单路选择显示; 2、测量最小分辨率为0.019V,测量误差为±0.02V。 二、设计作用与目的 利用AT89S51与ADC0809设计制作一个数字表,能够测量直流电压值。 三、所用设备及软件 单片机AT89S51、ADC0809芯片、PC设计台 四、系统设计方案 本设计采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理框图如图1所示。该电路通过ADC0809芯片采样输入口IN0输入的0~5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89S51芯片的P0口。AT89S51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口经三极管驱动,再传送给数码管。同时它还通过其三位I/O口P3.0、P3.1、P3.2产生位选信号,控制数码管的亮灭。另外,AT89S51还控制着ADC0809的工作。其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.3控制ADC0809的地址锁存端(ALE);P2.4控制ADC0809的启动端(START);P2.5控制ADC0809的输出允许端(OE);P3.7控制ADC0809的转换结束信号(EOC)。

图1 系统原理框图 本设计与其它方法实现主要区别在于元器件上例如:AT89C51与AT89C51、AT89S51在AT89C51的基础上,又增加了许多功能,性能有了较大提升。 1.ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。 2.工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。 3.具有双工UART串行通道。 4.内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。 5.双数据指示器。 6.电源关闭标识。 7.全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。 8.兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。在89C51上一样可以照常运行,这就是所谓的向下兼容。 五、系统硬件设计 5.1 模数转换芯片ADC0809 ADC0809是典型的8位8通道逐次逼近式A/D转换器。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。

51单片机数字电压表设计

基于51单片机的数字电压表设计 二级学院铜陵学院 专业自动化 班级 组号 组员 指导教师

简易的数字电压表的设计 目录 一课程设计任务书·····························································································································错误!未定义书签。 1.1 设计题目、目的····················································································································错误!未定义书签。 1.2 题目的基本要求和拓展功能··························································································错误!未定义书签。 1.3 设计时间及进度安排··········································································································错误!未定义书签。 二设计内容············································································································································错误!未定义书签。 2.1 元器件选型······························································································································错误!未定义书签。 2.2 系统方案确定·························································································································错误!未定义书签。 2.3 51单片机相关知识··············································································································错误!未定义书签。 2.4 AD转换器相关知识··············································································································错误!未定义书签。 三数字电压表系统设计 (7) 3.1系统设计框图 (8) 3.2 单片机电路 (9) 3.3 ADC采样电路 (10) 3.4显示电路 (11) 3.5供电电路和参考电压·························································································································································· 3.6 数字电压表系统电路原理图·········································································································································四软件部分 4.1 主程序 4.2 显示子程序 五数字电压表电路仿真 5.1 仿真总图 5.2 仿真结果显示 六系统性能分析 七心得体会 - 2 -

数字电压表的设计与制作

毕业设计(论文) 题目:数字电压表的设计与制作年级专业:电气自动化14321班 学生姓名:秦小钧 指导教师:杨海蓉

2016年 10 月 13 日 毕业设计任务书 毕业设计题目:数字电压表的设计与制作 题目类型工程设计题目来源学生自选题 毕业设计时间从 2016/09/25 至 2016/10/13 1.毕业设计内容要求: 采用AT89S52作MCU,ADC0809(或其他芯片)进行AD转换,测量电压的范围为直流0-5V 电压,四位数码管显示。 2.主要参考资料 [1]万福君,潘松峰.单片微机原理系统设计与应用[M],中国科学技术大学出版社,01年8月第2版 [2]周责魁. 控制仪表与计算机控制装置[M] ,化学工业出版社,02年9月第1版 [3]李青. 电路与电子技术基础[L] ,浙江科学技术出版社,05年2月第1版 [4]陈乐. 过程控制与仪表[M], 中国计量学院出版社,07年3月 [5]孙育才. 新型AT89S52系列单片机及其应用[M] ,清华大学出版社,05年5月第1版3.毕业设计进度安排

摘要 本设计由A/D转换、数据处理及显示控制等组成,测量0~5V范围内的输入电压值,由4位共阳8段数码管扫描显示,最大分辨率0.1V,误差±0.05V。数字电压表的核心为AT89S52单片机和ADC0832 A/D转换集成芯片。 关键词:数字电压表;单片机;AT89S52; ADC0832

第一章设计方案的选择 1.1功能要求及设计目标 采用AT89S52作MCU,ADC0809(或其他芯片)进行AD转换,测量电压的范围为直流0-5V电压,四位数码管显示。(设计并制作出实物为优). 1.2 系统设计方案 AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器 AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 AT89S5与AT89c52相比,前者的性能比后者高,所以本设计采用AT89S52芯片。 数模转换芯片:

简易数字电压表的设计

一、设计题目:简易数字电压表的设计 二、设计目的 自动化专业的专业实践课程。本课程的任务是使学生通过“简易数字电压表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。 三、设计任务及要求 设计电压表并实现简单测量。具有以下基本功能: ⑴可以测量0~5V的8路输入电压值; ⑵可在四位LED数码管上轮流显示或单路选择显示; ⑶测量最小分辨率为0.019V; ⑷.测量误差约为±0.02V; ⑸带有一定的扩展功能; 目录 第一章摘要 (4) 第二章智能仪表目前的发展状况 (4) 第三章设计目的 (6) 第四章设计要求 (6) 第五章设计方案与比较论证 (6) 5.1 单片机电路设计 (6) 5.2 电源方案 (8) 5.3 显示方案 (9) 5.4 A/D采样方案 (10) 5.5串口通讯方案 (12) 5.7 高压,短路报警 (14) 5.8 键盘 (14) 第六章方案设计 (15) 6.1 硬件设计 (15)

6.2 软件设计 (16) 第七章性能测试 (18) 电压测试 (18) 第八章结果分析 (19) 第九章设计体会 (19) 参考文献 (20) 附录 (20) 元器件清单 (20) 程序清单 (20) 第一章摘要 本报告介绍了基于AT89S52单片机为核心的、以AD0809数模转换芯片采样、以1602液晶屏显示的具有电压测量功能的具有一定精度的数字电压表。在实现基础功能要求之上扩展了串口通讯、时钟功能、高压报警、短路测试、电阻测量、交流电压峰峰值和周期测试等功能,使系统达到了良好的设计效果和要求。 关键词:AT89S52单片机模数转换液晶显示扩展功能 ABSTRACT:The report describes the AT89S52 based on the microcontroller as the core, AD0809 digital-to-analog converter chip sampling, to 1602 LCD display with voltage measurement function with a certain precision of digital voltage meter. In achieving functional requirements based upon the expansion of serial communications, high-pressure alarm, short circuit, electrical resistivity measurement, AC voltage and the peak of cycle testing and other functions, allowing the system to achieve good results and the design requirements. Keywords : AT89S52 SCM analog-to-digital conversion functions LCD expansion 第二章智能仪表目前发展状况 在自动化控制系统中,仪器仪表作为其构成元素,它的技术进展是跟随控制系统技术的发展的。常规的自动化仪器仪表适应常规控制系统的要求,它们以经典控制理论和现代控制理论为基础,以控制对象的数学模型为依据。当今,控制理论已发展到智能控制的新阶段,自动化仪器仪表的智能化就成为必然和必须。本文将就自动化仪器仪表的智能化的状况与进展,以及当今对智能仪器仪表研究、开发热点做概要的分析与表述。作者建议人们关注自动化仪器仪表智能化技术的进展,关注仪器仪表装置

数字电压表设计

《单片机课程设计》设计报告 设计题目: 姓名: 设计时间:2010-12-28 备注:

目录 1.引言 (2) 2.概述··2 2.1实验要求 (2) 2.2实验目的 (2) 2.3 实验器材 (2) 3.总体设计方案 (3) 3.1系统的总体结构 (3) 3.2芯片的选择 (4) 3.3 ADC0809 的主要性能指标 (4) 4.硬件电路设计 (6) 4.1 AT89S52 单片机最小系统 (6) 4.2 ADC0809 与AT89S52 单片机接口电路设计 (6) 4.3显示电路与AT89S52 单片机接口电路设计 (6) 5.软件设计 (7) 5.1 主程序图 (7) 5.2 ADC0809 电压采集程序框图 (8) 5.3显示程序框图 (9) 6.调试与测量结果分析 (10) 6.1实验系统连线图 (11) 6.2程序调试 (12) 6.3 仿真结果 (13) 6.4 实验结果分析 (14) 7.程序清单和系统原理图 (15) 7.1程序清单 (15) 7.2 系统原理图 (16) 8.实验总结和实验收获 (17)

1.引言 本次课程设计要求完成是数字电压表的设计,随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量 最为普遍。本次课程设计我们小组xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx该电路设计新颖、功能强大、可 扩展性强。 实验报告首先简要介绍了设计数字电压表的实验要求和目的;根据要求和目的设计出直流数字电压表的系统结构流程,以及硬件系统和软件系统的设计,并给出了硬件电路的设计细节,以及调试和仿真结果。最后进行了实验和心得体会的总结。 通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。 2.概述 2.1实验要求 采用ADC0809 和AT89S52 单片机及显示电路完成0~5V 直流电压的检测 2.2实验目的 (1)进一步熟悉和掌握单片机的结构和工作原理; (2)掌握单片机的借口技术及,ADC0809芯片的特性,控制方法;(3)通过这次实训设计,掌握以单片机为核心的电路设计的基本

相关文档
相关文档 最新文档