怎么用汇编语言使dac0832产生三角波
DAC0832是8位的D/A转换集成芯片。只需要调整传送到DAC0832的数据循环先递增,后递减即可使DAC0832的输出为三角波。电路原理图如下:汇编语言代码如下:注意:实际生成波形时可能需要对三角波频率进行调整,为了确保三角波的幅值和精度,可以采用添加延时来调整每个模拟数输出值持续的时间来调整三角波的频率。扩展资料根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。1、单缓冲方式单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。2、双缓冲方式双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。3、直通方式直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统。
[create_time]2019-06-07 01:58:19[/create_time]2011-11-24 21:41:00[finished_time]3[reply_count]26[alue_good]百度网友e133476[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.d8523d15.0lXz7vzgeUektr0Ro15bSQ.jpg?time=5402&tieba_portrait_time=5402[avatar]TA获得超过1062个赞[slogan]这个人很懒,什么都没留下![intro]21907[view_count]dac0832工作原理
DAC0832工作原理:它是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端弓|用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。
直通方式。直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。
双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。
[create_time]2020-12-05 18:15:09[/create_time]2020-12-19 21:43:40[finished_time]1[reply_count]0[alue_good]无雅诗hx[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.ccb6c449.9y69YSY_A1I8A-rixLa6ig.jpg?time=7330&tieba_portrait_time=7330[avatar]用力答题,不用力生活[slogan]可以忽略不计[intro]3201[view_count]
DAC0832生成三角波的问题
回答1:据观察,你生成的是三角波,也就是给0832的值是呈线性增长的,要改变频率,就要改变送给0832值的时间间隔:可以在每次传送给0832值后面加入延时子程序,这只是粗略的改变频率。最好是用定时器,
回答2:LED那个是上拉电阻,保证LED接受电平稳定,改变电阻大小估计是影响放大器的负载,最好不要改动。
回答3:那个二极管接反了,导致它低电平导通,高电平反而不导通。
[create_time]2013-03-18 13:25:25[/create_time]2013-03-19 23:44:21[finished_time]1[reply_count]5[alue_good]ctt面朝黄土[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.aee7f497.8AUolxwgF_r7vzL2SUcRJg.jpg?time=4098&tieba_portrait_time=4098[avatar][slogan]这个人很懒,什么都没留下![intro]3045[view_count]
PLC是什么的缩写?
PLC可编程序控制器:PLC英文全称Programmable Logic Controller ,中文全称为可编程逻辑控制器,定义是:一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
DCS集散系统: DCS英文全称 DISTRIBUTED CONTROL SYSTEM ,中文全称为集散型控制系统。DCS可以解释为在模拟量回路控制较多的行业中广泛使用的,尽量将控制所造成的危险性分散,而将管理和显示功能集中的一种自动化高技术产品。DCS一般由五部份组成:1:控制器2:I/O板3:操作站4:通讯网络5:图形及遍程软件
[create_time]2020-03-06 11:08:53[/create_time]2013-12-16 17:54:37[finished_time]3[reply_count]5[alue_good]匿名用户[uname]https://iknow-base.cdn.bcebos.com/yt/bdsp/icon/anonymous.png?x-bce-process=image/quality,q_80[avatar][slogan]这个人很懒,什么都没留下![intro]6547[view_count]
为什么通过DAC0832输出产生三角波,电压0-5v 所对应的输出数据是00H—0FFH
DAC0832是8位D/A转换器,输出产生三角波,电压0-5v 所对应的输出数据
二进制数据范围为 00000000 - 11111111,变成16进制就是00H—0FFH。
0FFH换算成十进制数为255。输出数据算法,数据为0,输出电压为0,数据为255,输出电压为5V。 255/5V=(数据)/x 输出电压x=(数据)* 5/255 V
[create_time]2018-05-01 17:27:18[/create_time]2016-11-15 15:03:02[finished_time]2[reply_count]2[alue_good]百度网友995c5cc[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.c594a9f3.BeRCIXp3PI309_2GTwTSSg.jpg?time=3772&tieba_portrait_time=3772[avatar]TA获得超过7189个赞[slogan]这个人很懒,什么都没留下![intro]2461[view_count]
DAC0832单双缓冲原理
⑴单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。 ⑵双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。
⑶直通方式。直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。
DAC0832并行的现在用的比较少了,不过这个用的比较多的是单缓冲和直通方式,具体链接电路很简单的,还有不懂的,一起探讨下!
[create_time]2018-04-06 10:58:12[/create_time]2011-05-25 20:51:08[finished_time]1[reply_count]27[alue_good]攀岩风[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.3515b8fe.36eD7nUtMTsbGlcOlpyH2A.jpg?time=3046&tieba_portrait_time=3046[avatar]超过11用户采纳过TA的回答[slogan]这个人很懒,什么都没留下![intro]5397[view_count]
以DAC0832为例,说明D/A的单缓冲与双缓冲有何不同
⑴单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。 ⑵双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。
⑶直通方式。直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。
DAC0832并行的现在用的比较少了,不过这个用的比较多的是单缓冲和直通方式,具体链接电路很简单的,还有不懂的,一起探讨下!
[create_time]2017-06-17 13:26:15[/create_time]2017-06-17 16:46:30[finished_time]1[reply_count]12[alue_good]秋行和尚书748[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.459c6036.n-KcVoTrTEfAp2EgmmxcBA.jpg?time=4297&tieba_portrait_time=4297[avatar]TA获得超过369个赞[slogan]这个人很懒,什么都没留下![intro]1906[view_count]
已知DA转换器DAC0832的口地址为FEFFH,试编写程序产生三角波信号,信号周期不作要求
#define DAC0832 *((unsigned char *)(0xfeff))
//如果是51单片机,#define DAC0832 *((unsigned char xdata*)(0xfeff))
unsingned char bData=0;
//产生幅值从 (0~255 * vRef )/255变化的的锯齿波,周期为while循环时间*256
while(1)
{
DAC0832 = bData++;
}
[create_time]2012-08-27 11:29:32[/create_time]2012-08-27 12:24:01[finished_time]2[reply_count]3[alue_good]cmingguo[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.3f1e4110.FB1ow4FO2RuYZgTFb5dECw.jpg?time=3544&tieba_portrait_time=3544[avatar]TA获得超过118个赞[slogan]这个人很懒,什么都没留下![intro]1410[view_count]
利用单片机和DAC0832控制输出方形波,锯齿波,三角波,并通过示波器显示 程序如下
单片机和DAC0832控制输出方波,锯齿波,三角波,正弦波。#include//unsigned char TIME0_H=0xec,TIME0_L=0x78; //定时器0的初值设置;全局变量#include#includevoid main(){TMOD=0X01;TH0=0xff;TL0=0xd9;IT0=1; //设置中断触发方式,下降沿EA=1;EX0=1;ET0=1;IP=0X01; //键盘中断级别高TR0=1;while(1){// square();;}}********************************************************************#ifndef __0832_h__#define __0832_h__//#define INPUT XBYTE[0xbfff] //即cs 与xfer 轮流低电平。//#define DACR XBYTE[0x7fff] //单通道输出,单缓冲就行了。unsigned char i,sqar_num=128; //最大值100,默认值50unsigned char cho=0; //0:正弦波。1:方波。2:三角波。3:锯齿波。unsigned char num=0;unsigned char TIME0_H=0xff,TIME0_L=0xd9; //定时器0的初值设置;全局变量.对应正弦波,锯齿波50HZsbit chg= P1^0; //三角波100Hz.sbit freq_u=P1^1;sbit freq_d=P1^2;sbit duty_u=P1^3;sbit duty_d=P1^4;sbit cs =P3^7;bit flag=0;unsigned int FREQ=50;//初始化频率,50HZ//调节部分——频率void freq_ud(void){unsigned int temp;if(freq_d==0){ FREQ--; }else if(freq_u==0) { FREQ++; }if(cho==1|cho==3) //锯齿波256次中断一周期,特殊处理下。否则他的频率是100(+\-)n*2Hz.{temp=0xffff-3906/FREQ; //方波,三角波默认为100hz,切换后频率也为50HZ 65336-10^6/(256*FREQ)TIME0_H=temp/256;TIME0_L=temp%256;}else if(cho==0|cho==3){ //正弦波 三角波默认周期50hz 65536-10^6//(512*FREQ)temp=0xffff-1953/FREQ;TIME0_H=temp/256;TIME0_L=temp%256;}}//调节部分——方波的占空比void duty_ud(void) //方波也采用512次中断构成一个周期。{if(duty_d==0&sqar_num>0)sqar_num--;else if(duty_u==0&sqar_num<255) sqar_num++;}//波形发生函数void sint(void){if(!flag){cs=0;P2=sin_num[num++];cs=1;if(num==0){num=255;flag=1;}}else if(flag) {cs=0;P2=sin_num[num--];cs=1;if(num==255){num=0;flag=0;}}}void square(void){if(i++<sqar_num) {cs=0;P2=0XFF;cs=1;}else{cs=0;P2=0X00;cs=1;}}void triangle(void){cs=0;P2=num++;cs=1;}void stw(void){if(~flag){cs=0;P2=num++;cs=1;if(num==0){num=255;flag=1;}}else if(flag){cs=0;P2=num--;cs=1;if(num==255){num=1;flag=0;}}}//按键中断处理程序。void it0() interrupt 0{if(chg==0) { if(++cho==4) {cho=0;num=0;}} //num=0;所有数据从新开始,保证波形的完整性else if(freq_u==0|freq_d==0){freq_ud();}else if (cho==1&(duty_d==0|duty_u==0)){duty_ud();}else ;}//定时器中断处理程序。void intt0() interrupt 1{//TH0=0x00;TL0=0x00;sinx();switch(cho){case 0:{TH0=TIME0_H;TL0=TIME0_L;sint() ;break;} //正弦波//每半周期256取样。case 1:{TH0=TIME0_H;TL0=TIME0_L;square(); break;}//方波 //为了提高方波的最高频率,只有牺牲占空比的最小可调值。分100份 每次1%。case 2:{TH0=TIME0_H;TL0=TIME0_L;triangle();break;}//三角波case 3:{TH0=TIME0_H;TL0=TIME0_L;stw(); break;}//锯齿波default: ;} }#endif*****************************************//正弦表;每半个周期256个取值,最大限度保证波形不失真。//各个值通过MATLAB算出,并四设五如取整。具体程序如下#ifndef __sinx_h__#define __sinx_h__unsigned char code sin_num[]={ 0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,4,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,12,12,13,14,15,15,16,17,18,18,19,20,21,22,23,24,25,25,26,27,28,29,30,31,32,34,35,36,37,38,39,40,41,42,44,45,46,47,49,50,51,52,54,55,56,57,59,60,61,63,64,66,67,68,70,71,73,74,75,77,78,80,81,83,84,86,87,89,90,92,93,95,96,98,99,101,102,104,106,107,109,110,112, 113,115,116,118,120,121,123,124,126,128,129,131, 132,134,135, 137, 139,140,142,143,145,146,148, 149,151,153,154,156,157,159,160,162,163,165, 166,168,169,171,172,174,175,177,178,180,181, 182,184,185,187,188,189,191,192,194,195,196,198,199,200,201,203,204,205,206,208,209,210,211,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,230,231,232,233,234,235,236,237,237,238,239,240,240,241,242,243,243,244,245,245,246,246,247,247,248,248,249,249,250,250,251,251, 251,252,252,253,253,253,253,254,254,254,254,254,255,255,255,255, 255,255,255,255,255};#endif//MATLAB程序://x=linspace(-pi/2,pi/2,255);%如果过采用1位采用,很多值是重的。虽然实际中并不会。//y=(sin(x)+1)/2.0*255;//%uint32(y)%强制类型转换。//%fprintf('%.f\n',uint32(y));%控制输出类型//round(y)%四舍五入函数
[create_time]2018-12-28 08:49:33[/create_time]2019-01-11 18:03:25[finished_time]3[reply_count]5[alue_good]guelcl[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.6c76c1c2.DPlPibJqMI3gKbBS8HqpwA.jpg?time=4406&tieba_portrait_time=4406[avatar]TA获得超过207个赞[slogan]这个人很懒,什么都没留下![intro]2151[view_count]DAC0832的作用是什么啊
DAC0832(数模转换器的一种)用作过程控制计算机系统的输出通道,与执行器相连,实现对生产过程的自动控制。数模转换器电路还用再利用反馈技术的模数转换器设计中。DAC0832的作用主要是把连续的模拟信号转变为离散的数字信号。以其价格低廉、结构简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。扩展资料:DAC0832的特性:1、分辨率:分辨率它反映了输出模拟电压的最小变化值。定义为输出满刻度电压与2n的比值,其中n为DAC的位数。分辨率与输入数字量的位数有确定的关系。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用10位的DAC时,分辨率则为5V/1024=4.88mV。显然,位数越多分辨率就越高。2、建立时间:建立时间是描述DAC转换速度快慢的参数。定义为从输入数字量变化到输出达到终值误差±1/2 LSB(最低有效位)所需的时间。3、接口形式:接口形式是DAC输入/输出特性之一。包括输入数字量的形式:十六进制或BCD,输入是否带有锁存器等。参考资料来源:百度百科-DAC0832参考资料来源:百度百科-数模转换器
[create_time]2022-09-29 17:17:22[/create_time]2022-10-14 17:17:22[finished_time]1[reply_count]0[alue_good]乾莱信息咨询[uname]https://pic.rmb.bdstatic.com/bjh/user/62ac8245037c35cef5dd05b07789a9ca.jpeg[avatar]百度认证:内蒙古乾莱科技官方账号[slogan]这个人很懒,什么都没留下![intro]712[view_count]