用51单片机产生正弦波资料讲解
- 格式:doc
- 大小:41.00 KB
- 文档页数:4
51单片机直流电机正反转程序在工业自动化、机器人、电子设备等领域,直流电机是一种常见的电动机。
直流电机具有结构简单、转速范围广、转矩大、控制方便等优点,因此被广泛应用。
在直流电机的控制中,正反转是一种常见的操作。
本文将介绍如何使用51单片机控制直流电机的正反转。
1. 直流电机的原理直流电机是一种将电能转化为机械能的电动机。
它的基本结构由定子、转子、电刷和电枢组成。
当电枢通电时,电枢内部会产生磁场,与定子磁场相互作用,从而产生转矩,使转子转动。
电刷则用来改变电极的极性,使电极的磁场方向与定子磁场方向相互作用,从而使电机正反转。
2. 51单片机控制直流电机的原理51单片机是一种常用的微控制器,具有体积小、功耗低、易于编程等优点。
在控制直流电机时,我们可以使用51单片机来控制电机的正反转。
具体实现方法是通过控制电机的电极极性来改变电机的转向。
3. 51单片机直流电机正反转程序下面是一段使用51单片机控制直流电机正反转的程序:#include <reg52.h>sbit IN1 = P1^0; //定义IN1引脚sbit IN2 = P1^1; //定义IN2引脚void delay(unsigned int t) //延时函数 {unsigned int i, j;for(i=0; i<t; i++)for(j=0; j<125; j++);}void main(){while(1){IN1 = 1; //IN1引脚输出高电平 IN2 = 0; //IN2引脚输出低电平 delay(1000); //延时1秒IN1 = 0; //IN1引脚输出低电平 IN2 = 1; //IN2引脚输出高电平 delay(1000); //延时1秒}```上述程序中,我们使用了P1口的0、1引脚来控制电机的正反转。
当IN1引脚输出高电平、IN2引脚输出低电平时,电机正转;当IN1引脚输出低电平、IN2引脚输出高电平时,电机反转。
51系列单片机输出PWM的两种方法PWM(Pulse Width Modulation,脉宽调制)是一种常用的调制技术,通过改变信号的脉宽来控制输出电平的占空比。
在51系列的单片机中,常用的PWM输出方式有基于定时/计数器和软件实现两种方法。
一、基于定时/计数器的PWM输出方法:在51系列单片机中,内部有多个定时/计数器可用于实现PWM输出。
这些定时/计数器包括可编程定时/计数器T0、T1、T2和看门狗定时器。
1.T0定时/计数器:T0定时/计数器是最简单和最常用的PWM输出方式之一、通过配置T0定时/计数器的工作模式和重装值来实现PWM输出。
具体步骤如下:(1)选择T0的工作模式:将定时/计数器T0设置为工作在16位定时器模式,并使能PWM输出。
(2)设置T0的重装值:通过设定T0的装载值来定义PWM输出的周期。
(3)设置T0的计数初值:通过设定T0的计数初值来定义PWM输出的脉宽。
(4)启动T0定时/计数器:开启T0定时/计数器的时钟源,使其开始计数。
2.T1定时/计数器:T1定时/计数器相对于T0定时/计数器来说更加灵活,它具有更多的工作模式和功能,可以实现更复杂的PWM输出。
与T0定时/计数器类似,通过配置T1的工作模式、装载值和计数初值来实现PWM输出。
3.T2定时/计数器:T2定时/计数器在51系列单片机中的应用较少,但也可以用于实现PWM输出。
与T0和T1不同,T2定时/计数器没有独立的PWM输出功能,需要结合外部中断请求(INT)来实现PWM输出。
二、软件实现PWM输出方法:在51系列单片机中,除了利用定时/计数器来实现PWM输出外,还可以通过软件来实现PWM输出。
软件实现PWM的核心思想是利用延时控制来生成不同占空比的方波信号。
软件实现PWM输出的步骤如下:(1)设置IO口:选择一个适合的IO口,将其设置为输出模式。
(2)生成PWM信号:根据要求的PWM占空比,通过控制IO口的高低电平和延时的时间来生成PWM方波信号。
电子课程设计题目:函数信号发生器的设计学院:机械工程学院班级:测控技术与仪器071班作者:学号:指导教师:2010年7月7日摘要:该函数发生器采用AT89S51 单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(1458N)等。
电路采用AT89S51单片机和一片DAC0832数模转换器组成函数信号发生器,在单片机的输出端口接DAC0832进行DA转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
它具有价格低、性能高和在低频范围内稳定性好、操作方便、体积小、耗电少等特点。
由于采用了1458N运算放大器,使其电路更加具有较高的稳定性能,性能比高。
此电路清晰,出现故障容易查找错误,操作简单、方便。
本设计主要应用AT89S51作为控制核心。
硬件电路简单,软件功能完善,控制系统可靠,性价比较高等特点,具有一定的使用和参考价值。
关键词:AT89S51、DAC0832、波形调整【Abstract】: For special requirement the function generator usingAT89S51 microcontroller as the control, external analog / digital conversion circuit (DAC0832), op-amp circuit (1458C) and so on. AT89S51 microcontroller circuit and an integral function DAC0832 digital-signal generator, the microcontroller output port connected to DA converter DAC0832, and then wave through the op amp to adjust the final output connected to the oscilloscope waveform display. It has a low cost, high performance and low frequency range, good stability, easy operation, small size, low power consumption and so on. As a result of 1458G operational amplifier circuit to a more stable performance with high performance is high. The circuit clear, easy to find failure error, simple and convenient.The design of the main application AT89S51 as the control center. Simple hardware circuit, software, functional, and reliable control system, high cost performance characteristics, has some use and reference.Key words:AT89S51, DAC0832, waveform adjust目录1、设计概述1.1、设计任务----------------------------------4 1.2、方案选择与论证----------------------------41.3、系统设计框图------------------------------52、硬件电路设计--------------------------------53、软件系统设计3.1、阶梯波设计思想及流程图--------------------133.3、三角波和正弦波设计思想--------------------144、系统软件仿真4.1、protues仿真原理图------------------------154.2、仿真波形图--------------------------------165、课程设计心得体会---------------------------176、参考文献------------------------------------177、附录附录一:protel原理图----------------------------18 附录二:PCB图 ----------------------------------18 附录三:焊接后的电路板实物图---------------------19 附录四:实际电路板调试后发生阶梯波图-------------19附录五:实验源程序-------------------------------191.1设计任务与要求:1采用AT89S51及DAC0832设计函数信号发生器;2输出信号为正弦波或三角波或阶梯波;3输出信号频率为100Hz,幅度-5V—+5V可调;4必须具有信号输出及外接电源、公共地线接口,程序在线下载接口。
51单片机延时函数在嵌入式系统开发中,51单片机因其易于学习和使用、成本低廉等优点被广泛使用。
在51单片机的程序设计中,延时函数是一个常见的需求。
通过延时函数,我们可以控制程序的执行速度,实现定时器功能,或者在需要的时候进行延时操作。
本文将介绍51单片机中常见的延时函数及其实现方法。
一、使用for循环延时这种方法不精确,但是对于要求不高的场合,可以用来估算延时。
cvoid delay(unsigned int time){unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<1275;j++);}这个延时函数的原理是:在第一个for循环中,我们循环了指定的时间次数(time次),然后在每一次循环中,我们又循环了1275次。
这样,整个函数的执行时间就是time乘以1275,大致上形成了一个延时效果。
但是需要注意的是,这种方法因为硬件和编译器的不同,延时时间会有很大差异,所以只适用于对延时时间要求不精确的场合。
二、使用while循环延时这种方法比使用for循环延时更精确一些,但是同样因为硬件和编译器的不同,延时时间会有差异。
cvoid delay(unsigned int time){unsigned int i;while(time--)for(i=0;i<1275;i++);}这个延时函数的原理是:我们先进入一个while循环,在这个循环中,我们循环指定的时间次数(time次)。
然后在每一次循环中,我们又循环了1275次。
这样,整个函数的执行时间就是time乘以1275,大致上形成了一个延时效果。
但是需要注意的是,这种方法因为硬件和编译器的不同,延时时间会有差异,所以只适用于对延时时间要求不精确的场合。
三、使用定时器0实现精确延时这种方法需要在单片机中开启定时器0,并设置定时器中断。
在中断服务程序中,我们进行相应的操作来实现精确的延时。
这种方法需要使用到单片机的定时器中断功能,相对复杂一些,但是可以实现精确的延时。
(完整word版)基于单片机的正弦波信号发生器的设计毕业设计论文题目:基于单片机的正弦波信号发生器的设计系部:电子信息工程系专业名称:电子信息工程技术班级: 08431 学号:33姓名:顾伟国指导教师:郑莹完成时间:2011 年 5 月12 日(完整word版)基于单片机的正弦波信号发生器的设计基于单片机的正弦波信号发生器的设计摘要:信号发生器的应用越来越广,对信号发生器的频率稳定度、频谱纯度、频率范围和输出信号的频率微调分辨率提出越来越高的要求,普通的频率源已经不能满足现代电子技术的高标准要求。
因而本设计采用了AT89C51单片机为控制核心,通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生1HZ—180HZ的正弦波波形。
通过键盘来控制波形频率变化,并通过液晶屏1602显示其波形以及频率和幅度值的大小。
关键字:信号发生器;AT89C51;D/A转换器DAC0832Based on SCM sine wave signal generator designAbstract:Signal generator used more and more widely, to signal generator frequency stability, the spectrum purity,frequency range and output signal frequency fine-tune resolution higher and higher demands are proposed,the average frequency source cannot have satisfied the high standard requirement of modern electronic technology. So this design USES A AT89C51 as control core,through the D/A converter DAC0832 converts digital signals into analog signals, filter and amplification, finally shown by oscilloscope 1HZ — 180HZ, can produce the sine wave。
51单⽚机⽰波器制作(12864显⽰带字库)⾸先说明:我才接触51单⽚机3个星期(6⽉8号才⾼考完),对C语⾔还很陌⽣。
我就是⼀个萌新,还希望⼤佬们多多指导。
12864(带字库st7920驱动)为显⽰器,XPT2046为AD转换芯⽚。
(不要问我为什么⽤这个芯⽚,开发板⾃带的坑货。
我在⽹上下载的⽰波器程序⼤多以ADC0832或ADC0808为AD转换芯⽚,结果我都⽤不了,所以才被迫⾃写程序。
)⽰波器程序由main.c XPT2046.c XPT2046.h三个⼦⽂件构成,main.c是我根据⽹上的⼀个12864画图程序改编⽽成我也加了⼀些注释,后⾯两个⽂件取⾃开发板⾃带的例程并进⾏了修改。
所以说这个程序基本上不是我编写的,也有很多问题和不⾜之处还请指正。
下⾯是效果图。
⾸先是⽅波。
由于没有函数发⽣器,就只能通过⼿机播放只做好的正弦⾳频,再检测⼿机⽿机接⼝信号。
不知道为什么,正弦波有⼀半不见了,似乎是由于不能检测到负电压还是什么的。
下⾯贴出main.c 的代码。
01.#include <reg52.h>02.#include"XPT2046.h" 03.#define uint unsigned int 04.#define uchar unsigned char05.06.sbit RS=P2^6; //LCD 数据或命令选择端07.sbit RW=P2^5; //LCD 写⼊或读出选择端08.sbit RST=P1^0; //LCD 复位端⼝09.sbit LCDE=P2^7; // LCD 使能端10.sbit PSB=P3^2;//串⾏或并⾏选择端11.12. void delay(uchar i)13. {14. while(i--);15. } //延时函数,i=1时延时约10微秒(12M晶振)16.17. void SPI_Start()18. {19. CLK = 0;20. CS = 1;21. DIN = 1;22. CLK = 1;23. CS = 0;24. } //ADC芯⽚(XPT2046)初始化函数25.26. void lcd_busy()27.28. {29.30. RS=0;31.32. RW=1;33.34. P0=0XFF;35.36. LCDE=1;37.38. delay(14);39.40. while((P0&0x80)==0x80);41. LCDE=0;42.43. }//LCD12864(st7920驱动)查忙函数44.45. void write_com(uchar com)46.47. {48.49. lcd_busy();RS=0;50.51. RW=0;52.53. LCDE=0;54.55. P0=com;56.57. delay(9);58.59. LCDE=1;60.61. delay(9);62.63. LCDE=0;64.65. }//LCD写指令函数66.67. void write_num(uchar num)68.69. {70.71. lcd_busy();72.73. RS=1;75. RW=0;76.77. LCDE=0;78.79. P0=num;80.81. delay(7);82.83. LCDE=1;84.85. delay(9);86.87. LCDE=0;88.89. }//LCD写数据函数90.91. uchar read_data()92.93. {94.95. uchar read;96.97. lcd_busy();98.99. RS=1;100.101. RW=1;102.103. LCDE=0;104.105. delay(7);106.107. LCDE=1;108.109. delay(9);110.111. read=P0;112.113. LCDE=0;114.115. delay(11);;116.117.118.119. return read;120.121. } //LCD读数据函数122.123. void clear_lcd()124.125. {126.127. uchar i,j;128.129. write_com(0x34);130.131. for(i=0;i<32;i++) //因为LCD有纵坐标32格所以写三⼗⼆次132.133. {134.135. write_com(0x80+i); //先写⼊纵坐标Y的值137. write_com(0x80); //再写⼊横坐标X的值138.139. for(j=0;j<32;j++) //横坐标有16位,每位写⼊两个字节的的数据,也就写⼊32次140.141. { //因为当写⼊两个字节之后横坐标会⾃动加1,所以就不⽤再次写⼊地址了。
51单片机的时钟电路原理
51单片机的时钟电路原理如下:
1. 外部晶振电路:51单片机的时钟电路主要由一个晶体振荡电路组成,晶体振荡电路由一个晶体谐振器和两个电容组成。
晶体振荡电路产生的正弦信号被送入单片机内部,用于驱动时钟周期。
2. 时钟源选择:51单片机的时钟源可以选择外部晶振电路提供的晶振信号或者内部RC振荡电路提供的振荡信号。
3. 预分频器:51单片机内部有一个12位的预分频器,用于将时钟信号进行分频。
预分频器的分频比可以通过程序设置,可以将时钟信号分频为1、2、4、8、12等倍数,可根据需要选择合适的分频比。
4. 定时器:51单片机内部有一个定时器/计数器,用于实现定时和计数功能。
定时器可以根据程序设置的计数值产生中断信号,以实现定时中断和计数中断功能。
5. 中断控制:51单片机的时钟电路中包含一个中断控制模块,用于实现对定时器中断信号的处理。
中断控制模块可以根据程序的设置,决定是否接受定时器中断信号,以及如何响应中断。
总之,51单片机的时钟电路利用外部晶振电路提供的晶振信号作为时钟源,通过预分频器进行分频,再经过定时器和中断控制模块的处理,最终实现定时和计数功能。
基于51单片机的简易函数信号发生器的设计与分析郭 辉(阜阳师范学院信息工程学院,安徽阜阳,236037)摘要:函数信号发生器设计与分析是单片机实践中的一重要实验。
本文采用Proteus 对函数信号发生器的原理图进行设计,并通过Keil 软件编程验证该设计的可行性,通过调节按键,该简易函数信号发生器可以正确输出正弦波、锯齿波、梯形波、矩形波,并可以通过按键对相应波形的频率进行调节,最终通过Proteus 制作出该电路的PCB 原理图。
本设计对单片机项目设计与实现具有一定的指导意义。
关键词:信号发生器;AT89C51;Proteus ;Keil ;PCB 中图分类号:TP368.1 文献标识码:BDesign and analysis of a simple function signal generator based on 51 single chip microcomputerGuo Hui(College of Information Engineering,Fuyang Teachers' College,Fuyang Anhui,236037)Abstract :This paper uses the principle of figure Proteus function signal generator is designed,and the feasibility of the design is verified by Keil software programming,by adjusting the key,the simple function signal generator can output sine wave,Ju Chibo,trapezoidal wave,rectangular wave,and can be adjusted through the key corresponding to the frequency of the waveform, eventually produced by Proteus PCB principle diagram of the circuit.Keywords :signal generator;AT89C51;Proteus;Keil;PCB 0 引言Proteus 软件为英国Labcenter electronics 公司开发的EDA 工具软件。
摘要本文以STC89C51单片机为核心设计了一个低频函数信号发生器。
信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出自定义波形,如正弦波、方波、三角波、三角波、梯形波及其他任意波形,波形的频率和幅度在一定范围内可任意改变。
波形和频率的改变通过软件控制,幅度的改变通过硬件实现。
介绍了波形的生成原理、硬件电路和软件部分的设计原理。
本系统可以产生最高频率798.6HZ的波形。
该信号发生器具有体积小、价格低、性能稳定、功能齐全的优点。
关键词:低频信号发生器;单片机;D /A转换;1设计选题及任务设计题目:基于单片机的信号发生器的设计与实现任务与要求:设计一个由单片机控制的信号发生器。
运用单片机系统控制产生多种波形,这些波形包括方波、三角波、锯齿波、正弦波等。
信号发生器所产生的波形的频率、幅度均可调节。
并可通过软件任意改变信号的波形。
基本要求:1. 产生三种以上波形。
如正弦波、三角波、矩形波等。
2.最大频率不低于500Hz。
并且频率可按一定规律调节,如周期按1T,2T,3T,4T或1T,2T,4T,8T变化。
3.幅度可调,峰峰值在0——5V之间变化。
扩展要求:产生更多的频率和波形。
2系统概述2.1方案论证和比较2.1.1总体方案:方案一:采用模拟电路搭建函数信号发生器,它可以同时产生方波、三角波、正弦波。
但是这种模块产生的不能产生任意的波形(例如梯形波),并且频率调节很不方便。
方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:使用集成信号发生器发生芯片,例如AD9854,它可以生成最高几十MHZ的波形。
但是该方案也不能产生任意波形(例如梯形波),并且价格昂贵。
方案四:采用AT89C51单片机和DAC0832数模转换器生成波形,加上一个低通滤波器,生成的波形比较纯净。
它的特点是可产生任意波形,频率容易调节,频率能达到设计的500HZ以上。
51单片机信号发生器频率调整思路一、引言51单片机信号发生器是一种常见的电子设备,它可以产生各种不同频率的信号。
在实际应用中,有时需要调整信号发生器的频率以满足特定的需求。
本文将介绍如何通过51单片机实现信号发生器频率调整。
二、基本原理信号发生器是一种能够产生不同频率、振幅和波形的电子设备。
在其内部,通常采用了一个稳定的时钟源和一个可变频率的振荡电路来产生不同频率的信号。
其中,时钟源通常采用晶体振荡器或者RC振荡器;而可变频率的振荡电路则可以采用多种不同的方案,比如VCO (Voltage Controlled Oscillator)或PLL(Phase Locked Loop)等。
在51单片机中,可以通过控制其内部定时器/计数器来实现可变频率的振荡电路。
具体来说,我们可以将定时器/计数器设置为一定的计数值,并且将其工作模式设置为定时模式或者计数模式。
当计数值达到预设值时,定时器/计数器就会产生一个中断请求,在中断服务函数中我们可以进行相应处理从而实现对输出波形频率和占空比的控制。
三、实现步骤1. 硬件设计在硬件设计上,我们需要准备一个51单片机开发板、一个LCD显示屏、一个旋转编码器和一些必要的电子元件。
其中,旋转编码器用于调节输出波形的频率,而LCD显示屏用于显示当前频率和占空比等信息。
2. 软件设计在软件设计上,我们需要编写51单片机的程序来实现信号发生器的控制。
具体来说,程序需要完成以下几个任务:(1)初始化定时器/计数器,并将其工作模式设置为定时模式或者计数模式;(2)设置定时器/计数器的计数值,并启动定时器/计数器;(3)在定时器/计数器中断服务函数中,更新输出波形的频率和占空比等参数;(4)通过旋转编码器来调节输出波形的频率,并更新LCD显示屏上相应的信息。
四、总结通过以上步骤,我们可以实现一个简单的51单片机信号发生器,并且可以通过旋转编码器来调节其输出波形的频率。
当然,在实际应用中还需要考虑到一些其他因素,比如精度、稳定性、噪声等问题。
目录前言 (2)1信号发生器概述 (3)2方案论证与比较 (4)2.1 方案一 (4)2.2 方案二 (5)3 硬件原理 (7)3.1 MCS-51单片机的内部结构 (7)3.1.1 内部结构概述 (7)3.1.2 CPU结构 (8)3.1.3 存储器和特殊功能寄存器 (9)3.2 P0-P3口结构 (10)3.3 DAC0832的引脚及功能 (11)4 软件设计 (13)4.1 主流程图 (13)4.2 源程序 (24)5 硬件仿真 (13)5.1 三角波仿真图 (24)5.2 方波仿真图 (27)5.3 正弦波仿真图 (28)总结 (31)参考文献 (32)前言波形发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。
目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。
信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路经之一,不用依靠单片机。
但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。
在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。
而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是致命的弱点。
一旦工作需求功能有增加,则电路复杂程度会大大增加。
1 信号发生器概述在电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器。
随着集成电路的迅速发展,用集成电路可很方便地构成各种信号波形发生器。
用集成电路实现的信号波形发生器与其它信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。
51单片机H桥电路控制电机正反转和PWM调速搭了个H桥电路,控制电机的正反转和PWM调速,程序是网上的,改改引脚就能用,电路和源程序如下:功能:P1.1按键停止,P1.2左转,P1.3右转,P1.0调速#include;#define uchar unsigned char#define uintunsigned intsbit PW1=P0^0 ;sbit PW2=P0^1 ;//控制电机的两个输入sbit accelerate=P1^0 ;//调速按键sbit stop=P1^1 ;//停止按键sbit left=P1^2 ;//左转按键sbit right=P1^3 ;//右转按键#define right_turn PW1=0;PW2=1//顺时针转动#define left_turn PW1=1;PW2=0//逆向转动#define end_turnPW1=1;PW2=1//停转uint t0=25000,t1=25000;//初始时占空比为50%uint a=25000;//设置定时器装载初值25ms设定频率为20Hzuchar flag=1;//此标志用于选择不同的装载初值uchar dflag;//左右转标志uchar count;//用来标志速度档位void keyscan();//键盘扫描void delay(uchar z);void time_init();//定时器的初始化void adjust_speed();//通过调整占空比来调整速度//**********************************//void main(){time_init();//定时器的初始化while(1){keyscan();//不断扫描键盘程序,以便及时作出相应的响应}}//*************************************// void timer0()interrupt 1 using 0{if(flag){flag=0;end_turn;a=t0;//t0的大小决定着低电平延续时间TH0=(65536-a)/256;TL0=(65536-a)%256;//重装载初值}else{flag=1;//这个标志起到交替输出高低电平的作用 if(dflag==0)right_turn;//右转}else{left_turn; //左转}a=t1;//t1的大小决定着高电平延续时间 TH0=(65536-a)/256;TL0=(65536-a)%256;//重装载初值}void time_init(){TMOD=0x01; //工作方式寄存器软件起动定时器定时器功能方式1 定时器0 TH0=(65536-a)/256;TL0=(65536-a)%256;//装载初值ET0=1;//开启定时器中断使能EA=1;// 开启总中断TR0=0;}//****************************************// void delay(uchar z)//在12M下延时z毫秒{uint x,y;for(x=z;x>;0;x--)for(y=110;y>;0;y--);//******************************// void keyscan(){if(stop==0){TR0=0;//关闭定时器0即可停止转动end_turn;}if(left==0){TR0=1;dflag=1;//转向标志置位则左转}if(right==0){TR0=1;dflag=0;//转向标志复位则右转}if(accelerate==0){delay(5) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手count++;if(count==1){t0=20000;t1=30000;//占空比为百分之60}if(count==2){t0=15000;t1=35000;//占空比为百分之70}if(count==3){t0=10000;t1=40000;//占空比为百分之80}if(count==4){t0=5000;t1=45000;//占空比为百分之90}if(count==5){count=0;}}} }。
基于51单片机的波形发生器的设计————————————————————————————————作者:————————————————————————————————日期:基于51单片机的波形发生器的设计摘要这个系统是基于AT89C51单片机的波形信号发生器。
使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键电路和8位数码管等组成。
通过按键可控制方波、三角波、正弦波的产生,并且用数码管指示其对应的频率.这个设计方法简单、性能良好,这个系统可在多种需要低频信号的场所使用,它具有良好的实用性。
关键词:8951单片机;数字模拟转换电路;运放电路;8位数码管The Design of Waveform Generator Based on 51AbstractThe system is a signal waveform generator based on AT89C51。
AT89C51 is used as a control core。
The system is composed by a digital/analog transform circuit (DAC0832),an amplifier (LM324),some button and a nixie tube。
It can generate the square, triangle and sine wave。
At the same time it uses the digital tube to indicate the corresponding frequency. It is simple in design and excellent in performance. The system can be used for a variety of low-frequency signal place. It has better practicability.本文为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络Keywords:AT89C51;DA0832;LM324;8 nixie tube目录1 引言 (1)1.1 题目要求及分析 (1)1。
安徽工程大学机电学院本科课程设计说明书专业:计算机科学与技术题目:数字式波形发生器学生姓名:刘志国指导教师:谢永宁2012年6月6日目录附录 (3)前言 (4)课程设计任务书 (5)第一章系统总体设计思路 (6)1.1 总体设计思路 (6)1.2 总体框图 (6)1.3硬件设计组成 (6)第二章接口技术及相关芯片介绍 (7)2.1键盘接口电路 (7)2.2显示电路 (7)2.3电源电路 (7)2.4波形转换(D/A)电路 (8)2.5芯片介绍 (9)第三章程序编写 (13)第四章系统调试与测试结果 (19)4.1. 硬件调试 (19)4.2. 软件调试 (19)4.3 调试结果 (19)第五章设计心得与参考文献 (21)5.1实验心得 (21)5.2参考文献 (22)元件清单1 1K电阻·····················································6个2 22uF电解电容···············································4个3 104瓷片电容················································3个4 33pF·······················································2个5 0.1uF·······················································1个6 15K电阻····················································2个7 7.5K电阻···················································1个8 12Mhz 晶振·················································1个9 轻触开关····················································3个10 89C52单片机芯片···········································一片11 DAC0832数模转换芯片······································1片12 TL082运放芯片·············································1片13 发光二极管················································2个14 上拉电阻···················································1个15 1602液晶显示···············································1个16 双面板·····················································一块17 排针······················································若干前言随着微型计算机的普及和广泛应用,接口技术成为十分重要、十分关键的计术。