利用单片机AT89C52采用程序设计方法产生锯齿波

合集下载

基于AT89C52单片机信号发生器设计

基于AT89C52单片机信号发生器设计

目录引言 (2)一设计任务 (2)1设计内容 (2)2设计要求 (2)二芯片功能介绍 (2)三总体功能图和总原理图 (4)四程序流程图 (5)1 锯齿波程序流程图 (5)2 三角波程序流程图 (5)3 梯形波程序流程图 (6)4 方波程序流程图 (7)5 正弦波程序流程图 (8)6 整体程序流程图 (9)五程序设计 (10)六仿真测试 (13)七总结与体会 (16)八参考文献 (16)九致谢....................................................................... 错误!未定义书签。

引言信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。

这次的设计分为五个模块:单片机控制及显示模块、数模转换模块、波形产生模块、输出显示模块、电源模块。

使用AT98C52作为主控台结合芯片DAC0832产生1HZ-10HZ频率可调的五种信号波(锯齿波、三角波、方波、梯形波、正弦波)。

这几种波形有几个开关控制,可以随意进行切换,十分方便。

另外,波形的频率和振幅也可以通过开关进行更改。

可以说这次的设计操作简单,内容丰富,而且电路快捷明了。

1设计任务1.1设计内容以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、梯形波等),且频率、幅度可变的函数发生器。

1.2设计要求设计借口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图和仿真图,并编写出控制波形的程序。

2芯片功能介绍2.1、DAC0832芯片介绍:DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。

基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。

DAC0832的内部结构框图如下图所示。

图2.1 DAC0832的内部结构框图2.2 DAC0832的外部引脚及功能介绍图如下:图2.2 DAC0832介绍2.3 DAC0832的应用:DAC0832一是用作单极性电压输出,二是用作双极性电压输出,最后是用作程控放大器。

毕业论文基于AT89C52单片机最小系统设计(可编辑)

毕业论文基于AT89C52单片机最小系统设计(可编辑)

毕业论文基于AT89C52单片机最小系统设计摘要MCS-52单片机的内部虽已集成了很多资源,但这类单片机内部的各种资源都是折中配置的,在实际许多应用中,基本型MSC-52单片机的资源显得缺乏,针对这个问题,本文首先通过对主要部件方案论证,选取合理可用的部件,其次详述了通过对单片机进行扩展外围设计一个能满足广泛应用要求的单片机通用系统,并重点介绍了单片机扩展原理,系统硬件原理图的设计过程与说明和软件的设计过程,同时也简要介绍了硬件制作工艺等环节。

最后,通过硬件测试和软件调试,该系统具有功能强,效率高等优点,符合大部分单片机应用设计要求并可投入使用关键词 MCS-52单片机,系统硬件原理图,单片机AbstractMCS-52 microcontroller has integrated a lot of internal resources, but such single-chip resources are the various configurations of compromise, in many practical applications, the basic MSC-52 MCU resources it is lack of response to this problem, this paper first of all, the main components of the program through the demonstration, select the components reasonably available, followed by details of the external expansion of single-chip design of a widely used to meet the requirements of general-purpose single-chip systems, and focuses on extension of theprinciple of the single-chip, system hardware schematic diagram and description of the design process and software design process, as well as a brief introduction of the hardware manufacturing process and so on. Finally,Through the hardware test and debug software, the system has a strong functions, high efficiency, in line with the requirements of most single-chip microcomputer application design and put into use.Key Words MCS-52 microcontroller ,system hardware schematic diagram,microcontroller目录摘要IAbstract II1 引言 11.1选题意义 11.2单片机简介 11.3 单片机应用 22系统设计及工作原理 42.1 系统整体方案提示42.2 系统工作原理及整体电图框图 42.3 AT89C52芯片的介绍 53 系统硬件设计113.1 硬件模块设计113.1.1 AT89C52单片机电路113.1.2 指拨开关,按键和显示接口电路的设计123.1.3 独立按键电路的设计143.1.4 蜂鸣器电路定时模块设计153.1.5 LCD液晶显示接口电路的设计153.1.6 A/D转换电路设计173.1.7 EEPROM存储器电路设计173.1.8 RS-232接口电路设计183.1.9 电源电路设计194 系统软件设计204.1 键盘扫描程序的设计204.2显示程序设计23结论25致谢26参考文献27附录 A1.1 28附录 A1.2 291 引言1.1选题意义由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS-52系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。

AT89C52单片机原理与接口技术课程设计

AT89C52单片机原理与接口技术课程设计

AT89C52单片机原理与接口技术课程设计一、课程设计背景及目的AT89C52单片机是一种8位低功耗高性能CMOS Flash微控制器,被广泛应用于工控、仪器仪表等领域。

本课程设计旨在通过使用AT89C52单片机,系统地讲解单片机电路的组成原理、指令系统、应用接口,培养学生的软硬件设计能力,以实现一个完整的工程设计。

二、实验要求本次实验设有以下要求:1.设计一个基于AT89C52单片机的温度检测与报警系统;2.系统应能通过温度传感器获得环境温度,当温度超过设定阈值后进行报警;3.设计实时温度显示功能;4.熟悉AT89C52的功能、特点、指令系统、输入输出口等,学会使用Keil C51编程;5.能够熟练使用Oscilloscope,Verilog等EDA工具设计单片机电路原理图和PCB。

三、实验所需硬件与软件硬件:1.AT89C52单片机;2.DS18B20数字温度传感器;3.MAX232芯片;4.LED指示灯、按键开关、蜂鸣器、电阻电容等组件;5.电源、Oscilloscope组件。

软件1.Keil C51;2.Proteus;3.Altium Designer。

四、实验流程1. 单片机接口设计1.将DS18B20数字温度传感器中的DQ引脚连接至单片机P1.0口;2.将MAX232芯片中的T2OUT和R2IN引脚分别连接至单片机P3.1与P3.0口。

2. 温度检测功能设计1.编写程序,通过单片机P1.0口将DS18B20温度传感器所需的初始化代码发送给其,然后实现温度读取功能;2.对所读取的温度进行比较,当温度高于阈值时使用单片机P3.2口控制蜂鸣器发出警报,同时向P3.4口输出高电平使LED指示灯闪烁;3.当温度恢复正常时,将P3.2和P3.4口输出低电平,关闭警报。

3. 温度显示功能设计1.配置单片机P2.0口为8位数码管共阴极数码管的位选控制信号,P2.1~P2.7口为8位数码管的段选控制信号;2.编写数字转移代码,将读取到的温度进行转换成8位二进制码;3.编写8位数码管显示程序,将温度以数码形式实时输出。

基于AT89C52单片机的音乐盒设计方案

基于AT89C52单片机的音乐盒设计方案

1/4和1/8节拍的时间设定
曲调值
DELAY 曲调值 DELAY
调4/4
125毫秒
调4/4 62毫秒
调3/4 调2/4
187毫秒 250毫秒
调3/4 94毫秒 调2/4 125毫秒
对于单片机来说,产生不同频率的脉冲是非
常方便的,利用单片机的定时/计数器来产生这样
的方波频率信号。因此,需要弄清楚音乐中的音
Page 3
传统音乐盒
Page 4
设计任务及要求
本设计是以AT89C52芯片的电路为基础,外
部加上放音设备,以此来实现音乐盒的硬件电
路,通过软件程序来控制单片机内部的定时器
■设 使其演奏出优美动听的音乐。用户可以按照自
■计 己的喜好选择音乐并将其转化成机器码存入单
■任 片机的存储器中。该系统具有很好的通用性,
21
基于AT89C52单片机的音乐盒设计
论文结构
1 2 3 4 5
■课题意义、任务及要求 ■应用软件简介 ■设计方案 ■设计结构 ■系统电路图
Page 2
设计意义
传统的音乐盒多是机械音乐盒,其工作原理是通过齿 轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁 片制成的琴键,从而发出声音但是,机械式的音乐盒体 积比较大,比较笨重,且发音单调。水、灰尘等外在因 素,容易使内部金属发音条变形,从而造成发音跑调。 另外,机械音乐盒放音时为了让音色稳定,必须放平不 ■设 能动摇,而且价格昂贵,不能实现大批量生产。 ■计 本文设计的音乐盒,是基于单片机设计制作的电子 ■意 式音乐盒。与传统的机械式音乐盒相比更小巧,能演奏 ■义 多个曲目且携带方便。电子式音乐盒动力来源是电池, 制作工艺简单,可进行批量生产,且价格便宜。基于单 片机制作的电子式音乐盒,控制功能强大,可根据需要 选歌,使用方便。根据存储容量的大小,可以尽可能多 的存储歌曲。另外,可以设计彩灯外观效果,使音乐盒 的功能更加丰富。

单片机音乐发生器-毕业设计说明书(论文)

单片机音乐发生器-毕业设计说明书(论文)

毕业设计说明书(论文)目录摘要 (1)第1章绪论 (2)第2章音乐基础知识 (3)2.1 音乐基础 (3)2.2 音频脉冲和音乐节拍的实现 (3)2.2。

1 音频脉冲的产生 (3)2。

2。

2 音乐节拍的产生 (5)第3章系统方案设计 (6)3.1设计任务 (6)3。

2 设计目的 (6)3.3 设计过程 (6)3。

4 设计思想 (6)3。

4.1 方案设计与选择 (7)第4章硬件电路设计 (9)4.1 电路组成及工作原理 (9)4.1。

2 工作原理 (9)4.2 AT89C52单片机介绍 (9)4。

4 发声驱动电路 (12)4。

5 显示电路 (12)4.6 控制电路 (13)第5章软件设计 (14)5.1程序设计 (14)5。

2 程序流程图 (14)第6章系统调试 (15)6.1 常用调试工具 (15)6。

1。

1 Proteu仿真软件介绍 (15)6.1.2 Keil编译环境介绍 (15)6。

2 系统调试方法 (15)结论 (17)致谢 (18)参考文献 (19)附录 (20)附录1 程序清单 (20)附录2 单片机音乐发生器电路原理图 (33)毕业设计说明书(论文)摘要在电子技术日月更新、不断换代,计算机程序设计语言应用广泛,特别是单片机技术日趋发达的情况下,为了培养并增强设计自主性和动手能力强的人才,了解单片机强大的设计功能,我们进行了此次设计.为了实现一首音乐的播放,选择了用单片机来实现音乐的播放,因为它有很多优点,如:外部结构简单、实现起来比较方便等。

对于单片机产生音乐,关键是控制频率的输出。

我们知道,不同的声音对应不同的频率,产生有规律的频率输出就可以得到相应规律的声音。

音乐中,有7个基本音符:do﹑re ﹑mi﹑fa﹑so﹑la﹑si,七个不同的音符对应着不同的频率。

只要我们对照音符输出相对应的频率,就可以产生美妙的音乐了。

在此次设计中主要采用单片机AT89C52和一个SOUNDER(喇叭)来实现音乐的播放,在单片机AT89C52的18号和19号引脚(外接晶振端子,分别是片内反相放大器输入端、片内反相放大器输出端)上外接振荡电路,以此来提供时钟频率(时钟频率为12MHz);而P3口中的P2.0端口作为音频输出口;并同时利用P3口中P3.2、P3。

基于AT89C52单片机的超低频信号发生器设计

基于AT89C52单片机的超低频信号发生器设计

基于AT89C52单片机的超低频信号发生器设计低频以及超低频信号在医学、电化学研究和实验教学中都有广泛的应用,尤其在电化学领域里,超低频信号发生器已成为电化学仪器必不可少的组成部分。

电化学仪器配以方波、三角波和正弦波发生器,可以研究电化学系统各种暂态行为;配以慢的线性扫描信号或阶梯波信号,可以自动进行稳态(或接近稳态)极化曲线测量。

然而市面上适用于电化学领域的信号发生器很少,传统信号发生器无法满足专业需求,且购买成本太高。

现介绍一种用单片机控制的信号发生器,可输出方波、三角波及正弦波。

产生的波形信号频率范围是0.125 mHz(毫赫兹)~80 Hz,输出的模拟信号电压范围是-10~+10 V,输出信号的幅值和频率具有一定的调节范围。

该信号发生器与传统的信号发生器相比,有如下的特点:该信号发生器可以满足电化学领域对于信号发生器的要求,最低频率可达到0.125 mHz,在国内达到先进水平,且该信号发生器在超低频时精度高,失真度小,性能稳定,电路结构简单,体积小。

1 工作原理超低频信号发生器的输入参数有扫描方式、上下限电平、波形频率。

其中,扫描方式有单次、往返、连续三种选择;上下限电平在-10~+10 V之间,且上限电平大于下限电平;波形频率范围为0.125 mHz~80 Hz。

输出波形有三种:方波、三角波、正弦波。

当信号发生器上电后,先进行复位清零,然后进行系统初始化,用户通过将键盘设置扫描频率、上下限电平及扫描方式等参数输入单片机,并通过LCD进行显示。

按照一定的算法准确调节各个功能模块,断开积分电路模块中控制仪器工作的模拟开关,使信号发生器开始工作,从而输出所需信号波形。

2 波形产生原理该信号发生器可以产生频率、峰谷值可调的、连续的方波、三角波和正弦波。

下面详细介绍三种波形的产生原理。

2.1 正弦波产生原理由于该信号发生器的最低频率可达到0.125 mHz,传统的正弦波产生电路已经无法满足要求。

用stc89c52单片机产生pwm波

用stc89c52单片机产生pwm波

T0产生双路PWM信号,推动L293D或L298N为直流电机调速,程序已通过调试。

接L298N 时相应的管脚上最好接上10K的上拉电阻。

/* 晶振采用11.0592M,产生的PWM的频率约为91Hz */#include<reg51.h>#include<math.h>#define uchar unsigned char#define uint unsigned intsbit en1=P1^0; /* L298的Enable A */sbit en2=P1^1; /* L298的Enable B */sbit s1=P1^2; /* L298的Input 1 */sbit s2=P1^3; /* L298的Input 2 */sbit s3=P1^4; /* L298的Input 3 */sbit s4=P1^5; /* L298的Input 4 */uchar t=0; /* 中断计数器*/uchar m1=0; /* 电机1速度值*/uchar m2=0; /* 电机2速度值*/uchar tmp1,tmp2; /* 电机当前速度值*//* 电机控制函数index-电机号(1,2); speed-电机速度(-100—100) */void motor(uchar index, char speed){if(speed>=-100 && speed<=100){if(index==1) /* 电机1的处理*/{m1=abs(speed); /* 取速度的绝对值*/if(speed<0) /* 速度值为负则反转*/{s1=0;s2=1;}else /* 不为负数则正转*/{s1=1;s2=0;}}if(index==2) /* 电机2的处理*/{m2=abs(speed); /* 电机2的速度控制*/if(speed<0) /* 电机2的方向控制*/{s3=0;s4=1;}else{s3=1;s4=0;}}}}void delay(uint j) /* 简易延时函数*/{for(j;j>0;j--);}void main(){uchar i;TMOD=0x02; /* 设定T0的工作模式为2 */ TH0=0x9B; /* 装入定时器的初值*/TL0=0x9B;EA=1; /* 开中断*/ET0=1; /* 定时器0允许中断*/TR0=1; /* 启动定时器0 */while(1) /* 电机实际控制演示*/{for(i=0;i<=100;i++) /* 正转加速*/{motor(1,i);motor(2,i);delay(5000);}for(i=100;i>0;i--) /* 正转减速*/{motor(1,i);motor(2,i);delay(5000);}for(i=0;i<=100;i++) /* 反转加速*/{motor(1,-i);motor(2,-i);delay(5000);}for(i=100;i>0;i--) /* 反转减速*/{motor(1,-i);motor(2,-i);delay(5000);}}}void timer0() interrupt 1 /* T0中断服务程序*/{if(t==0) /* 1个PWM周期完成后才会接受新数值*/{ tmp1=m1;tmp2=m2;}if(t<tmp1) en1=1; else en1=0; /* 产生电机1的PWM信号*/ if(t<tmp2) en2=1; else en2=0; /* 产生电机2的PWM信号*/ t++;if(t>=100) t=0; /* 1个PWM信号由100次中断产生*/}。

基于单片机AT89C52的步进电机的控制器设计

基于单片机AT89C52的步进电机的控制器设计

基于单片机AT89C52的步进电机的控制器设计步进电机是一种非常常见的电机类型,由于其具有精准定位、适应高速运动以及控制简单等特点,被广泛应用于各种自动化设备中。

本文将从步进电机的工作原理、控制方式以及基于单片机AT89C52的步进电机控制器设计等方面展开阐述。

首先,我们来了解步进电机的工作原理。

步进电机是一种特殊的同步电动机,它具有内置的磁化轭,在没有外部励磁的情况下也能自动旋转。

步进电机的旋转是由控制电流方向和大小来实现的。

通常情况下,步进电机每转动一定角度,称为“步距角”,它可以是1.8度、0.9度、0.45度等,不同的步距角决定了电机的分辨率。

步进电机的控制方式主要有全步进和半步进两种。

全步进是指每次控制信号脉冲后,电机转动一个步距角。

而半步进则是在全步进基础上,在脉冲信号中引入一半步距角的微调。

控制信号脉冲可以是脉冲序列或者方波信号。

基于单片机AT89C52的步进电机控制器设计主要包括控制信号发生器的设计和步进电机驱动电路的设计。

控制信号发生器负责产生相应的控制信号脉冲,而步进电机驱动电路将这些脉冲信号转化为电流信号驱动步进电机。

控制信号发生器的设计可以采用定时器/计数器模块来实现。

AT89C52芯片具有可编程的定时器/计数器,可以用来产生控制信号的脉冲。

通过设置定时器的工作方式和计数值,可以实现不同频率、占空比的控制脉冲。

步进电机驱动电路的设计主要包括功率级驱动电路和电流控制电路。

功率级驱动电路负责将控制信号转化为足够大的电流驱动步进电机,通常采用功率放大器来实现。

电流控制电路则用来控制驱动电流的大小,使步进电机能够顺畅工作。

电流控制电路通常采用可调电阻、电流检测电阻和比较器等元件组成。

在步进电机控制器设计中,还需要考虑到步进电机的特性和应用需求。

例如,步进电机的电源电压、额定电流、阻抗、扭矩等参数需要与驱动电路匹配。

此外,还需要考虑到步进电机的机械结构、位置传感器、防重叠措施等因素。

利用单片机AT89C52采用程序设计方法产生锯齿波

利用单片机AT89C52采用程序设计方法产生锯齿波

1 引言本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz 的波形。

通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

2设计方案2.1系统硬件设计概述经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

2.2、设计要求1)、利用单片机采用软件设计方法产生四种波形2)、四种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及其频率2.1.2方案设计与论证1.2.1 信号发生电路方案论证方案一:通过单片机控制D/A,输出四种波形。

此方案输出的波形不够稳定,抗干扰能力弱,不易调节。

但此方案电路简单、成本低。

方案二:使用传统的锁相频率合成方法。

通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

方案三:利用MAX038芯片组成的电路输出波形。

MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。

但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2 单片机的选择论证方案一:AT89C52单片机是一种高性能8位单片微型计算机。

它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

基于单片机的低频信号发生器设计..

基于单片机的低频信号发生器设计..

基于单片机的低频信号发生器设计摘要本文设计低频信号发生器,以AT89C52单片机为核心,通过键盘输入控制信号类型和频率的选择,采用DA转换芯片输出相应的波形,同时以示波器进行实时显示信号相关信息,采用汇编语言进行编程,可实现方波,三角波。

锯齿波,正弦波四中波形的产生,且波形的频率可调。

经测试该设计方案线路优化,结构紧凑,性能优越,满足设计要求。

关键词:单片机,DA转换,信号发生器ABSTRACTLow frequency signal generator design, this paper USES AT89C52 single-chip microcomputer as the core, through the keyboard input control signal type and frequency of choice, with DA conversion chip output corresponding waveform, at the same time, the LED display information real-time display signal, using assembly language programming, which can realize square wave, triangle wave. Production of sawtooth, sine wave 4 waveform, and the frequency of the waveform is adjustable. By testing the design scheme of circuit optimization, compact structure, superior performance, meet the design requirements.Key Words:Single chip microcomputer, DA conversion, signal generator目录摘要 (1)ABSTRACT ............................................... 错误!未定义书签。

单片机产生方波、锯齿波、三角波程序

单片机产生方波、锯齿波、三角波程序

单片机产生方波、锯齿波、三角波程序单片机产生方波、锯齿波、三角波程序单片机产生方波、锯齿波、三角波程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intunsigned char x=0,m=0,y=128;sbit WR_DA=P2^1;sbit CS_DA=P2^0;//DA与单片机的接口sbit S0=P3^0; //波形选择,每次按下将产生不同的波形sbit S1=P3^1; //频率减sbit S2=P3^2; //频率加sbit S3=P3^3; //调节方波的占空比uchar code SinTab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x 9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf ,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe 1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0x ef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xb c,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0 x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x 51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0 x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x 16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0 x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0 x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x 15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0 x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x 4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0 x72,0x76,0x79,0x7c,0x80 };void delayms(uint t){uint i;while(t--){for (i=0;i<125;i++);//对于11.0592M时钟,约延时1ms}}void delay(uint t){uint i;for (i=t;i>0;i--);}void time0_init(){TMOD|=0x01; //定时器设置 16位TH0=-50000/256;TL0=-50000%256;//初始化值ET0=1;TR0=1;EA=1;}void time0_int(void) interrupt 1 {TR0=0;//关闭定时器TH0=-50000/256;TL0=-50000%256;//重装初值if(S0==0){delayms(10);//按键消抖if(S0==0) m++;while(!S0);//松手检测}if(S1==0){delayms(10);if(S1==0) x=x+1;while(!S1);//松手检测}if(S2==0){delayms(10);if(S2==0) x=x-1;while(!S2);//松手检测}if(S3==0){delayms(10);if(S3==0) y=y+5; while(!S3);//松手检测}if(y>254) y=0;if(m>5) m=0;if(x>50) x=0;TR0=1;//启动定时器}void fangbo() //方波{uchar i,j;j=255-y;CS_DA=0;WR_DA=0;for(i=y;i>0;i--){P0=0;delay(x);}while(j--){P0=255;delay(x);}}void juchi() //锯齿波{CS_DA=0;WR_DA=0;for(i=255;i>0;i--){P0=i;delay(x);}}void sanjiao() //三角波{uchar i;CS_DA=0;WR_DA=0;for(i=0;i<255;i++){P0=i;delay(x);}while(i--){P0=i;delay(x);}}void tixing() //梯形波{uchar i=255,j,k;CS_DA=0;WR_DA=0;{P0=i;delay(x);}for(j=0;j<100;j++) {P0=0;delay(x);}for(k=0;k<255;k++) {P0=k;delay(x);}}void sin() //正弦波{uchar a;CS_DA=0;WR_DA=0;for(a=0;a<255;a++) {P0=SinTab[a]; delay(x);}}main(){time0_init(); while(1){switch(m){case 0:fangbo(); //方波break;case 1:juchi(); //锯齿波break;case 2:sanjiao(); //三角波break;case 3:sin(); //正弦波break;case 4:tixing(); //梯形波break; default: fangbo(); }}}。

基于单片机的步进电机控制系统设计

基于单片机的步进电机控制系统设计

基于AT89C52单片机的步进电机控制系统设计摘要:步进电机专用开发系统,适用于数控机床及某些特定条件及系统。

本文通过单片机为开发平台,对步进电机进行控制.采用单片机A T89C52,根据输入的数据转化成的控制信号来控制步进电动机的角位移的一种方法,包括硬件设计和软件设计.整个系统主要由电机驱动电路,声光报警电路,4位LED显示电路,电源电路及核心单片机部分构成。

利用单片机产生步进电机驱动脉冲,通过4×4矩阵键盘能实现对步进电机启动、停止功能的选择以及加速、减速、反转功能的选择,使用方便、操作简单。

其中在步进电机控制器的设计中,重点阐述脉冲产生电路以及对速度的控制,实现对步进电机速度精确控制的开发系统.提高步进电机的步进精度,能够控制三相或四相步进电机。

且电路简单,成本较低,控制方便,移植性强.实用价值高。

关键词:A T89C52;步进电机;脉冲产生Design of Control System for Stepping Motor Based onAT89C52Abstract:A stepper motor dedicated development system,applicable to CNC machine tools and some special conditions and system. In this paper,through the SCM as the development platform,for the stepper motor control。

The paper introduce one way that controls the stepping motor by microcomputer AT89C52 depending on the control signal to which input data convert control the line displacement of the stepping motor,namely simply graph plotter,including its hardware and software。

基于AT89C52单片机温度控制系统的设计

基于AT89C52单片机温度控制系统的设计

基于AT89C52单片机温度控制系统的设计一、本文概述本文旨在介绍一种基于AT89C52单片机的温度控制系统的设计。

随着工业自动化和智能家居的快速发展,温度控制成为了许多应用场景中不可或缺的一部分。

AT89C52单片机作为一种常用的低功耗、高性能的微控制器,在温度控制系统中具有广泛的应用前景。

本文将详细介绍该系统的设计思路、硬件组成、软件编程以及实际应用效果,为相关领域的研究者和工程师提供有益的参考。

本文将概述温度控制系统的基本原理和重要性,阐述为何选择AT89C52单片机作为核心控制器。

接着,将详细介绍系统的硬件设计,包括温度传感器、执行器、显示模块等关键部件的选型与连接。

在软件编程方面,将阐述如何通过编程实现温度的采集、处理、显示和控制等功能。

还将探讨系统的稳定性、可靠性和安全性等方面的问题,并提出相应的解决方案。

本文将展示该温度控制系统的实际应用效果,通过实例分析其在不同场景中的表现,进一步验证系统的可行性和实用性。

本文的研究成果将为基于AT89C52单片机的温度控制系统设计提供有益的参考和指导,有助于推动相关领域的技术进步和应用发展。

二、系统硬件设计在设计基于AT89C52单片机的温度控制系统时,硬件设计是关键环节。

整个系统硬件主要包括AT89C52单片机、温度传感器、显示模块、控制执行机构以及电源模块等部分。

AT89C52单片机作为系统的核心,负责接收温度传感器的信号,进行数据处理,并根据预设的温度阈值发出控制指令。

AT89C52是一款8位CMOS微控制器,具有高性能、低功耗、高可靠性等特点,非常适合用于此类温度控制系统中。

温度传感器是系统的感知元件,用于实时采集环境温度信息。

在本设计中,我们选用了DS18B20数字温度传感器,它可以直接输出数字信号,简化了与单片机的接口电路,提高了系统的抗干扰能力。

显示模块负责将当前温度以及设定温度显示出来,方便用户查看。

我们采用了LCD1602液晶显示屏,它可以清晰地显示数字和字母,而且功耗低,寿命长。

毕业设计:基于单片机的频率计设计

毕业设计:基于单片机的频率计设计

毕业设计〔论文〕题目:基于单片机的频率计设计学生姓名:廖承润学号:学部〔系〕:信息学部专业年级:光信1班指导教师:赵真职称或学位:副教授2015年5 月20 日目录目录 (I)摘要....................................................... I II ABSTRACT....................................................... I V 第一章绪论. (1)1.1频率计概述 (1)1.2频率计发展现状及研究概况 (1)1.3本课题研究背景及主要研究意义 (2)数字频率计的种类 (2)第二章数字频率计的结构设计 (4)控制电路 (4)2.2单片机部分 (5)2.3数据显示电路 (6)2.4软件设计流程图 (9)第三章频率测量原理 (10)3.1测量频率的原理 (10)3.2直接测频法 (10)第四章系统设计 (11)4.1功能实现 (11)4.2硬件部分设计 (11)4.2.1 信号放大电路 (11)4.2.2 单片机AT89C52 (12)4.2.3 测量数据显示电路 (13)4.3硬件电路工作过程 (14)4.3.1 直接测频法的工作流程 (15)第五章数字频率计的设计与仿真 (17)电路的设计 (17)电路设计的内容和方法 (17)电路设计的步骤 (18)5.2数字频率计的仿真 (19)第六章减小误差措施及扩展方面 (23)减小误差措施 (23)扩展方面 (23)6.3功能上的完善 (24)6.3.1 增加键盘控制 (24)6.3.2 实现自动量程转换 (24)6.3.3 液晶显示器〔LCD〕进行数据的显示 (24)结论 (25)参考文献 (26)致谢 (27)附录 (28)1硬件设计原理图: (28)2数字频率计测量频率程序: (29)基于单片机的频率计设计摘要本文提出设计数字频率计的方案,重点介绍以单片机AT89C52为控制核心,实现频率测量的数字频率设计。

AT89C52单片机输出可调PWM波的方法设计

AT89C52单片机输出可调PWM波的方法设计

AT89C52单片机输出可调PWM波的方法设计
PWM 是“脉冲宽度调制”的意思。

PWM 实际上是在单片机的某个引脚输出一系列的矩形波,其周期一般是固定的;而其高电平、低电平所占用的时间,是可以受控调整的。

高电平、低电平所占用的时间之比,称为占空比,其值为0~1之间。

PWM 的应用很广,简单的说,它可以控制灯光的亮度、可以控制直流电机的转速,甚至还可以输出语音信号。

新型的单片机,往往都含有硬件的PWM 模块,编写程序就很简单;而老式的MCS-51系列,就不具备这个条件。

其实,在没有PWM 硬件的单片机上实现PWM,也并不难,只需一个定时器,令其工作在中断方式即可。

下面以网上的一个题目为例,说明实现PWM 方法。

要求:
1。

单片机的晶振是12MHz,输出周期为1s。

2。

用两个开关控制占空比的增加和减少,分20等级。

针对这个题目,做而论道设计了一个简单的实验电路:
在P2 口的8 条线输出PWM 波形;
在/INT1、/INT0 外接了两个按键,用来调整占空比;
在P0 口外接了两个BCD 数码显示器,用来显示当前的占空比的等级。

实验的时候,可以使用示波器来观察P2 口输出的波形。

如果把PWM 波形的频率提高,也可以用LED 观察到渐亮渐暗的效果,目前看,只是闪烁的时间发生变化。

//程序如下:
//==========================================
#include。

利用单片机AT89C52采用程序设计方法产生锯齿波

利用单片机AT89C52采用程序设计方法产生锯齿波

1 引言本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。

通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

2设计方案2.1系统硬件设计概述经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

2.2、设计要求1)、利用单片机采用软件设计方法产生四种波形2)、四种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及其频率2.1.2方案设计与论证1.2.1 信号发生电路方案论证方案一:通过单片机控制D/A,输出四种波形。

此方案输出的波形不够稳定,抗干扰能力弱,不易调节。

但此方案电路简单、成本低。

方案二:使用传统的锁相频率合成方法。

通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

方案三:利用MAX038芯片组成的电路输出波形。

MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。

但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2 单片机的选择论证方案一:AT89C52单片机是一种高性能8位单片微型计算机。

它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

基于STC89C51单片机的锯齿波输出系统设计

基于STC89C51单片机的锯齿波输出系统设计

基于STC 89C51单片机的锯齿波输出系统设计
关键词:单片机电子工程锯齿波输出电子机械
原文:
1 前言
单片机全称为单片微型计算机,又称为微控制器(MCU),它的出现是计算机发展史上的一个重要里程碑,它以体积小,功能全,性价比高等诸多优点而独具特色,在工业控制,尖端武器,通信设备,信息处理,家用电器等嵌入式应用领域独占鳌头。

51系列单片机是国内目前应用最广泛的一种8位单片机之一。

经过20多年的推广与发展,51系列单片机形成了一个规模庞大,功能齐全,资源丰富的产品群。

随着嵌入式系统,片上系统等概念的提出和普遍接受及应用,51单片机的发展进入了一个新的阶段。

许多专用功能芯片的内核集成了51单片机,与51系列单片机兼容的微控制器以IP核的方式不断地出现在FPGA的片上系统中。

如果说C语言程序设计是软件设计的基础,那么单片机以及其系统硬件构架的完整,价格低廉,学生能动手等特点,成为工科学生硬件设计基础课。

对于我们学习了《单片机原理及应用》这门课程的大学生来说,自己动手焊制一个单片机系统,并且可以通过设计具体的系统来了解和掌握单片机系统的编程方法以及相关配套软件的使用。

因此这次单片机的课程设计是相当有实际意义的事情。

......。

用单片机输出方波三角波及锯齿波

用单片机输出方波三角波及锯齿波

实验四实验任务:AT89C51单片机的数字式低频信号发生器。

采用AT89C51 单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键等。

通过按键控制可产生方波、锯齿波、三角波。

原理图:注:1.如上图所示2.此原理图应用Proteus 7 ISIS 7.5 SP3绘制,所选用晶体振荡器频率为12MHz。

其余元件参数见图上标注。

程序内容:#include<absacc.h>#include<reg51.h>#define DA0832 XBYTE[0xfffe] #define uchar unsigned char #define uint unsigned int sbit juchi=P1^0;sbit sanjiao=P1^1;sbit fangbo=P1^2;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void aa(){uchar n;if(juchi==0){while(1){for(n=0;n<=255;n=n++) {DA0832=n;}}}}void bb(){uchar n;if(sanjiao==0){while(1) {for(n=0;n<=256;n=n++){if(n<128)DA0832=n;elseDA0832=256-n;}}}}void cc(){uchar n;if(fangbo==0){while(1){for(n=0;n<=255;n=n++){if(n<128) DA0832=0; else DA0832=255;}}}}void main(){aa();bb();cc();}程序流程图::。

锯齿波的产生

锯齿波的产生

基于STC89C52的200Hz锯齿波产生设计该设计是利用STC89C52单片机配合DAC0809实现200Hz锯齿波的产生。

其中还用到了运放OP07将0809产生的电流信号转化为电压信号,OP07需要外接正负电压,所以还需要利用MAX232电平转换芯片将为其提供正负电压。

下面源代码、转换部分的仿真电路图以及仿真产生的波形图:源代码:/*******************************************************//* 09计算机2班 孙兴林 *//* 2010年九月4日 *//* 锯齿波产生试验程序 *//* 目标器件:AT89C52 *//* 晶振:12.0000MHZ *//* 编译环境:Keil uVision4 *//*******************************************************---实现功能:---利用STC89C52单片机配合DAC0832实现200Hz锯齿波产生********************************************************/ #include<reg52.h>sbit dawr=P3^6; //DA写数据sbit csda=P3^2; //DA片选unsigned char a;/******************************************************** ---定时器初始化函数---设定定时器工作方式为方式1---定时器装入初值为65525---12M晶振下11us中断一次********************************************************/void Timer_Init(){TMOD=0x01;TH0=0xff;TL0=0xf5;EA=1;ET0=1;TR0=1;}/******************************************************** ---主函数---实际实现200Hz锯齿波应该19us-20us中断一次---定时器的误差是us级的,而这个误差体现在波形周期上---要成为原来的256倍,就差不多是毫秒级了---而在波形周期确定的情况下,毫秒级的误差是不允许的---所以要根据实际硬件情况调整中断时间*********************************************************/ void main(){Timer_Init();csda=0;dawr=0;a=0;while(1){P0=a;if(a==256)a=0;}}/********************************************************* ---中断函数---12M晶振下执行一次命令的时间是1us---而中断时间也不过是十几us---为减小误差---中断函数不牵扯任何数学运算和多余判断**********************************************************/ void Time() interrupt 1{}--供TH0=0xff;TL0=0xf5;a++;---主体部分电---MAX232为供电部分电路; ; 电路绘图软件运放供电部分路:件及仿真软件为分电路绘图软为Proteus7软件为Altium Designer 6.9主体部分Proteus 仿真电路路图:仿真后波形效效果图:。

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

1 引言本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。

通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。

2设计方案2.1系统硬件设计概述经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。

2.2、设计要求1)、利用单片机采用软件设计方法产生四种波形2)、四种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及其频率2.1.2方案设计与论证1.2.1 信号发生电路方案论证方案一:通过单片机控制D/A,输出四种波形。

此方案输出的波形不够稳定,抗干扰能力弱,不易调节。

但此方案电路简单、成本低。

方案二:使用传统的锁相频率合成方法。

通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

方案三:利用MAX038芯片组成的电路输出波形。

MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。

但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2 单片机的选择论证方案一:AT89C52单片机是一种高性能8位单片微型计算机。

它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。

除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。

但其价格较贵以上两种方案综合考虑,选择方案一1.2.3 显示方案论证方案一:采用LED数码管。

LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。

由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。

使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。

方案二:采用LCD液晶显示器1602。

其功率小,效果明显,显示编程容易控制,可以显示字母。

以上两种方案综合考虑,选择方案二。

1.2.4键盘方案论证方案一:矩阵式键盘。

矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。

当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。

当某一个键闭合时,该键所对应的行线和列线被短路。

方案二:独立式键盘。

独立式键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量口线。

以上两种方案综合考虑,选择方案二。

1.3总体系统设计该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。

将设计任务分解为按键电路、液晶显示电路等模块。

图(1)为系统的总体框图图(1)总体方框图2.2系统软件设计概述本系统采用AT89S52单片机,用编程的方法来产生四种波形,并通过编程来切换三种波形以及波形频率的改变。

3硬件设计1.4硬件实现及单元电路设计1.4.1单片机最小系统的设计AT89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。

用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图(2)89C51单片机最小系统所示。

由于集成度的限制,最小应用系统只能用作一些小型的控制单元。

其应用特点:(1)有可供用户使用的大量I/O口线。

(2)内部存储器容量有限。

(3)应用系统开发具有特殊性。

图(2) 89C51单片机最小系统1.4.2 波形产生模块设计由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。

其电路图如下:图(3)波形产生电路如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。

DAC0832的为八位数据并行输入的,其结构图如下:图(4)DAC0832的内部结构1.4.3 显示模块的设计通过液晶1602显示输出的波形、频率,其电路图如下:图(5)液晶显示如上图所示,1602的八位数据端接单片机的P2口,其三个使能端RS、RW、E分别接单片机的P1.6—P1.4。

通过软件控制液晶屏可以显示波形的种类以及波形的频率。

1.4.4 键盘显示模块的设计由于本系统所用按键少,所以采用独立键盘,其连接电路图如下:图(6)键盘图中独立键盘引出的四根线分别接单片机的P1.0、P1.1、P1.2、P1.3,另一端接地。

各开关的功能如图所示。

4软件设计本系统采用AT89C52单片机,用编程的方法来产生四种波形,并通过编程来切换四种波形以及波形频率的改变。

具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。

软件调试后,通过编程器下载到AT89C52芯片中,然后插到系统中即可独立完成所有的控制。

软件的流程图如下:5系统仿真结果在KeilC应用软件编程环境下,将已经输入的汇编源程序进行编译、汇编与连接之后,与具体的硬件电路相匹配,最后在Proteus应用仿真环境下进行软件的仿真、验证和调试,直至最后仿真结果的正确。

图4至图9分别展示了该设计中不同情况的仿真结果。

2、输出波形的种类与频率的测试2.1、测量仪器及测试说明测量说明:正弦波、矩形波、三角波和方波信号的输出,通过对独立键盘来实现其不同波形的输出以及用拨码开关改变其频率。

2.2测试过程当程序下进去时经过初始化,液晶屏的上只显示“wave:”和“f:”,当开关1按下是此时输出波形为方波,当开关2按下是此时输出波形为锯齿波,当开关3按下是此时输出波形为三角波,当开关4按下是此时输出波形为正弦波。

本系统采用8脚的拨码开关来改变频率。

频率范围如下:方波:10——10KHZ锯齿波:三角波:10——HZ正弦波:10—3.3KHZ四种波形的仿真波形图如下:图(8)方波图(9)锯齿波图(10)三角波图(11)正弦波6总结经过将近一周时间的单片机课程设计,我又重新温习回顾了有关8051单片机的基本结构和一些基本的指令,并进一步加深了用单片机进行整个系统硬件和程序设计的方法与步骤,巩固了利用单片机进行系统软件设计时的一些技巧与方法。

就本次所选的设计题目而言,我在设计的过程中,首先通过仔细分析题目,来找到解决问题的突破口,这一步对于后续过程的设计具有指导意义。

其次,根据所分析的结果,综合考虑各种必要条件后,设计出了系统的硬件电路图。

接着,进行系统的软件设计,这一步需要详细分析题中各种情况之间的逻辑关系与其自身的要求,还要综合考虑到实际情况的需要。

在搞清楚这些关系之后,为系统编写汇编程序源代码。

然后,在KeilC应用软件环境下,对汇编源代码进行编译、汇编与连接,并将生成的可执行文件与硬件系统相关联,最后在Proteus仿真环境下进行仿真,调试仿真结果是否正确。

通过此次课程设计,我复习掌握了不仅有关单片机的知识,还收获了一些有关论文写作规范的要求,这对我来说也是受益匪浅的。

7参考文献[1] 李华,王思明,张金敏.单片机原理及应用[M].兰州:兰州大学出版社,2001.5.[2]徐爱均.单片机原理实用教程-基于Proteus虚拟仿真[M].北京:电子工业出版社,2009.1.[3] 李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994.[4] 房小翠.单片机实用系统设计技术[M].北京:国防工业出版社,1999.[5]胡汉才.单片机原理及接口技术.清华大学出版社,1995.3、附录源程序:ORG 0000HAJM MAINORG 000BHLJMP TC0ORG 0030HMAIN:MOV DPTR,#9FFFH 指向DAC0832(1)MOV A,70HMOVX @DPTR,A DAC0832(1)输出MOV DPTR,#7F00H 指向8155命令字端口地址MOV A,#06H 设置A口为输入,B口、C口为输出MOVX @DPTR,A 送命令字MOV DPTR,#7F01H 指向A口地址MOVX A,@DPTR 读入A口的开关数据JNB ACC.4,K10H 判断是否“4”号键,若是则转输出10Hz信号JNB ACC.5,K100H 判断是否“5”号键,若是则转输出100Hz信号JNB ACC.6,K500H 判断是否“6”号键,若是则转输出500Hz信号JNB ACC.7,K1K 判断是否“7”号键,若是则转输出1KHz信号AJMP MAINLED1:MOV R3,#06H 设置6个LED显示MOV R2,#01H 选通第一位LED数据MOV R1,#30H 送显示缓冲区首址GN1:MOV DPTR,#7F03H 指向C口地址MOV A,R2 位选通数据送AMOVX @DPTR,A 位选通数据送C口RL A 选通下一位MOV R2,A 位选通数据送R2中保存MOV A,@R1 取键值MOV DPTR,#TAB 送LED显示软件译码表首址MOVC A,@A+DPTR 查表求出键值显示的段码MOV DPTR,#7F02H 指向B口地址MOV @DPTR,A 段码送显示LCALL LOOP1 调延时子程序INC R1 指向下一位显示缓冲区地址DJNZ R3,GN1 循环显示6个LEDRETLOOP1:MOV R4,#08H 延时子程序LOOP:MOV R5,#0A0HDJNZ R5,$DJNZ R4,LOOPRETK10H:MOV 30H,#00H 显示10HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#01HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#15HMOV TH0,#9EHAJMP PDK100H:MOV 30H,#00H 显示100HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#01HMOV 34H,#00HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#08HMOV TH0,#0F6HAJMP PDK500H:MOV 30H,#00H 显示500HzMOV 31H,#00HMOV 32H,#00HMOV 33H,#05HMOV 34H,#00HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#01HMOV TH0,#0FEHAJMP PDK1K:MOV 30H,#00H 显示1KHzMOV 31H,#00HMOV 32H,#01HMOV 33H,#00HMOV 34H,#00HMOV 35H,#00HLCALL LED1 调显示子程序MOV TMOD,#00HMOV TL0,#01HMOV TH0,#0FFHPD:JNB ACC.0,KE0 判断是否“0”号键按下,若是则转方波输出JNB ACC.1,KE1 判断是否“1”号键按下,若是则转正弦方波输出JNB ACC.2,KE2 判断是否“2”号键按下,若是则转三角波输出JNB ACC.3,KE3 判断是否“3”号键按下,若是则转锯齿波输出LJMP PDKE0:MOV R7,#00HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE1:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE2:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HAJMP GNKE3:MOV R7,#02HLCALL LED1 调显示子程序MOV R6,#00HGN:SETB TR0SETB ET0SETB EALOP1:JNB ACC.4,K10H 判断是否“4”号键,若是则转输出10Hz信号JNB ACC.5,K100H 判断是否“5”号键,若是则转输出100Hz信号JNB ACC.6,K500H 判断是否“6”号键,若是则转输出500Hz信号JNB ACC.7,K1K 判断是否“7”号键,若是则转输出1KHz信号AJMP LOP1TC0:CJNE R7,#00H,TC1 发送方波程序MOV DPTR,#TAB1 送方波数据表首址MOV A,R6 发送数据寄存器MOVC A,@A+DPTRMOVX @DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC1:CJNE R7,#01H,TC2 发送正弦波程序MOV DPTR,#TAB2 送正弦波数据表首址MOV A,R6MOVC A,@A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX @DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC2:CJNE R7,#02H,QL1 发送三角波程序MOV DPTR,#TAB3 送三角波数据表首址MOV A,R6MOVC A,@A+DPTRMOVX @DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HAJMP QL1TC3::CJNE R7,#03H,QL1 发送锯齿波程序MOV DPTR,#TAB4 送锯齿波数据表首址MOV A,R6MOVC A,@A+DPTRMOV DPTR,#0AFFFH 指向DAC0832(2)MOVX @DPTR,A DAC0832(2)输出MOV A,R6INC AMOV R6,ACJNE A,#32,QL1MOV R6,#00HQL1:RETITAB:DB 0C0H,0F9H,0A4H,0B0H,99H,82H,0F8H,80H TAB1:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,00H,00HTAB2:DB 80H,83H,86H,89H,8DH,90H,93H,96HDB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H DB 96H,93H,90H,8DH,89H,86H,83H,80H DB 80H,7CH,79H,78H,72H,6FH,6CH,69HDB 66H,63H,60H,5DH,5AH,57H,55H,51HDB 4EH,4CH,48H,45H,43H,40H,3DH,3AHDB 38H,35H,33H,30H,2EH,2BH,29H,27HDB 25H,22H,20H,1EH,1CH,1AH,18H,16HDB 15H,13H,11H,10H,0EH,0DH,0BH,0AHDB 09H,08H,07H,06H,05H,04H,03H,02HDB 02H,01H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,01H,02HDB 02H,03H,04H,05H,06H,07H,08H,09HDB 0AH,0BH,0DH,0EH,10H,11H,13H,15HDB 16H,18H,1AH,1CH,1EH,20H,22H,25HDB 27H,29H,2BH,2EH,30H,33H,35H,38HDB 3AH,3DH,40H,43H,45H,48H,4CH,4EHDB 51H,55H,57H,5AH,5DH,60H,63H,66HDB 69H,6CH,6FH,72H,76H,79H,7CH,80H TAB3:DB 00H,02H,04H,06H,08H,0AH,0CH,0EHDB 10H,12H,14H,16H,18H,1AH,1CH,1EHDB 20H,22H,24H,26H,28H,2AH,2CH,2EHDB 30H,32H,34H,36H,38H,3AH,3CH,3EHDB 40H,42H,44H,46H,48H,4AH,4CH,4EHDB 50H,52H,54H,56H,58H,5AH,5CH,5EHDB 60H,62H,64H,66H,68H,6AH,6CH,6EHDB 70H,72H,74H,76H,78H,7AH,7CH,7EHDB 80H,82H,84H,86H,88H,8AH,8CH,8EHDB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ACH,0AEHDB 0B0H,0B2H,0B4H,0B6H,0B8H,0BAH,0BCH,0BEHDB 0C0H,0C2H,0C4H,0C6H,0C8H,0CAH,0CCH,0CEHDB 0D0H,0D2H,0D4H,0D6H,0D8H,0DAH,0DCH,0DEHDB 0E0H,0E2H,0E4H,0E6H,0E8H,0EAH,0ECH,0EEHDB 0F0H,0F2H,0F4H,0F6H,0F8H,0FAH,0FCH,0FEHDB 0FFH,0FEH,0FCH,0FAH,0F8H,0F6H,0F4H,0F2HDB 0F0H,0EEH,0ECH,0EAH,0E8H,0E6H,0E4H,0E2HDB 0E0H,0DEH,0DCH,0DAH,0D8H,0D6H,0D4H,0D2HDB 0D0H,0CEH,0CCH,0CAH,0C8H,0C6H,0C4H,0C2HDB 0C0H,0BEH,0BCH,0BAH,0B8H,0B6H,0B4H,0B2HDB 0B0H,0AEH,0ACH,0AAH,0A8H,0A6H,0A4H,0A2HDB 0A0H,09EH,9CH,9AH,98H,96H,94H,92HDB 90H,8EH,8CH,8AH,88H,86H,84H,82HDB 80H,7EH,7CH,7AH,78H,76H,74H,72HDB 70H,6EH,6CH,6AH,68H,66H,64H,62HDB 60H,5EH,5CH,5AH,58H,56H,54H,52HDB 50H,4EH,4CH,4AH,48H,46H,44H,42HDB 40H,3EH,3CH,3AH,38H,36H,34H,32HDB 30H,2EH,2CH,2AH,28H,26H,24H,22HDB 20H,1EH,1CH,1AH,18H,16H,14H,12HDB 10H,0EH,0CH,0AH,08H,06H,04H,02HTAB4:DB 00H,01H,02H,03H,04H,05H,06H,07HDB 08H,09H,0AH,0BH,0CH,0DH,0EH,0FHDB 10H,11H,12H,13H,14H,15H,16H,17HDB 18H,19H,1AH,1BH,1CH,1DH,1EH,1FHDB 20H,21H,22H,23H,24H,25H,26H,27HDB 28H,29H,2AH,2BH,2CH,2DH,2EH,2FHDB 30H,31H,32H,33H,34H,35H,36H,37HDB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FHDB 40H,41H,42H,43H,44H,45H,46H,47HDB 48H,49H,4AH,4BH,4CH,4DH,4EH,4FHDB 50H,51H,52H,53H,54H,55H,56H,57HDB 58H,59H,5AH,5BH,5CH,5DH,5EH,5FHDB 60H,61H,62H,63H,64H,65H,66H,67HDB 68H,69H,6AH,6BH,6CH,6DH,6EH,6FHDB 70H,71H,72H,73H,74H,75H,76H,77HDB 78H,79H,7AH,7BH,7CH,7DH,7EH,7FHDB 80H,81H,82H,83H,84H,85H,86H,87HDB 88H,89H,8AH,8BH,8CH,8DH,8EH,8FHDB 90H,91H,92H,93H,94H,95H,96H,97HDB 98H,99H,9AH,9BH,9CH,9DH,9EH,9FHDB 0A0H,0A1H,0A2H,0A3H,0A4H,0A5H,0A6H,0A7HDB 0A8H,0A9H,0AAH,0ABH,0ACH,0ADH,0AEH,0AFHDB 0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7HDB 0B8H,0B9H,0BAH,0BBH,0BCH,0BDH,0BEH,0BFHDB 0C0H,0C1H,0C2H,0C3H,0C4H,0C5H,0C6H,0C7HDB 0C8H,0C9H,0CAH,0CBH,0CCH,0CDH,0CEH,0CFHDB 0D0H,0D1H,0D2H,0D3H,0D4H,0D5H,0D6H,0D7HDB 0D8H,0D9H,0DAH,0DBH,0DCH,0DDH,0DEH,0DFHDB 0E0H,0E1H,0E2H,0E3H,0E4H,0E5H,0E6H,0E7HDB 0E8H,0E9H,0EAH,0EBH,0ECH,0EDH,0EEH,0EFHDB 0F0H,0F1H,0F2H,0F3H,0F4H,0F5H,0F6H,0F7HDB 0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FEH,0FFH END。

相关文档
最新文档