基于51单片机的波形发生器的设计讲解

合集下载

51单片机实现波形发生器

51单片机实现波形发生器

51单片机实现波形发生器摘要这个系统是基于AT89C51单片机的波形信号发生器。

使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832)、运放电路(OP07)、按键电路和6位数码管等组成。

通过按键可控制方波、三角波、正弦波的产生,并且用数码管显示其对应的频率和波形的类型。

这个设计方法简单、性能良好,这个系统可在多种需要低频信号的场所使用,它具有良好的实用性。

关键词:AT89C51 数模转换电路数码管信号发生器1 总体方案设计本次设计的任务是设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。

示意图如下:基本要求如下:(1)具有产生正弦波、方波周期性波形的功能;(2)输出波形的频率范围为100Hz~20kHz(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔≤100Hz;(3)输出波形幅度范围0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整;(4)具有显示输出波形的类型、重复频率(周期)和幅度的功能。

1.1 方案论证方案一:采用单片函数发生器可产生正弦波、方波等,操作简单易行,用 D/A 转换器的输出来改变调节电压,可以实现数控调整频率,但产生信号的频率稳定度不高。

方案二:利用芯片组成的电路输出波形,MAX038是MAXIM公司生产的一个只需要很少外部元件的精密高频波形产生器,它能产生准确的高频正弦波、三角波、方波。

输出频率和占空比可以通过调整电流、电压或电阻来分别地控制。

所需的输出波形可由在A0和A1输入端设置适当的代码来选择,且具有输出频率范围宽、波形稳定、失真小、使用方便等特点。

方案三:采用Atmel公司的AT89C51单片机编程方法实现,该方案可以通过编程的方法控制信号波形的频率和幅度,而在硬件电路不便的情况下,通过程序实现频率的变化和输出波形的选择,并同时在显示器显示相应的结果。

方案一输出信号频率不够稳定;方案二成本高,程序复杂度高;方案三软硬件结合,硬件成本低,软件起点低,用汇编语言即可完成,优化型相对比较好,容易实现,且满足设计要求。

基于51单片机波形发生器设计

基于51单片机波形发生器设计

摘要波形记录在教学科研和地质勘测等方面有着广泛的应用,波形的记录也方便后期对图形的分析和运算,对频谱的分析和曲线相关性分析等操作。

通用电子示波器价格低廉,是配备的常规仪器,但不具备信号记录功能。

因此,设计一种信号波形记录器,使之能与通用电子示波器结合,用来观测非重复性信号波形,是很有实际意义的。

本论文是基于单片机而设计的波形记录器,波形存储系统配备了A/D转换器、数据存储器、采用双极性输出的D/A转换器等器件。

系统有八个输入通道,采用分区储存波形。

同时给外部数据存储器配置了掉电保护电路,可长期保存数据。

设计中采用自顶向下的方法,系统共有四个功能模块:输入电路、键盘和显示电路、控制和存储电路以及输出电路。

该设计使波形记录与通用电子很好的结合在一起,具有很强的实用性。

关键词:单片机;电子示波器;D/A转换器AbstractThe waveform recording has been widely used in the teaching scientific research, the geological research and so on. Waveform recording is also convenient for our later on graphical analysis and calculation, spectrum analysis, correlation analysis and other operation curve. Universal electronic oscilloscope low prices, we are equipped with conventional instruments, but does not have the signal recording function, therefore, to design a signal waveform recorder, which can combine with general electronic oscilloscope, to observe the non-repetitive signal waveform, is of great practical significance.This paper is based on the single chip microcomputer and the design of the waveform recorder, waveform storage system equipped with a A/D converter, data memory, using bipolar output prosperity D/A converter device. The system has eight input channels, using partition stored waveform. At the same time to the external data memory configured to drop the electricity protection circuit, can be long-term preservation of data. The design of using top-down method, the system has four modules: input circuit, keyboard and display circuit, control circuit and the storage circuit and an output circuit. The design enables the waveform record and electronic together well, has the very strong practical.Keywords: Single-chip microcontroller; electronic oscilloscope; D/A converter目录第1章概述 (1)1.1设计背景与研究现状 (1)1.2课题的意义 (2)1.3本论文研究内容 (2)第2章系统设计方案 (3)2.1设计思路 (3)2.2系统功能分析 (3)2.3总体设计思想 (4)2.4本章小结 (4)第3章硬件设计 (5)3.1单片机概述 (5)3.2液晶显示电路 (11)3.3输出电路 (16)3.4蜂鸣电路 (18)3.5本章小结 (19)第4章软件设计 (20)4.1主程序的设计 (20)4.2 A/D转换子程序的设计 (22)4.3 D/A转换子程序的流程图 (23)4.4软件抗干扰措施 (25)4.5本章小结 (26)第5章调试分析 (27)5.1 KEIL51软件简介 (27)5.2调试步骤 (29)5.3调试演示 (30)5.4本章小结 (32)结论 (33)参考文献 ........................................................................................... 错误!未定义书签。

51单片机制作的波形发生器

51单片机制作的波形发生器

51单片机制作的波形发生器相信很多朋友都可能接触到一个波型发生器的制作,可能刚刚入门,做的东西也不会说是很复杂。

可能就一个矩形波,或者是三角波。

但是网上的很多资料是忽悠人的,就此,我也提供一个比较完整的波型发生器 C51 原代:该系统的软件比较典型:包括键盘的应用,显示的应用和 DA 转换器的应用。

本设计中,输出的波形有三种:正弦波,方波,三角波。

方波的输出最为简单,只要按照设定的周期值将输出的电压改变即可。

三角波的输出也比较简单,单片机的输出只要完成数字量递增和递减交替进行即可。

、正弦波的输出最麻烦,如果在软件中计算出输出的各点电压值,将会浪费很多的 CPU 时间,以至于无法满足频率的要求。

通常最简单的方法是通过手动的方法计算出输出各点的电压值,然后在编写程序时以数组的方式给出。

当需要时,只要按照顺序进行输出即可。

这种方法比运算法速度快且曲线的形状修改灵活。

在本设计中将 360 度分为 256 个点,则每两个点之间的间隔为1.4 度,然后计算出每个点电压对应的数字量即可。

只要反复输出这组数据到 DAC0832, 就可以在系统输出端得到想要的正弦波。

具体程序如下:#include ;#define uchar unsigned char#define uint unsigned int#define DAdata P0uchar code Sinetab[256]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xab,0xad,0xaf,0xb1,0xb2,0xb4,0xb6,0xb7,0xb9,0xba,0xbc,0xbd,0xbf,0xc0,0xc1,0xc3,0xc4,0xc5,0xc6,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xce,0xcf,0xd0,0xd1,0xd1,0xd2,0xd2,0xd3,0xd3,0xd3,0xd2,0xd2,0xd1,0xd1,0xd0,0xcf,0xce,0xce,0xcd,0xcc,0xcb,0xca,0xc9,0xc8,0xc6,0xc5,0xc4,0xc3,0xc1,0xc0,0xbf,0xbd,0xbc,0xba,0xb9,0xb7,0xb6,0xb4,0xb2,0xb1,0xaf,0xad,0xab,0xaa,0xa8,0xa6,0xa4,0xa2,0xa0,0x9e,0x9c,0x9a,0x98,0x96,0x94,0x92,0x90,0x8e,0x8c,0x8a,0x88,0x86,0x84,0x82, 0x80,0x7d,0x7b,0x79,0x77,0x75,0x73,0x71, 0x6f,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61, 0x5f,0x5d,0x5b,0x59,0x57,0x55,0x54,0x52, 0x50,0x4e,0x4d,0x4b,0x49,0x48,0x46,0x45, 0x43,0x42,0x40,0x3f,0x3e,0x3c,0x3b,0x3a, 0x39,0x37,0x36,0x35,0x34,0x33,0x32,0x31, 0x31,0x30,0x2f,0x2e,0x2e,0x2d,0x2d,0x2c, 0x2c,0x2b,0x2b,0x2b,0x2b,0x2a,0x2a,0x2a, 0x2a,0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2b, 0x2c,0x2c,0x2d,0x2d,0x2e,0x2e,0x2f,0x30, 0x31,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x40,0x42, 0x43,0x45,0x46,0x48,0x49,0x4b,0x4d,0x4e, 0x50,0x52,0x54,0x55,0x57,0x59,0x5b,0x5d, 0x5f,0x61,0x63,0x65,0x67,0x69,0x6b,0x6d, 0x6f,0x71,0x73,0x75,0x77,0x79,0x7b,0x7d, };uchar code Triangletab[58]={0x1a,0x21,0x28,0x2f,0x36,0x3d,0x44,0x4b, 0x52,0x59,0x60,0x67,0x6e,0x75,0x7c,0x83,0x8a,0x91,0x98,0x9f,0xa6,0xad,0xb4,0xbb,0xc2,0xc9,0xd0,0xd7,0xde,0xe5,0xde,0xd7,0xd0,0xc9,0xc2,0xbb,0xb4,0xad,0xa6,0x9f,0x98,0x91,0x8a,0x83,0x7c,0x75,0x6e,0x67,0x60,0x59,0x52,0x4b,0x44,0x3d,0x36,0x2f,0x28,0x21,};uchar code Squaretab[2]={0x56,0xaa};uchar code disp1[]={"Sine Wave ""Triangle Wale ""Square Wave "};uchar idata disp2[16]={"Frequency:Hz"};uchar code Coef[3]={10,100,200};uchar idata WaveFre[3]={1,1,1};uchar code WaveTH[]={0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, };uchar code WaveTL[]={0xf2,0x78,0xfb,0x3c,0x63,0x7d,0x8f,0x9d,0xa8,0xb1, 0x17,0x0b,0xb2,0x05,0x37,0x58,0x70,0x82,0x90,0x9b, 0x4d,0xa7,0xc4,0xd3,0xdc,0xe2,0xe6,0xea,0xec,0xee };uchar Wavecount,THtemp,TLtemp;uchar Waveform;sbit rs=P2^5;sbit rw=P2^6;sbit e=P2^7;sbit DA=P2^0;sbit KEY=P3^2;void delay(uchar i){uchar j;for(;i>;0;i--)for(j=20;j>;0;j--);}void busy(){uchar temp;temp=0x00;rs=0;rw=1;while((temp&0x80)==0x80) {P0=0xff;e=1;temp=P0;e=0;}}void WR_Com(uchar temp) {busy();rs=0;rw=0;P0=temp;e=1;e=0;}void WR_Data(uchar num){busy();rs=1;rw=0;P0=num;e=1;e=0;}void disp_lcd(uchar addr,uchar *temp1) {uchar i;WR_Com(addr);delay(100);for(i=0;i;0;i--){P0=0x30;rs=0;rw=0;e=1;e=0;delay(100);P0=0x38;rs=0;rw=0;e=1;e=0;delay(100);}void lcd_Reset(){WR_Com(0x01);delay(100);WR_Com(0x06);delay(100);WR_Com(0x0c);delay(100);}void SineOUT(uchar Wavecount) {DAdata=Sinetab[Wavecount++]; Wavecount=0;DA=0;}void TriangleOUT(uchar Wavecount) {DAdata=Triangletab[Wavecount++]; if(Wavecount>;57)Wavecount=0;DA=0;DA=1;}void SquareOUT(uchar Wavecount) {DAdata=Squaretab[Wavecount++];if(Wavecount>;1)Wavecount=0;DA=0;DA=1;}void timer() interrupt 1{TH0=THtemp;TL0=THtemp;if(Waveform==0)SineOUT(Wavecount); else if(Waveform==1)TriangleOUT(Wavecount); else if(Waveform==2)SquareOUT(Wavecount); }void key_int() interrupt 0 {uchar keytemp,keytemp1;uint WaveCoef;EA=0;TR0=0;keytemp1=0;delay(10);while(!KEY);keytemp=~P2&0x1e; keytemp>;>;=1;while(keytemp!=8){keytemp=~P2&0x1e;keytemp>;>;=1;if(keytemp!=keytemp1){keytemp1=keytemp;switch(keytemp){case 1:if(++Waveform==3)Waveform=0;break;case 2:if(++WaveFre[Waveform]==11)WaveFre[Waveform]=1;break;case 4:if(--WaveFre[Waveform]==0)WaveFre[Waveform]=10;break;}THtemp=WaveTH[Waveform*16+(WaveFre[Waveform]-1)]; TLtemp=WaveTL[Waveform*16+(WaveFre[Waveform]-1)];WaveCoef=WaveFre[Waveform]*Coef[Waveform]; disp2[13]=WaveCoef%10+0x30;WaveCoef/=10;disp2[12]=WaveCoef%10+0x30;WaveCoef/=10;disp2[11]=WaveCoef%10+0x30;WaveCoef/=10;disp2[10]=WaveCoef%10+0x30;WaveCoef/=10;disp_lcd(0x80,&disp1[Waveform*16]);disp_lcd(0xc0,disp2);}}TH0=THtemp;TL0=THtemp;Wavecount=0;TR0=1;}void main(){uint WaveCoef;uchar i;lcd_ini();lcd_Reset();WaveCoef=WaveFre[Waveform]*Coef[Waveform]; disp2[13]=WaveCoef%10+0x30;WaveCoef/=10;disp2[12]=WaveCoef%10+0x30;WaveCoef/=10;disp2[11]=WaveCoef%10+0x30;WaveCoef/=10;disp2[10]=WaveCoef%10+0x30;WaveCoef/=10;disp_lcd(0x80,&disp1[Waveform*16]);disp_lcd(0xc0,disp2);i=0;DAdata=0x00;DA=0;TMOD=0x01;IT0=1;ET0=1;EX0=1;EA=1;while(1);}。

基于51单片机的波形发生器的设计

基于51单片机的波形发生器的设计

基于51单片机的波形发生器的设计引言:波形发生器是一种可以生成特定频率、特定波形的电子设备。

它广泛应用于科研、教学和产业生产等领域,可以用于信号发生、信号测试、信号仿真等各种任务。

本文将介绍一个基于51单片机的波形发生器的设计方案。

一、系统硬件设计1.系统框架该波形发生器系统采用51单片机作为主控芯片,主要包括三个部分:信号生成模块、显示模块和控制模块。

其中,信号生成模块负责产生各种特定频率、特定波形的信号;显示模块用于展示信号参数等相关信息;控制模块负责接收用户输入并对波形发生器进行控制。

2.硬件连接信号生成模块与主控芯片之间通过I/O接口相连,用于传输数据和控制信号。

显示模块通过串口与主控芯片相连,用于显示相关信息。

控制模块通过按键、旋钮等输入设备与主控芯片相连,用于接收用户输入。

二、系统软件设计1.系统初始化在系统初始化阶段,主控芯片需要完成引脚、定时器、串口等相关资源的初始化工作。

同时,还需要设置一些全局变量和参数的初始值。

2.信号生成模块信号生成模块通过定时器产生特定频率的时钟信号,并根据用户输入的参数生成相应的信号波形。

主控芯片利用定时器中断函数进行波形生成,并将生成的信号数据存放在缓冲区中。

3.显示模块显示模块负责将信号波形显示在液晶屏上,并显示相关参数,如频率、幅度等。

主控芯片将信号数据从缓冲区中读取,并通过串口发送给显示模块进行显示。

4.控制模块控制模块负责接收用户输入的控制指令,并通过按键、旋钮等输入设备完成用户交互。

主控芯片通过中断函数实时读取用户输入并进行相应的控制操作。

三、系统功能设计1.频率设置功能用户可以通过控制模块设置波形发生器的频率,可以选择固定频率或者可调频率。

利用定时器时钟频率与定时器中断的时间间隔来控制波形的频率。

2.波形选择功能用户可以通过控制模块选择不同的波形类型,如正弦波、方波、三角波、脉冲波等。

主控芯片根据用户指令设置波形参数,并生成相应的波形信号。

基于51单片机的多功能波形发生器设计

基于51单片机的多功能波形发生器设计

基于51单片机的多功能波形发生器设计1.设计目的与任务《电子信息工程专业方向》课程设计是一项重要的实践性教育环节,是学生在完成本专业所有课程学习后必须接受的一项结合本专业方向的、系统的、综合的工程训练。

在教师指导下,运用工程的方法,通过一个较复杂课题的设计练习,可使学生通过综合的系统设计,熟悉设计过程、设计要求、完成的工作内容和具体的设计方法,掌握必须提交的各项工程文件。

其基本目的是:培养理论联系实际的设计思想,训练综合运用电路设计和有关先修课程的理论,结合生产实际分析和解决工程实际问题的能力,巩固,加深和扩展有关电子类方面的知识。

通过课程设计,应能加强学生如下能力的培养:(1)自身的独立工作能力和创造力;(2)综合运用专业及基础知识,解决实际工程技术问题的能力;(3)查阅图书数据、产品手册和各种工具书的能力;(4)工程绘图的能力;(5)编写技术报告和编制技术资料的能力;2.设计指标与技术要求(1)借助现有的单片机系统;(2)能产生正弦波、方波、三角波、锯齿波等波形;(3)各种波形频率可调,频率范围为100-3000Hz;(4)正弦波输出电压为5V峰峰值,方波、三角波、锯齿波输出电压为5V (5)采用8位D/A转换器;(6)进行硬件平滑滤波;(7)编写程序并调试;(8)提供程序清单;。

(9)能实物演示3.总体设计图1.1所示是基于单片机的多波形发生器的总体设计流程图。

图1.1 总体设计流程图3.1总体设计功能说明:根据设计要求,分析得本次设计需要硬件和软件两部分。

硬件上,如图。

键盘输入部分主要用于选择波形。

键盘共设4个键,用于选择三角波、矩形波、锯齿波、正弦波4种不同的波形,。

89C51单片机用来执行某一波形发生程序,向D/A转换器的输入端发送数据,将其转化成模拟量,并通过运算放大器调节波形的幅值,经过滤波器的滤波,从而在输出端得到所需的波形。

软件上,如图。

可由硬件设计好后,再根据要求进行具体编写。

基于51单片机的波形发生器的设计讲解

基于51单片机的波形发生器的设计讲解

基于51单片机的波形发生器的设计讲解波形发生器是电子设备中常见的一种电子设备,它可以产生各种不同形状的波形信号。

在这篇文章中,我们将会详细介绍基于51单片机的波形发生器的设计。

一、波形发生器的原理及分类波形发生器的原理是利用电子元件、电路以及控制信号源,将一定幅度的电压信号变化成为需要的各种形状的波形信号。

根据波形的形状分类,可以将波形发生器分为以下几种类型:1.正弦波发生器:产生正弦波信号的发生器,常用于音频设备中。

2.方波发生器:产生方波信号的发生器,常用于数字电路中,也可用于频率测量和脉冲调制等应用。

3.三角波发生器:产生三角波信号的发生器,常用于音频设备以及频率测试等领域。

4.锯齿波发生器:产生锯齿波信号的发生器,常用于音频设备、测试仪器以及数据采集和测量等领域。

二、基于51单片机的波形发生器设计下面我们将详细介绍基于51单片机的波形发生器的设计步骤。

1.硬件设计:在基于51单片机的波形发生器设计中,我们需要准备的硬件元件有:-51单片机控制芯片-芯片烧录器-液晶显示屏-按键开关-电源模块-杜邦线等电子连接线2.硬件连接:根据电路原理图进行将电子元件进行正确的电路连接。

其中,51单片机作为核心控制芯片,负责生成波形信号,液晶显示屏用于显示波形信号,按键开关用于控制波形发生器的启动、停止以及参数调整等操作。

3.软件设计:利用Keil C编译软件进行51单片机的软件设计,根据控制芯片的指令集编写相应的程序代码,实现以下几个功能:-波形信号的产生:根据选择的波形类型(正弦波、方波、三角波或锯齿波),利用特定的算法生成相应形状的波形信号。

-参数调节:通过按键开关控制波形的频率、幅度以及相位等参数的调节,使波形发生器能够产生不同特性的波形信号。

-波形信号显示:通过LCD显示屏将生成的波形信号进行实时显示,以方便观察和调试。

4.软硬件的调试与优化:三、波形发生器的应用1.音频设备:波形发生器可以生成不同频率的正弦波信号,用于音频信号的发生和测试等应用。

基于51单片机的波形发生器的设计汇总

基于51单片机的波形发生器的设计汇总

基于51单片机的波形发生器的设计汇总波形发生器是电子领域中常用的一种设备,用于产生各种不同形式的波形信号。

本文将基于51单片机的波形发生器的设计进行汇总。

设计思路如下:一、基本原理波形发生器的基本原理是通过控制数字信号的高低电平来产生不同的波形。

在这个设计中,我们将使用51单片机作为控制器来产生波形信号。

二、硬件部分1.时钟电路:使用一个晶体振荡器作为时钟源,提供稳定的时钟脉冲给51单片机。

2.电源电路:使用稳压电源提供稳定的电压给51单片机和其他电路。

3.单片机电路:将51单片机与其他电路进行连接,包括输入输出端口和相应的外部电路。

4.波形输出电路:根据需要产生不同的波形,设计相应的输出电路,包括滤波器、电阻、电容等元器件。

三、软件部分1.系统初始化:在系统上电后,进行相应的初始化工作,包括设置引脚功能、中断,设置计时器等。

2.波形生成算法:根据用户的选择,使用合适的算法生成相应的波形信号。

常见的波形有正弦波、方波、三角波等。

3.输出控制:根据生成的波形信号,通过设置相应的输出引脚,将波形信号输出到波形输出电路中。

4.用户界面:设计一个简单的用户界面,让用户可以选择不同的波形、调整频率、幅度等参数。

5.中断处理:使用中断功能来处理波形输出频率的控制,实现较高的输出稳定性。

四、设计考虑1.精度要求:根据具体应用场景,确定波形发生器的精度要求。

如果需要较高的精度,可能需要采用更复杂的算法和更精密的输出电路。

2.输出负载:考虑波形发生器的输出负载情况,选择合适的输出电路,以确保波形信号的准确性和稳定性。

3.电源稳定性:电源的稳定性对波形发生器的性能也有影响,需要注意电源供电的稳定性。

五、测试与优化完成波形发生器设计后,进行相应的测试与优化。

包括波形信号的频率、幅度等测试,以及对输出电路、算法等进行优化。

最后,通过以上的设计思路,我们可以完成基于51单片机的波形发生器的设计。

根据具体的应用需求,可能需要对硬件和软件进行相应的调整和优化。

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计

任务名称:基于51单片机波形发生器课程设计项目背景和目标波形发生器是电子学中常用的实验设备之一,用于产生不同形状和频率的电信号。

在本课程设计中,我们将使用51单片机设计和实现一个基本的波形发生器。

该波形发生器将具备以下功能: 1. 发生正弦波、方波和三角波等不同形状的波形。

2. 支持用户输入频率和幅度参数。

3. 以可视化的方式显示波形输出。

硬件需求在实现波形发生器的过程中,我们需要以下硬件设备: 1. 51单片机开发板:用于运行波形发生器的程序,控制波形的生成和输出。

2. 信号发生器电路:用于将数字信号转换为模拟信号输出。

3. 示波器:用于验证波形输出的准确性和稳定性。

软件设计软件设计方案1.编写主程序:利用51单片机的C语言开发环境编写主程序,实现波形的生成和输出。

2.设计波形生成模块:根据用户输入的频率和幅度参数,生成对应形状的波形。

3.设置输出端口:将波形数据通过51单片机的输出端口发送给信号发生器电路。

4.配置信号发生器电路:将51单片机生成的数字信号转换为模拟信号输出。

5.连接示波器:将信号发生器的输出连接到示波器,验证波形输出的准确性和稳定性。

主程序设计以下是主程序的设计思路:#include <reg51.h>// 定义波形类型的枚举enum WaveType {Sine,Square,Triangle};// 定义全局变量enum WaveType waveType; // 波形类型int frequency; // 波形频率int amplitude; // 波形幅度// 定义函数原型void generateWave();void setOutputPort();void configureSignalGenerator();void connectOscilloscope();void main() {// 获取用户输入的波形参数// TODO: 实现获取用户输入的函数// 波形类型可以通过按键切换,频率和幅度可以通过调节旋钮获取// 生成波形generateWave();// 设置输出端口setOutputPort();// 配置信号发生器电路configureSignalGenerator();// 连接示波器connectOscilloscope();while (1) {// 循环执行波形生成和输出generateWave();setOutputPort();}}// 生成波形函数void generateWave() {switch (waveType) {case Sine:// 生成正弦波形的代码break;case Square:// 生成方波形的代码break;case Triangle:// 生成三角波形的代码break;}}// 设置输出端口函数void setOutputPort() {// 设置51单片机的输出端口的代码}// 配置信号发生器电路函数void configureSignalGenerator() {// 配置信号发生器电路的代码}// 连接示波器函数void connectOscilloscope() {// 连接示波器的代码}波形生成模块设计波形生成模块根据用户输入的频率和幅度参数生成对应形状的波形。

(完整版),基于51单片机的波形发生器的设计汇总,推荐文档

(完整版),基于51单片机的波形发生器的设计汇总,推荐文档
波形的合成:在波形的合成时,通过外部中断高低电平的延时的时间来进行解码, 在采样的时,对正弦波,三角波,方波都只取了 20 个采样点,因为采样点越少,其频率 能够达到的值就会越大,合成时就是对幅值点进行一个叠加来输出一组波形。 2.2 设计框图及系统介绍
系统主要部分设计框图如下图所示:
图 2:框图设计
以 AT89C51 单片机作为系统的控制核心,其中 P0 口接 DAC0832 作为信号输入同时 进行数模转换,P1 口用来接键盘,P2 口接 LED 显示器,由程序来控制 P0 口产生的波形, 再由按键和按键次数控制波形的种类、频率和幅值的大小,并且能够通过按键来控制波 形频率值和幅度值。由运算放大器 DAC0832 来实现输出电流到电压的转换,即实现数字 信号到模拟信号的转换。另外在 LED 上显示实时的频率值和幅度值,产生的波形在示波 器显示。并且通过按键来决定波形数据的存储方式,在按键按下后,就把当时的波形所 对应的幅度值、频率值等参数存储下来。
使用 DDS 和一些专用的波形产生芯片。并让系统的频率范围在 1Hz~1MHZ 可调节,在 频率范围在 1HZ~10KHz 时,步进小于或等于 10Hz,在频率范围在 10KHz~1MHz 时, 步进小于或等于 100Hz,并且电压在 0~5V 范围,能够实时的显示波形的类型、频率和 幅值。 2.1 方案的设计思路
目录
1 引言 ......................................................................1 1.1 题目要求及分析 ..........................................................1 1.1.1 示意图 ................................................................1 1.2 设计要求 ................................................................1 2 波形发生器系统设计方案 ....................................................2 2.1 方案的设计思路 ..........................................................2 2.2 设计框图及系统介绍 ......................................................2 2.3 选择合适的设计方案 ......................................................2 3 主要硬件电路及器件介绍 ....................................................4 3.1 80C51 单片机 .............................................................4 3.2 DAC0832 .................................................................5 3.3 数码显示管 ..............................................................6 4 系统的硬件设计 ............................................................8 4.1 硬件原理框图 ............................................................8 4.2 89C51 系统设计 ...........................................................8 4.3 时钟电路 ................................................................9 4.4 复位电路 ................................................................9 4.5 键盘接口电路 ...........................................................10 4.7 数模转换器 .............................................................11 5 系统软件设计 .............................................................12 5.1 流程图: ...............................................................12 5.2 产生波形图 .............................................................12 5.2.1 正弦波 ...............................................................12 5.2.2 三角波 ...............................................................13 5.2.3 方波 .................................................................14 6 结论 .....................................................................16 主要参考文献 ...............................................................17 致谢 .......................................................................18

基于51的波形发生器设计报告

基于51的波形发生器设计报告

摘要:系统采用单片机stc90c51为控制核心,输出数字量,然后由pcf8591p进行数模转换,在示波器中显示波形。

显示利用的是动态LED共阴极数码管,显示其波形,频率。

按键采用的是独立按键,用来切换波形及调整频率。

波形通过对给定的点定义数组输出进行显示。

频率通过中断时间进行调节。

8路LED检测按键使用。

关键词:stc90c51,pcf8591p,独立按键一、题目要求题目:设计基于51的波形发生器。

设计要求:1、可产生正弦波及方波;2、频率可调节,并显示在数码管上。

3、LED 在运行过程中按要求亮。

二、设计方案2.1总体设计思路根据题目的要求,制定了整体方案:以STC90C51单片机为控制核心,P2^0、P2^1口接pcf8591p 信号输入并进行数模转换,P3口接8路独立按键,P1口接8路LED ,P0口接数码管显示,由程序控制P2口产生波形(分别是正弦波、方波),再由按键及按键次数控制产生波形的种类及频率在一定范围内可调。

在LED 上实时的显示波形的频率和种类,波形在示波器上产生。

正弦波波形的发生:在产生正弦波时,每周期只取80个点,在波形尽量不失贞的前提下,使其频率达到的值尽量大,以便示波器显示。

2.2总体框图2.3波形发生采用单片机和数模转换pcf8591p 实现波形的产生。

通过STC90C51执行方波正弦波程序,向D/A 转换器的输入端按I2C 总线方式发送数据,从而在D/A 转换电路输出端得到相应的电压波形。

在STC90C51的P3口接矩阵按键,通过软件编程来选择波形、频率,每种波形对应一个按键,频率增加、减少各对应一个按键。

2.3显示部分8段LED共阴极数码管,138译码器进行位选,P0口输出段选信号。

2.4按键部分采用独立按键,它相比较矩阵键盘,按键的数目比少,结构简单,方便操作,执行效率高。

三、硬件电路硬件电路原理图3.1显示及键盘接口电路功能:led显示,按键扫描。

由LED数码管显示器和独立按键组成。

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计

基于51单片机波形发生器课程设计1. 引言波形发生器是电子技术领域中常用的仪器设备,用于产生各种不同形状的电信号波形。

在电子电路实验和测试中,波形发生器能够提供不同频率、幅度和相位的信号,用于测试和验证电路的性能。

本篇文章将介绍一个基于51单片机的波形发生器设计。

通过使用51单片机,我们可以实现一个简单但功能强大的波形发生器,并通过编程控制实现不同类型的波形输出。

2. 硬件设计2.1 51单片机51单片机是一种常见的8位微控制器,具有低功耗、高性能和广泛应用等特点。

在本设计中,我们选择使用51单片机作为主控芯片。

2.2 数模转换芯片为了将数字信号转换为模拟信号输出,我们需要使用一个数模转换芯片。

在本设计中,我们选择使用DAC0800芯片作为数模转换器。

2.3 操作面板为了方便用户操作和设置参数,我们设计了一个操作面板。

该面板包括按键、旋钮和显示屏等组件,用户可以通过操作面板来控制波形发生器的参数和功能。

2.4 输出接口为了将模拟信号输出到外部设备,我们设计了一个输出接口。

该接口可以连接到示波器或其他测试仪器,以便观察和测量输出信号。

3. 软件设计3.1 程序框架波形发生器的软件设计主要包括初始化设置、参数调整和波形生成等功能。

我们可以使用C语言编程,在51单片机上实现这些功能。

以下是程序框架的伪代码:void main(){初始化设置();while(1){获取用户输入();参数调整();波形生成();}}3.2 初始化设置在初始化设置阶段,我们需要对51单片机和数模转换芯片进行初始化配置。

这包括设置时钟频率、IO口方向、数模转换精度等。

以下是初始化设置的伪代码:void 初始化设置(){设置时钟频率();配置IO口方向();配置数模转换精度();}3.3 参数调整在参数调整阶段,用户可以通过操作面板来调整波形发生器的参数。

这包括选择波形类型、设定频率和幅度等。

以下是参数调整的伪代码:void 参数调整(){获取用户输入();if(用户选择了波形类型){设置波形类型();}if(用户设定了频率){设置频率();}if(用户设定了幅度){设置幅度();}3.4 波形生成在波形生成阶段,根据用户设定的参数,我们可以通过数模转换芯片来生成相应的波形信号。

基于51单片机的波形发生器的设计说明

基于51单片机的波形发生器的设计说明

目录1 设计要求 (1)1.1 题目要求及分析 (1)1.1.1 示意图 (1)1.2 设计要求 (1)2 波形发生器系统设计方案 (2)2.1 方案的设计思路 (2)2.2 设计框图及系统介绍 (2)2.3 选择合适的设计方案 (2)3 主要硬件电路及器件介绍 (4)3.1 80C51单片机 (4)3.2 DAC0832 (5)3.3 数码显示管 (6)4 系统的硬件设计 (8)4.1 硬件原理框图 (8)4.2 89C51系统设计 (8)4.3 时钟电路 (9)4.4 复位电路 (9)4.5 键盘接口电路 (10)4.6 数模转换器 (11)5 系统软件设计 (12)5.1 流程图: (12)5.2 产生波形图 (12)5.2.1 正弦波 (12)5.2.2 三角波 (13)5.2.3 方波 (14)6 结论 (16)主要参考文献 (17)1 设计要求(1) 系统具有产生正弦波、三角波、方波三种周期性波形的功能。

(2) 用键盘控制上述三种波形(同周期)的生成,以及由基波和它的谐波(5次以下)线性组合的波形。

(3) 系统具有存储波形功能。

(4) 系统输出波形的频率围为1Hz~1MHz,重复频率可调,频率步进间隔≤100Hz,非正弦波的频率按照10次谐波来计算。

(5) 系统输出波形幅度围0~5V。

(6) 系统具有显示输出波形的类型、重复频率和幅度的功能。

2 波形发生器系统设计方案设计并制作一个波形信号发生器,能够产生正弦波、方波、三角波的波形,其中不使用DDS和一些专用的波形产生芯片。

并让系统的频率围在1Hz~1MHZ可调节,在频率围在1HZ~10KHz时,步进小于或等于10Hz,在频率围在10KHz~1MHz时,步进小于或等于100Hz,并且电压在0~5V围,能够实时的显示波形的类型、频率和幅值。

2.1 方案的设计思路以AT89C51单片机作为系统的控制核心,其中P0口接DAC0832作为信号输入同时进行数模转换,P1口用来接键盘,P2口接LED显示器,由程序来控制P0口产生的波形,再由按键和按键次数控制波形的种类、频率和幅值的大小,并且能够通过按键来控制波形频率值和幅度值。

基于51单片机的波形发生器毕业设计

基于51单片机的波形发生器毕业设计

基于单片机原理的波形发生器摘要:本系统采用单片机C8051为控制核心,输出数字量,然后由DAC0832把数字量转换成模拟量;但是输出的是电流,需要用运放(OP07),把电流转换成电压量。

显示利用的是LCD1602的液晶,显示其波形,幅值。

按键应用的是独立按键,用来波形的切换,幅值,频率的调解。

其运算核心,我们通过MATLAB对正弦波,三角板,正弦波进行采样,得到一组组数据,然后同过数组存储;利用中断对数组进行扫描。

其频率的调解就是调节其中断间隔的时间,幅值就是调节其数字的大小(同时乘以某个小于1的数)。

为了波形的合成,我们采用的点的个数都是20个。

关键词:AT-89C51 DAC0832 独立按键 OP07The Design of Waveform Generator Based on 51 Abstract:This system adopts single-chip C8051 as the control core, digital output, and then by DAC0832 convert digital to analog; But the output is current, the need to use operational amplifier (OP07), the amount of current into a voltage. Display using the LCD1602 LCD, display the waveform amplitude. Key applications is independent, switch to waveform, amplitude, frequency of mediation. Its core operation, we use MATLAB to sine wave, triangle, the sine wave samples, groups of data, and then with an array of storage; Using the interrupt for scanning array. The frequency of mediation is to adjust one interval time, amplitude is adjusting the size of its digital (multiplied by a certain number of less than 1) at the same time. For the waveform synthesis, we adopt the number of points is 20.Keywords:AT-89C51 DAC0832 Separate button OP07一、题目要求与分析设计任务:设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。

基于51单片机的波形发生器设计

基于51单片机的波形发生器设计

基于51单片机的波形发生器设计本次课程设计旨在设计一个波形发生器,能够产生单极性、幅度可调、周期可调的方波、锯齿波、三角波和正弦波信号。

设计采用AT89C51单片机为核心,通过与8279芯片、38译码器和锁存器的配合,实现对键盘状态的检测和LED显示的控制。

通过D/A转换器、运算放大器和示波器,实现对波形的输出,并在8位LED显示器上显示波形类型的代号、幅值和频率。

键盘为4*8键盘,通过键盘摁键实现对波形种类、幅值和频率等的调节。

为了实现上述功能,我们需要选择合适的硬件。

首先,我们选择AT89C51单片机作为核心芯片。

AT89C51具有4k字节Flash闪速存储器、128字节内部RAM、32个I/O口线、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路等标准功能。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

因此,AT89C51芯片具有优良的性能,符合题目的要求。

除了AT89C51单片机外,我们还需要选择其他硬件设备。

通过与8279芯片、38译码器和锁存器的配合,实现对键盘状态的检测和LED显示的控制。

D/A转换器、运算放大器和示波器用于实现波形的输出。

8位LED显示器用于显示波形类型的代号、幅值和频率。

键盘为4*8键盘,通过键盘摁键实现对波形种类、幅值和频率等的调节。

三.软件设计本次课程设计需要编写相应的软件程序,以实现波形发生器的各项功能。

软件设计主要涉及到以下几个方面:1.键盘扫描程序设计键盘扫描程序需要实现对键盘状态的检测,以获取用户输入的波形种类、幅值和频率等参数。

我们采用轮询的方式进行键盘扫描,即不断地检测键盘状态,直到用户输入了有效的参数为止。

基于51系列单片机的多功能波形发生器及特定波形幅值调节

基于51系列单片机的多功能波形发生器及特定波形幅值调节

基于51系列单片机的多功能波形发生器及特定波形幅值调节概述:随着科技的不断进步,波形发生器在各种测量、调试和实验中发挥着重要的作用。

本文将介绍一种基于51系列单片机的多功能波形发生器,并且可以对特定波形的幅值进行调节。

设计原理:本波形发生器采用51系列单片机作为核心控制器,并通过DAC芯片将数字信号转换为模拟信号输出。

通过LCD显示模块显示当前所选的波形类型和幅值,并通过按键来切换和调节相应的参数。

主要功能:1.多波形输出:本波形发生器可以输出多种波形,如正弦波、方波、三角波、锯齿波等。

用户可以通过按键选择所需的波形类型。

2.幅值调节:本波形发生器还可以根据用户的需求,对特定波形的幅值进行调节。

3.频率调节:用户可以通过按键来调节波形的频率,以满足不同的实验需求。

4.输出控制:用户可以通过按键选择启用或停用输出信号。

硬件设计:1.单片机控制电路:使用51系列单片机作为核心控制器,通过控制IO口的状态来实现波形选择和参数调节。

2.DAC芯片:将单片机输出的数字信号转换为模拟信号,实现波形的输出。

3.LCD显示模块:用于显示当前所选的波形类型和幅值。

4.按键模块:用于选择波形类型、调节幅值和频率等参数。

5.输出控制电路:通过控制开关,使得输出信号可以被启用或停用。

软件设计:1.系统初始化:包括设置IO口的状态、初始化LCD显示模块、初始化按键模块等。

2.波形选择:通过按键选择所需的波形类型,并将相应的参数传递给DAC芯片。

3.幅值调节:根据用户的需求,通过按键调节特定波形的幅值,并通过DAC芯片实现相应的调节。

4.频率调节:通过按键调节波形的频率,并通过定时器来实现相应的调节。

5.输出控制:根据用户选择的开关状态,控制输出信号的启用或停用。

总结:基于51系列单片机的多功能波形发生器及特定波形幅值调节是一种灵活、实用的设计方案。

它可以满足各种不同波形的输出需求,并且可以根据用户的需求对波形的幅值进行调节。

基于单片机的波形发生器设计讲解

基于单片机的波形发生器设计讲解

《计算机控制技术》课程设计报告学校:女徽建筑大学课题名称:基于单片机的波形发生器学号:10205900143班级:10城建电子1班学生:圣茂芳指导教师:严辉,夏巍,丁刚时间:2013年6月17日至2013年6月30日目录第一章:引言1.1设计目的,任务和要求1.2摘要1.3波形发生器概述1.4总体方案介绍1.4.1整体流程图1.4. 2基于proteus电路的整体框图第二章硬件结构2.1AT89C51单片机最小系统2.2MCS-51单片机的内部结构2.2.1典型的MCS-51单片机由以下几个基本部分组成2. 2.2 MCS-51单片机的引脚描述2. 3晶振电路2.4 4x4矩阵键盘的设计2. 5显示模块第三章系统软件设计3.1开发软件Keil uVision3简介3.2各模块程序编写3.2.1键盘矩阵模块3.2.2锯齿波程序编写3.2.3三角波程序编写3.2.4方波程序编写第四章附件4. 1原理图4.2个人总结4.3参考文献第一章:引言1.1设计目的、任务和要求设计目的课程设计是一项重要的实践性教育环节,是学生在完成本专业所有课程学习后必须接受的一项结合本专业方向的、系统的、综合的工程训练。

在指导教师的指导下,运用工程的方法,通过一个较复杂的课题的设计练习,可使学生通过综合的系统设计,熟悉设计过程、设计要求、完成的工作内容和具体的设计方法,掌握必须提交的各项工程文件。

设计任务1.掌握数/模转换器的控制原理;2.结合8051设计一个8位的D/A控制系统;3.设计一 4 4键盘,其中0—9号键为数字键,用于A/D的输出点压设置,K0 -K5键作为功能键;4.K4键为设置键,用于A/D的上下限电压设置,K5键为确认键,用于设置A/D 输出电压的确认;5.K0键,输出三角波波形;6.K1键,输出锯齿波波形;7.K2键,输出阶梯波波形;8.K3键,输出梯形波波形;三:设计要求1-方案论证按系统功能实现要求,决定控制系统的实现方案,选择芯片,做出系统框图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1 引言 (1)1.1 题目要求及分析 (1)1.1.1 示意图 (1)1.2 设计要求 (1)2 波形发生器系统设计方案 (2)2.1 方案的设计思路 (2)2.2 设计框图及系统介绍 (2)2.3 选择合适的设计方案 (2)3 主要硬件电路及器件介绍 (4)3.1 80C51单片机 (4)3.2 DAC0832 (5)3.3 数码显示管 (6)4 系统的硬件设计 (8)4.1 硬件原理框图 (8)4.2 89C51系统设计 (8)4.3 时钟电路 (9)4.4 复位电路 (9)4.5 键盘接口电路 (10)4.7 数模转换器 (11)5 系统软件设计 (12)5.1 流程图: (12)5.2 产生波形图 (12)5.2.1 正弦波 (12)5.2.2 三角波 (13)5.2.3 方波 (14)6 结论 (16)主要参考文献 (17)致谢....................................................... 错误!未定义书签。

1引言1.1题目要求及分析题目:基于51单片机的波形发生器设计,即由51单片机控制产生正弦波、方波、三角波等的多种波形。

1.1.1示意图图1:系统流程示意图1.2设计要求(1) 系统具有产生正弦波、三角波、方波三种周期性波形的功能。

(2) 用键盘控制上述三种波形(同周期)的生成,以及由基波和它的谐波(5次以下)线性组合的波形。

(3) 系统具有存储波形功能。

(4) 系统输出波形的频率范围为1Hz~1MHz,重复频率可调,频率步进间隔≤100Hz,非正弦波的频率按照10次谐波来计算。

(5) 系统输出波形幅度范围0~5V。

(6) 系统具有显示输出波形的类型、重复频率和幅度的功能。

2波形发生器系统设计方案设计并制作一个波形信号发生器,能够产生正弦波、方波、三角波的波形,其中不使用DDS和一些专用的波形产生芯片。

并让系统的频率范围在1Hz~1MHZ可调节,在频率范围在1HZ~10KHz时,步进小于或等于10Hz,在频率范围在10KHz~1MHz时,步进小于或等于100Hz,并且电压在0~5V范围,能够实时的显示波形的类型、频率和幅值。

2.1方案的设计思路以AT89C51单片机作为系统的控制核心,其中P0口接DAC0832作为信号输入同时进行数模转换,P1口用来接键盘,P2口接LED显示器,由程序来控制P0口产生的波形,再由按键和按键次数控制波形的种类、频率和幅值的大小,并且能够通过按键来控制波形频率值和幅度值。

由运算放大器DAC0832来实现输出电流到电压的转换,即实现数字信号到模拟信号的转换。

另外在LED上显示实时的频率值和幅度值,产生的波形在示波器显示。

并且通过按键来决定波形数据的存储方式,在按键按下后,就把当时的波形所对应的幅度值、频率值等参数存储下来。

波形的合成:在波形的合成时,通过外部中断高低电平的延时的时间来进行解码,在采样的时,对正弦波,三角波,方波都只取了20个采样点,因为采样点越少,其频率能够达到的值就会越大,合成时就是对幅值点进行一个叠加来输出一组波形。

2.2设计框图及系统介绍系统主要部分设计框图如下图所示:图2:框图设计2.3选择合适的设计方案方案一:采用模拟分立元件或单片函数发生器就可以产生正弦波、方波、三角波,方法简单。

通过调整外部元件也可以实现输出频率的改变,但采用模拟元器件造成元件分散性太大,从而产生的频率稳定性较差、抗干扰能力低、灵活性较差、而且精度低,不能实现任意波形转换和波形运算输出等方面自主控制功能。

方案二:采用专业的锁相式频率合成方案,这种锁相式频率合成是一种高稳定度和高精确度的大量离散技术,他能够准确的产生波形,可以很好的解决频率稳定精确的情况下又要求频率在较大的范围内可调的问题。

但是频率受VCO可变频率范围上的影响,高低频率比无法做到很高,还有其只能产生正弦波或方波,不能满足产生三角波的要求。

方案三:采用AT89C51单片机和数模转换器DAC0832实现波形的产生。

波形的产生方法是用AT89C51单片机执行波形程序,向DAC0832转换器的输入端输入相应的数据,从而在DA转换电路输出端再通过运放电路转换得到相应的电压波形。

在AT89C51的P1口接按键控制波形的种类和波形的频率,每种波形对应一种按键方式。

此方案原理简单,同时适合操作,实现起来也相对较容易。

经比较,方案三的设计能够更好的实现和完成题目的要求,产生的三种波形和频率可由按键控制,并通过按键改变来转换不同的波形,也能够在示波器上显示出所要求的波形。

波形的频率步进也可以实现调节,具有线路简单、可行性高、符合设计要求等优点。

在本设计的基础上,加上LED数码显示管,从而能够在LED上显示出频率值、幅度值信息。

输出的波形也较稳定,精度较高,通过滤波电路使得系统的抗干扰性增强,电路简单,性价比高。

综上所述,我们选择了第三种方案。

3主要硬件电路及器件介绍3.180C51单片机图3:8051引脚图80C51单片机按功能划分,由8个部件组成:微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、四个I/O口(P0口、P1口、P2口、P3口)、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)的集中控制方式[1]。

各功能部件的介绍:(1) 数据存储器(RAM):片内为128个字节单元,片外最多可扩展至64K字节。

用以存放数据,我们称之为片内数据存储器。

(2) 程序存储器(ROM/EPROM):片内ROM为4K,片外最多可扩展至64K字节。

(3) 中断系统:具有5级中断的中断系统,2级中断优先权。

(4) 定时器/计数器:2个16位的定时器/计数器,具有四种工作方式。

(5) 串行口:1个全双工的串行通信接口,具有四种工作方式。

(6) 特殊功能寄存器(SFR)共有21个,每个寄存器占一个存储单元。

(7) 微处理器:为8位CPU,内部具有一个8位CPU(位处理器),不仅可处理字节数据,还可以进行位变量的处理。

另外还有四个8位双向并行的输入/输出(I/O)端口,每个端口都有八条引线和一个输出驱动器和一个输入缓冲器。

这四个端口的功能不完全相同。

P0口既可作一般I/O端口使用,又可作地址/数据总线使用;P1口是一个准双向并行口,作通用并行I/O口使用;P2口除了可作为通用I/O使用外,还可在CPU访问外部存储器时作高八位地址线使用;P3口是一个多功能口除具有准双向I/O功能外,还具有第二功能。

控制引脚介绍:(1) 电源:单片机使用的是5V电源,其中40引脚接电源正级,20引脚接地。

(2) 时钟引脚XTAL1、XTAL2时钟引脚外接晶体与片内反相放大器构成了振荡器,产生片内CPU时钟控制信号。

此引脚也可外接晶体振荡器。

(3)RST:当时钟电路开始工作时,在此引脚上出现24个时钟周期以上的高电平能够使单片机复位。

另外我们在此引脚与V CC之间连接一个24兆欧的下拉电阻,在外接电路之间连接二个36微法的电容,可以保证有效的复位。

在单片机正常工作时,此引脚应为≤0.5V低电平。

(4) ALE:当访问外部程序存储器时ALE(地址锁存允许)输出脉冲用于16位地址中的低8位的锁存信号,以便P0口实现地址/数据复用。

当不去访问外部锁存器时,ALE端将输出一个1/6的时钟频率正脉冲信号输出,此频率约为时钟振荡器的1/6。

但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即ALE会跳过一个脉冲。

因此,严格来说,用户不能用ALE做时钟源或定时。

ALE端可以驱动8个TTL负载(5) /PSEN(29脚):此引脚是单片机访问片外ROM存储器的读选通信号。

在执行访问片外ROM的MOVC指令期间,每个机器周期PSEN上产生一个负脉冲,用于对于片外ROM数据存储器选通,这两次有效的/PSEN信号不出现。

其他情况下,/PSEN线均为高电平封锁状态。

(6) /EA/VPP(31脚):当EA端保持高电平时并且程序地址小于4KB时,读取内部存储器指令,但在PC值超过4KB程序地址时则执行外部存储器内的程序;当/EA保持低电平时,不管地址大小则只访问外部程序存储器,一律读取外部程序存储器指令[2]。

3.2 DAC0832图4:DAC0832引脚图DAC0832是8分辨率的D/A转换芯片,集成电路内有两级输入寄存器。

由8位输入锁存器、8位DAC寄存器、8位D/A 转换器及转换控制电路四部分构成。

8位输入锁存器用于存放主机送来的数字量,使输入数字得到缓冲和锁存,并加以控制。

DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压[3]。

DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

DAC0832的引脚功能如下:(1) D0~D7:数字信号输入端。

(2) ILE:输入寄存器允许,高电平有效。

(3) CS:片选信号,低电平有效。

(4) WR1:写信号1,低电平有效。

(5) XFER:传送控制信号,低电平有效。

(6) WR2:写信号2,低电平有效。

(7) IOUT1、IOUT2:DAC电流输出端。

(8) RFB:是集成在片内的外接运放的反馈电阻。

(9) VREF:基准电压(-10~10V)。

(10) Vcc:是源电压(+5~+15V)。

(11) AGND:模拟地NGND:数字地,可与AGND接在一起使用。

3.3数码显示管通过控制7个笔画段的亮或暗,和控制一个小数点的亮和暗来实现数码管显示。

LED 显示器有共阴极和共阳极2种形式。

共阳极显示器是发光二极管的阳极连接在一起,当需要显示某字符时,只需要将共阳极端接高电平,根据显示需要让a-h中某些位置接低电平。

共阴极显示器是发光二极管的阴极连接在一起,当需要显示某字符时,只需要将共阴极端接低电平,a-h中某些位接高电平即可。

显示器的工作方式分为静态显示方式和动态显示方式两种:(1) 静态显示方式就是显示器在显示一个字符时,相应的发光二极管恒定的导通或截止,例如a、b、c、d、e、f导通,g截止时显示“0”,这种使显示器显示字符的字形数据常称为段数据。

静态显示方式的每一个七段显示器,需要由一个8位并行口控制。

优点是显示稳定,提高了工作效率,缺点是位数较多时显示口随之增加。

(2) 动态显示方式是一位一位的轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。

调整电流和时间参数可以实现亮度较高较稳定的显示,如显示器的位数不大于8位,则控制显示器公共极的电位只需要一个8位口(位数据口),控制字形也需要一个8位口(段数据口)。

相关文档
最新文档