DAC0832在Proteus中软件仿真生成波形(矩形-三角-锯齿-正弦)
接口芯片DAC0832的应用三角波、梯形波两种波形
课程设计(论文)课程名称: 微型计算机组成原理与接口技术组 别:第十组题 目: 接口芯片 DAC0832 的应用院 (系): 信息与控制工程系专业班级: 电子信息科学与技术 1202姓 名:学 号:指导教师:2015 年 月 日1 / 17某建筑科技大学华清学院 《微机原理与接口技术》课程设计(论文)任务书专业班级:电子信息科学与技术1202学生某:指导教师(签名):一、课程设计(论文)题目波形发生器的设计二、本次课程设计(论文)应达到的目的基于 Proteus 软件,绘制 8086 微处理器和 DAC0832 外围电路,实 现波形发生器的设计。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术 参数、设计要求等) 1、利用 Proteus 软件绘制由 8086 微处理器和 DAC0832 构造波形发生器; 2、利用汇编语言编写程序实现三角波、梯形波两种波形; 3、综合调试实现仿真功能。
四、应收集的资料及主要参考文献: 1.X乐善.微型计算机接口技术及应用[M].某:华中科技大学,2000 2.陈红卫.微型计算机基本原理与接口技术[M].:科学,2003 3.顾晖,梁惺彦等.基于8086和Proteus仿真[M].:电子工业,2011. 五、审核批准意见教研室主任(签字)2 / 17摘要D/A 转换器即 DAC 是指把输入的数字信号量信息转换成为对应的模拟量信 号输出。
本次课设是采用 DAC0832 波形发生器来设计和实现,系统利用 8086 作 为系统的核心来控制整个电路,加上 74154TTL 4 线—16 线译码器和 74273TTL 带公共时钟复位八 D 触发器以及 7427TTL3 输入端三或非门等器件的使用来完成 整个电路的设计,从而实现三角波,方波,锯齿波和阶梯波等波形。
关键字:DAC0832 波形发生器1 / 17目录1、绪论………………………………………………………1 2、设计原理…………………………………………………2 3、设计程序…………………………………………………7 4、系统联调…………………………………………………11 5、总结………………………………………………………121 / 17波形发生器的设计一、绪论 波形发生器是一种常用的应用电子仪器设备,广泛地应用于电子电路、自动控制系统和教学实验等领域。
用dac0832产生正弦波的设计
摘要:DAC转换器是一种将数字量转换成模拟量的器件,本论文简要介绍模数转换器DAC0832的工作原理和芯片结构,并利用模数转换器DAC0832输出正弦波进一步分析输出波形的模拟失真度。
关键词:模数转换器DAC0832,正弦数据区,模拟失真度,FFT变换。
引言:1.DAC1us D0~D7ILECSWR1、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;VccVREFAGNDDGND1数据只通过一级缓冲器送入D/A转换器。
通常的做法是将和XFER均接地,使DAC寄存器处于直通方式,而把ILE接高电平,接端口地址译码信号,WR1接CPU系统总线的IOW信号,使输入寄存器处于锁存方式。
单缓冲方式只需执行一次写操作即可完成D/A转换。
一般不需要多个模拟量同时输出时,可采用单缓冲方式。
3.单缓冲方式单缓冲方式就是使两个寄存器均处于锁存方式,数据要经过两级锁存(即两级缓冲)后再送入D/A转换器,这就是说,要执行两次写操作才能完成一次D/A转换。
只要将ILE接高电平,WR1和WR2接CPU的IOW,CS和XFER分别接两个不同的I/O地址译码信号即可。
图中的+10V2利用2.12.21)START:JMPDACONTORLDACONTORL:CALLFORMATCALLLEDDISPMOVDX,DAPORTSS2:MOVAL,80H;初始值MOVBX,0HDACON1:OUTDX,ALMOVCX,0008H;INCBXCMPBX,32;比较一个周期是否结束JZSS2OUTDX,AL ADDBYTEPTRDS:[0600H],01H JNZLED1LED2:RETFORMAT:MOVBX,0MOVWORDPTRDS:[BX+0500H],4006HADDBX,2MOVWORDPTRDS:[BX+0500H],4040HADDBX,2MOVWORDPTRDS:[BX+0500H],4F5BHRET2时,通过3计算模拟失真度3.1模拟失真度的定义模拟失真度一般由基波剔除法和频谱分析法来计算,本论文采用频谱分析法来计算。
微机原理课程设计利用DAC0832实现正弦波输出.
微机原理与接口技术课程设计题目:利用DAC0832实现正弦波输出.班级:.姓名:.学号:.日期:2011年12月15日目录1、引言 ........................................................................................................... 错误!未定义书签。
1.1背景和编写目的..................................................................................... 错误!未定义书签。
1.2 术语和缩写................................................................................................ 错误!未定义书签。
2.系统组成........................................................................................................ 错误!未定义书签。
3.硬件设计........................................................................................................ 错误!未定义书签。
3.1 8259A模块:............................................................................................. 错误!未定义书签。
3.2 DAC0832模块 ........................................................................................... 错误!未定义书签。
proteus仿真的波形发生器
目录摘要 (I)1波形发生器简介 (1)1.1波形发生器的概述 (1)1.2研制波形发生器的目的及意义 (2)2 PROTEUS的简介 (3)2.1 PROTEUS界面 (3)2.2基本操作 (4)2.3原理图的绘制 (4)3单片机AT89C51概述 (4)4总体设计 (7)4.1单片机电路 (7)4.2D/A电路及接口 (8)4.3系统软件设计 (9)5系统模拟调试 (15)5.1仿真结果 (15)5.2结果分析 (19)心得体会 (19)参考文献 (20)摘要本文实现了多功能波形发生器的设计。
系统采用AT89C51单片机控制,DAC0832完成模数转换,键盘控制波形的频率、幅度。
发生器产生三角波、方波、正弦波等波形,波形的频率可通过键盘控制,波形清晰、频率调整十分方便、稳定性好,产生合成波形只需修改源程序,不需改装电路。
单片机的输出数字信号通过DAC0832转换成模拟信号,接入示波器就可以清晰的显示出系统产生的波形。
该系统由仿真软件产生波形,具有线路简单、结构紧凑、价格低廉、性能优越等特点。
关键词:波形发生器,AT89S52单片机,D/ A转1波形发生器简介1.1波形发生器的概述信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。
一般来讲任意波形发生器是一种特殊的信号源,综合具有其它信号源生成能力,因而适合各种仿真实验的需要。
在基础实验中设计一种电路,需要验证其性能、可靠性与稳定性,就需要给它施加理想的波形以辨别真伪。
如可使用信号源的DC补偿功能对固态电路控制DC偏压电平,可对一个怀疑有故障的数字电路,利用信号源的方波输出作为数字电路的时钟,同时使用方波加DC补偿产生有效的逻辑电平模式输出,观察该电路的运行状况,而证实故障缺陷的地方,总之,利用任意波形发生器这方面的基础功能能仿真基础实验室所必须的信号[1]。
在实际的电子环境所设计的电路在运行中,由于各种干扰和响应的存在,实际电路往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变等(见图1.1,图1.2),这些情况的发生,如在设计之初没有考虑进去,有的将会产生灾难性的后果。
dac0832波形发生器原理
dac0832波形发生器原理
DAC0832波形发生器是一种使用8位D/A转换器的波形发生器,其工作原理是将数字信号转换为模拟信号。
其工作原理主要基于以下步骤:
1. DAC0832接收从微控制器(如单片机)发送过来的数字信号,这些数字信号代表了要生成的波形(如正弦波、方波、锯齿波、三角波等)的参数(如幅度、频率等)。
2. DAC0832将这些数字信号转换为模拟信号,即将数字信号的幅度转换为模拟信号的电压或电流。
这一步是通过D/A转换器完成的,它使用一个8
位的数字输入和一个模拟输出。
3. 生成的模拟信号经过运算放大器进行放大和滤波,以获得所需的波形。
4. 输出的模拟信号可以连接到示波器、音频设备或其他需要模拟信号的设备上。
在实现波形时,需要使用定时器来控制段码表输出速度,以控制波形的频率。
对于每种波形,可以通过改变数字信号的值和控制输出的时间来实现不同的频率和幅度。
总的来说,DAC0832波形发生器的工作原理是基于数字信号转换为模拟信号的过程,通过控制数字信号的值和控制输出的时间来实现不同的波形和参数。
单片机实验——利用DAC0832完成波形发生器
单片机实验——利用DAC0832完成波形发生器1.实验目的(1)掌握D/A转换器的基本原理和使用方法。
2.预习要点(1)D/A转换器的基本原理和使用方法。
3.实验设备计算机、单片机实验箱,示波器。
4.实验内容基本要求:利用实验板上的0832D/A芯片,将示波器连接到滤波电路后,通过程序产生周期为20ms的三角波。
扩展要求:利用实验板上的0832D/A芯片和电位器,将示波器连接到滤波电路后,通过程序产生周期或幅度可调的锯齿波。
实验7ORG 0000HAJMP MAIN;***********************************;主程序ORG 0030HMAIN:MOV DPTR,#4000H ;为DA分配地址,应接CS3CLR AUP:MOVX @DPTR,A ;上坡,A从0加到100,上坡时间为100*100us=10ms LCALL DELAYINC ACJNE A,#100,UPSJMP DOWNDOWN:MOVX @DPTR,A ;下坡,A从100减到0,下坡时间为100*100us=10ms LCALL DELAYDEC ACJNE A,#0,DOWNSJMP UP;************************************;延时100us (这个相信大家可以自己算了吧)DELAY:MOV R7,#02H ;这其实不是100ms,我用示波器调的时候发DEL1:MOV R6,#22 ;现当R6为22的时候周期比较接近20ms,所以DEL2:DJNZ R6,DEL2 ;就用了22,因为上面有些指令知行还需要时间DJNZ R7,DEL1RET;**************************************;其实如果用定时器的话我相信会更精确一些;尤其是方式2。
dac0832波形发生器的设计
课程设计课程名称:低频信号源的设计专业年级:电子信息工程082班学生姓名:学号: 200805070211实习时间: 2011年6月30至7月1日指导教师:填写时间:2011年7 月3日一、设计任务及意义本系统是基于AT89C52单片机的数字式简易低频信号发生器。
用程序实现方波、锯齿波、三角波等信号,并在Protues电子设计平台上对方案进行了仿真。
消除了传统信号发生器存在元器件分散性造成波形失真的弊端。
系统采用AT89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、按键电路。
通过按键控制可产生方波、锯齿波、正弦波。
波形的频率和幅度在一定范围内可任意改变,其设计简单、性能优良,可用于多种需要低频信号源的场所,具有一定的实用性。
二、设计方案选择及论证系统方案比较方案一:采用函数信号发生器ICL8038集成模拟芯片,(如图2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。
但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。
这种信号发生器输出频率范围窄,而且电路参数设定较繁琐,其频率大小的测量往往需要通过硬件电路的切换来实现,操作不方便。
方案三:采用单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。
它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案三既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比较高,所以采用该方案。
三、硬件设计系统总体框图设计本系统是以单片机AT89C51和8位D/A 转换芯片DAC0832共同实现正弦波,方波,锯齿波这三种常见波形的产生及显示相互切换的功能。
图3-1 系统总体框图 3.1单片机晶振电路对于MCS-51一般的晶振可以在1.2MHZ —12MHZ 之间选择,这是电容C 可以对应的选择10pf-30Pf 。
ADC0832模拟波形发生器实验报告
控制基础实验——模拟波形发生器成绩________课程名称:__ ___________学院(系):专业:班级:学号:学生姓名:分工任务:一、实验题目1、设计一个波形发生器,使能输出锯齿波、三角波、正弦波等。
2、在proteus仿真软件中连接单片机系统硬件图,在keil c51软件中编写并调试应用程序,使能在proteus中运行并达到预期效果。
二、实验目的1、学会DAC0832芯片的基本知识,并掌握使用方法。
2、掌握单片机最小系统的基本知识,能设计并完成一些简单应用。
3、掌握Proteus及Keil软件在51系列单片机中的使用及调试。
4、会根据实际功能,正确选择单片机功能接线,编制正确程序。
对实验结果能做出分析和解释,能写出符合规格的实验报告。
三、实验工具软件:Proteus单片机仿真软件、keil51,PC机。
四、实验内容掌握DAC0832芯片的使用方法,在Proteus仿真软件中连接好电路图,在Keil中编写程序,使得能够输出较规范的锯齿波、三角波、正弦波。
五、实验原理1、单片机工作原理:单片机是指一个集成在一块芯片上的完整计算机系统。
通过编程控制单片机的I/O端口、中断、定时器、寄存器等部件可以完成很多应用。
2、DAC0832的工作原理:DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
3、DAC0832引脚功能说明:DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。
当输入全为1时Iout1最大。
Iout2: 电流输出线。
其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线(+5v~+15v)Vref:基准电压输入线(-10v~+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.4、输出形式式:单极性(本实验需要)、双极性。
proteus仿真的波形发生器
目录摘要......................................................... 错误!未定义书签。
1波形发生器简介............................................... 错误!未定义书签。
波形发生器的概述........................................... 错误!未定义书签。
研制波形发生器的目的及意义................................. 错误!未定义书签。
2 PROTEUS的简介................................................. 错误!未定义书签。
PROTEUS界面................................................ 错误!未定义书签。
基本操作................................................... 错误!未定义书签。
原理图的绘制............................................... 错误!未定义书签。
3单片机AT89C51概述........................................... 错误!未定义书签。
4总体设计..................................................... 错误!未定义书签。
单片机电路................................................ 错误!未定义书签。
D/A电路及接口 ............................................ 错误!未定义书签。
系统软件设计.............................................. 错误!未定义书签。
基于51单片机和DAC0832的信号源(proteus电路图加程序)
基于51单⽚机和DAC0832的信号源(proteus电路图加程序)班级学号⾃动测试实验报告学院机电⼯程学院专业测控技术与仪器导师姓名吕晓洲学⽣姓名学号摘要本⽂介绍了以8051和DAC0832为核⼼的信号源,可以通过按键选择正弦波、⽅波、三⾓波、锯齿波和梯形波,也可以通过按键选择798.6Hz、266.2Hz、88.7Hz、29.6Hz、9.85Hz、3.3Hz、1.1Hz共九档频率。
波形和频率通过软件改变,幅值通过硬件放⼤的放⼤器改变。
本信号源具有结构简单、功能丰富、使⽤⽅便另外价格实惠等特点。
【关键词】单⽚机,8051,DAC0832,信号源,频率,波形⼀.实验要求以及⽅案选择1.实验要求:设计⼀个信号源,能产⽣正弦波、三⾓波、锯齿波、⽅波等简单的波形,能够⽅便改变波形和频率。
2.⽅案选择:⽅案⼀:完全由硬件电路制作,使⽤传统的锁相频率合成⽅法。
通过芯⽚IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利⽤过零⽐较器转换成⽅波,积分电路转换成三⾓波。
此⽅案,电路复杂,⼲扰因素多,不易实现。
⽅案⼆:直接利⽤波形产⽣芯⽚,例如,利⽤MAX038芯⽚组成的电路输出波形。
MAX038是精密⾼频波形产⽣电路,能够产⽣准确的锯齿波、三⾓波、⽅波和正弦波四种周期性波形。
但此⽅案成本⾼,程序复杂度⾼。
⽅案三:通过单⽚机控制DAC,输出五种波形。
此⽅案输出的波形分辨率不够⾼,频率有限。
但此⽅案电路简单、成本低,波1.80C51单⽚机80C51单⽚机属于MCS-51系列单⽚机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、⽐较(CMP)、16位数据指针、布尔代数运算等指令,以及串⾏通信能⼒和5个中断源。
采⽤40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。
它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接⼝制作在⼀块集成电路芯⽚中,从⽽构成较为完整的计算机、⽽且其价格便宜。
基于protues软件的DAC0832扩展仿真实验
基于protues软件的DAC0832扩展仿真实验一、实验目的(1)掌握DAC0832的基本功能(2)掌握MCS-51对DAC0832接口的应用,编制生成三种波形(锯齿波、三角波和方波)的控制程序二、实验程序(1)、方波ORG 0000HLJMP MAINORG 0030HMAIN: MOV DPTR,#7FFFHLOOP: MOV A,#66H ;改变电压值MOVX @DPTR,AACALL DELYMOV A,#0FFHMOVX @DPTR,AACALL DELYSJMP LOOPDELY:MOV R7,#40D1: MOV R6,#248 ;延时20ms-----方波周期40ms DJNZ R6,$DJNZ R7,D1RETEND(2)、锯齿波ORG 0000HLJMP MAINORG 0030HMAIN: MOV DPTR,#0000H ;0832地址0000H-7FFFH CLR ASTART: MOVX @DPTR,AACALL DELAYINC ASJMP STARTdelay:mov r7,#10d1: mov r6,#100djnz r6,$djnz r7,d1retEND(3)三角波ORG 0000HLJMP MAINORG 0030HMAIN: MOV DPTR,#6FFFH ;0832地址0000H-7FFFHCLR ADOWN: MOVX @DPTR,AINC AJNZ DOWN ;(2+1+2)*255=1.275mS----周期2.55msMOV A,#0FEHUP: MOVX @DPTR,ADEC AJNZ UPSJMP MAINEND三、实验现象波形显示器上以次呈现方波、锯齿波,三角波的波形四、结果分析DAC与8051采用单缓冲方式接口,写信号控制数据锁存,WR非及WR2非连——数据同时写入两个寄存器;利用开关P1.0/2/4口加高电压,选定要输出的波形。
单片机控制DAC0832输出正弦波三角波汇编程序
单片机控制DAC0832输出正弦波三角波汇编程序单片机控制DAC0832 输出正弦波三角波汇编程序org 0000hLJMP MAINORG 0003HLJMP L0MAIN:MOV R2,#0aHMOV R4,#01HMOV R5,#01H pp: SETB EASETB EX0 MOVA,#0FFH MOVP1,A MOV A,P1JNB ACC.0,ZXBJNB ACC.1,SJBJNB ACC.2,FBAJMP PPZXB:MOV R1,#00H LOOP1:MOV A,R1;调幅倍数;增减选择;延时计数个数;读取波形状态;P1.0=0 则选择正弦波;P1.1=0 则选择三角波;P1.2=0 则选择方波MOV DPTR,#TABLE1 ;读取正弦波数据首地址MOVC A,@A+DPTR ;去表格数据MOV B,R2MUL AB ;幅度大小INC R1XCH A,R1CLR CSUBB A,#0AH ;是否已采样半个周期JNC LK1 ;C=0 跳转,即R1 大于0A,以采样半个周期以上ADD A,#0AHXCH A,R1 ;还原R1ADD A,#80H ;8OH 为零点,取得正的幅度值AJMP LK0LK1:ADD A,#0AHXCH A,R1MOV R3,AMOV A,#80HCLR CSUBB A,R3 ;80H 为零点,取得负的幅度值LK0:MOV DPTR,#8000H ;送DA 转换入口地址MOVX @DPTR,AMOV A,R5KD:DEC R5 ;调用延时CALL DELAYCJNE R5,#00H,KDMOV R5,ACJNE R1,#12H,LOOP1LJMP PPFB:MOV R1,#00HLOOP2:MOV A,R1MOV DPTR,#TABLE2 ;读取方波数据首地址MOVC A,@A+DPTR ;去表格数据MOV B,R2MUL AB ;幅度大小INC R1XCH A,R1CLR CSUBB A,#0AH ;是否已采样半个周期JNC LK3 ;C=0 跳转,即R1 大于0A,以采样半个周期以上ADD A,#0AHXCH A,R1 ;还原R1ADD A,#80H ;8OH 为零点,取得正的幅度值AJMP LK2 LK3:ADD A,#0AHXCH A,R1MOV R3,AMOV A,#80HCLR CSUBB A,R3 ;80H 为零点,取得负的幅度值LK2:MOV DPTR,#8000H ;送DA 转换入口地址MOVX @DPTR,A MOV A,R5KD0:DEC R5 ;调用延时CALL DELAYCJNE R5,#00H,KD0MOV R5,ACJNE R1,#12H,LOOP2LJMP PPSJB:MOV R1,#00HLOOP3:MOV A,R1MOV DPTR,#TABLE3 ;读取三角波波数据首地址MOVC A,@A+DPTR ;去表格数据MOV B,R2MUL AB ;幅度大小INC R1XCH A,R1CLR CSUBB A,#0DH ;是否已采样半个周期JNC LK5 ;C=0 跳转,即R1 大于D,以采样半个周期以上ADD A,#0DHXCH A,R1 ;还原R1ADD A,#80H ;8OH 为零点,取得正的幅度值AJMP LK4LK5:ADD A,#0DHXCH A,R1MOV R3,AMOV A,#80HCLR CSUBB A,R3 ;80H 为零点,取得负的幅度值LK4:MOV DPTR,#8000H ;送DA 转换入口地址MOVX @DPTR,AKD1:MOV A,R5DEC R5 ;调用延时CALL DELAYCJNE R5,#00H,KD1MOV R5,ACJNE R1,#18H,LOOP3LJMP PPDELAY:NOPRETL0:CLR EAPUSH APUSH PSWJB P1.3,L1 ;中断子程序CJNE R4,#00H,KL0INC R4SJMP LD0KL0:MOV R4,#00HLD0:JNB P1.3,LD0 ;判断键是否松开LJMP LENDL1:JB P1.4,L2MOV A,R4JNZ KL1 ;判断幅度是增还是减CJNE R2,#0AH,KK0 ;判断幅度是否达到最大SJMP LD1 KK0:INC R2 ;幅度增加0.5VSJMP LD1KL1:CJNE R2,#00H,KK1SJMP LD1KK1:DEC R2 ;幅度减小0.5V。
51单片机与0832波形发生器锯齿波、三角波、正弦波
//锯齿波#include <reg51.h>#include <absacc.h>//绝对地址访问头文件#define DAC0832 XBYTE[0x7fff]//DAC0832的地址为0x7fffvoid delay()//定时器定时1ms{TH1=0xfc;TL1=0x18;//定时器初值设定TR1=1;//启动定时器while(!TF1);//查询是否溢出TF1=0;//将溢出标志位清零}void main(){unsigned char i;TMOD=0x10;//设置定时器工作方式while(1){for(i=0;i<=255;i++)//形成锯齿波,最大值为255{DAC0832=i;// D/A转换输出delay();//延时}}}//三角波#include <reg51.h>#include <absacc.h>//绝对地址访问头文件#define DAC0832 XBYTE[0x7fff]//DAC0832的地址为0x7fffvoid delay()//定时器定时1ms{TH1=0xfc;TL1=0x18;//定时器初值设定TR1=1;//启动定时器while(!TF1);//查询是否溢出TF1=0;//将溢出标志位清零}void main(){unsigned char i;TMOD=0x10;//设置定时器工作方式while(1){for(i=0;i<255;i++)//形成三角波,i增加到最大值为255{DAC0832=i;// D/A转换增量输出delay();//延时}for(i=255;i>0;i--)//形成三角波,i减小至最小值0{DAC0832=i;// D/A转换减量输出delay();//延时}}}//正弦波#include <reg51.h>#include <absacc.h>//绝对地址访问头文件#define DAC0832 XBYTE[0x7fff]//DAC0832的地址为0x7fffunsigned char code sin[]={//正弦波一周期内采样256次,把幅值按比例放大0x80,0x83,0x86,0x89,0x8D,0x90,0x93,0x96,0x99,0x9C,0x9F,0xA2,0xA5,0xA8,0xAB,0x AE,0xB1,0xB4,0xB7,0xBA,0xBC,0xBF,0xC2,0xC5,0xC7,0xCA,0xCC,0xCF,0xD1,0xD4,0xD 6,0xD8,0xDA,0xDD,0xDF,0xE1,0xE3,0xE5,0xE7,0xE9,0xEA,0xEC,0xEE,0xEF,0xF1,0xF2,0 xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0 xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFD,0xFC,0xFB,0xFA,0xF9,0xF8,0xF7, 0xF6,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEA,0xE9,0xE7,0xE5,0xE3,0xE1,0xDF,0xDD ,0xDA,0xD8,0xD6,0xD4,0xD1,0xCF,0xCC,0xCA,0xC7,0xC5,0xC2,0xBF,0xBC,0xBA,0xB7, 0xB4,0xB1,0xAE,0xAB,0xA8,0xA5,0xA2,0x9F,0x9C,0x99,0x96,0x93,0x90,0x8D,0x89,0x 86,0x83,0x80,0x80,0x7C,0x79,0x76,0x72,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A, 0x57,0x55,0x51,0x4E,0x4C,0x48,0x45,0x43,0x40,0x3D,0x3A,0x38,0x35,0x33,0x30,0x2 E,0x2B,0x29,0x27,0x25,0x22,0x20,0x1E,0x1C,0x1A,0x18,0x16,0x15,0x13,0x11,0x10,0 x0E,0x0D,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x0 5,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0D,0x0E,0x10,0x11,0x13,0x15,0x16,0x18,0x1A,0 x1C,0x1E,0x20,0x22,0x25,0x27,0x29,0x2B,0x2E,0x30,0x33,0x35,0x38,0x3A,0x3D,0x40 ,0x43,0x45,0x48,0x4C,0x4E,0x51,0x55,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x 6F,0x72,0x76,0x79,0x7C,0x80};void delay()//定时器定时1ms{TH1=0xfc;TL1=0x18;//定时器初值设定TR1=1;//启动定时器while(!TF1);//查询是否溢出TF1=0;//将溢出标志位清零}void main(){unsigned char i;TMOD=0x10;while(1)//设置定时器工作方式{for(i=0;i<255;i++)//形成正弦波,i增加到最大值为255{DAC0832=sin[i];// D/A 转换增量输出delay();//xx}}}//方波#include <reg51.h>sbit P2_0=P2^0; //定义位变量void main(){TMOD=0x02;//设置T0,工作方式2 TH0=6;TL0=6;//设置初值TR0=1;//启动T0while(1){if(TF0==1)//查询是否溢出{TF0=0;//溢出标志清零P2_0=!P2_0;}//P2.0取反,输出方波}}。
51单片机双机通信与锯齿波输出proteus仿真(汇编)
STC89C51单片机双机通信与DAC0832锯齿波输出proteus仿真(汇编)proteus仿真图如下:仿真效果如下:Proteus所用元件:AT89C51单片机X2DAC0832X1OPAMPX1其中单片机A负责产生生成锯齿波所需要的数字信号代码,并将其发送给单片机B, 单片机B负责将接收到的锯齿波数字信号输出到片外DAC0832转换成锯齿波DAC0832接图如下:指令用的片外地址是BFFFH 所以1脚接单片机B的P2.62脚接单片机B的P3.6(WR)3脚接地8脚接-5V9脚接OPAMP最终输出11脚接地接运放负端12脚接地再接运放正端17与18脚直接接地19和20脚接VCC单片机A指令如下:ORG 0000HAJMP MAINORG 0023HAJMP ZD1MAIN:MOV A,#00HMOV SCON,#40HMOV TMOD,#20HMOV PCON,#00HSETB EASETB ESMOV TH1,#0F1HMOV TL1,#0F1HSETB TR1MOV SBUF,AAJMP $ZD1:CLR TIDEC AMOV SBUF,ARETI单片机B如下:ORG 0000HAJMP MAINORG 0023HAJMP ZD1MAIN:MOV TMOD,#20HMOV PCON,#00HMOV SCON,#50HMOV TL1,#0F1HMOV TH1,#0F1HMOV DPTR,#0BFFFHSETB EASETB ESSETB TR1AJMP $ZD1:CLR RIMOV A,SBUFMOVX @DPTR,ARETI。