欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 61单片机心得体会

61单片机心得体会

时间:2017-08-04 06:48

单片机若干问题

一 学习单片机要不要学习汇编

看了好多书,都要学习学习汇编,为什么

因为学习单片机能够使你了解单片机的内部结构,工作运行,性能。

因此,如果你|“根本”不了解汇编,就不能用好C语言。

如果你只懂C,你也不会成功单片机的高手。

请注意:“根本”。

所以结论,无论如何,你都要懂一点汇编,有根本的了解。

我的方法:我学习51后,再学习了AVR,现在学习STM32,主要还是用AVR,但我很少很少用汇编学AVR,所以我的方法:汇编只要求看懂。

编写用C。

二 要学习哪种单片机

刚开始学习的时候,我也想过要学那一种。

我很想PIC。

但刚好手上有AVR和51兼容的板子,就学习AVR了,现在想来,学习哪种都无所谓。

比较它们的好坏是无意义的。

包括51。

51性能是不够好。

但想想。

都说原子弹好,就把手榴弹给淘汰掉吗

大家都学会用原子弹算了,干嘛还要学习手榴,所以单片机也一样。

其实单片机的内核与构架都差不多,懂一种其它都很容易上手。

我的方法:PIC和AVR的性能和外备都比51高,学了AVR以后我才知识单片机可以是这样子。

为我学习更高的单片机打好基础。

三 如果上手一种新的单片机 其实你学会了一种单片机。

顶多只会补锅补铁。

不能成为匠人,在一个项目中,单片机顶多是一个电子器件,跟其它的都没区别。

现在我用做项目,不优先考虑我会使用的单片机,而是考虑这个项目应该用哪种单片机,记得我一个需要语音控制的项目。

就用到凌阳61单片机,于是用了,项目做完了。

1单片机也就上手了,现在我还用会。

学习单片机就像你认识什么是电阻哪样简单,只是平时我们把它特殊化了,觉得它神圣不可侵犯,没有用平常心对待它。

我的方法:平常做做项目。

为了应用而学习单片机。

而不是学完了应用。

我的建议:如果你用PIC做超声波测距仪。

我想。

超声波测距仪出来。

你也会用PIC了。

就不要再专门去点灯了。

三 关于看书 再在的单片机书真他妈的多啊。

如果说你看多了。

你会蒙发出自已也想出一本的想法。

确实是,现在的书,都是你抄我的,我抄你的。

或抄数据手册的。

要么就不会全面。

所以要想全面学习单片机。

得多看各种各样的书。

但不管看多少本要精通一本。

记得我现在常翻看的就是我当想学校那种单片机教程。

不管我多少次看它。

都把它看烂了,但每次看它。

都觉得它上面的很多东西我都没有学会 。

很奇怪。

真正应了温故而知新的说法。

所以要看精,看烂一本书。

还有,要看数据手册。

数据手册才是单片机的圣经。

你的很多问题只要仔细看数数手册百分之九十九都能得到解决。

我的方法:看透一本书。

多看几本书。

遇到问题先后数据手册。

大学PLC课程设计一般有哪些题目

我想提前吧它做了

<电子技术课计>  直流稳压电源设计任务书  一:设计任务及要求:  1. 设计任务 计一集成直流稳压电源,满足:  (1)当输入电压在220V交流时,输出直流电压为6V。

  (2)输出纹波电压小于5mv,稳压系数<=0.01;  (3)具有短路保护功能。

  (4) 最大输出电流为:Imax=1.0A;  2.通过集成直流稳压电源的设计,要求学会:  (1)选择变压器、整流二极管、滤波电容及集成稳压器来设计直流稳压电源。

  (2)掌握直流稳压电源的调试及主要技术指标的测试方法。

  3.设计要求  (1) 电源变压器只做选择性设计;  (2) 合理选择集成稳压器;  (3) 完成全电路理论设计、绘制电路图;  (4)撰写设计报告。

  目录  一.设计任务及要求:  二.基本原理与分析  三.三端集成稳压器  四.稳压电源的技术指标及对稳压电源的要求  五.集成电路选用时应注意的问题  六.参数性能指标及测试方法  七.心得体会  八.参考文献  附:部分  二、原理与分析  1.直流稳压电源的基本原理  直流稳压电源一般由电源变压器T、整流滤波电路及稳压电路所组成,基本框图如下。

各部分的作用:  (1)电源变压器T的作用是将电网220V的交流电压变换成整流滤波电路所需要的交流电压Ui。

变压器副边与原边的功率比为P2\\\/ P1=η,式中η是变压器的效率。

  (2)整流滤波电路:整流电路将交流电压Ui变换成脉动的直流电压。

再经滤波电路滤除较大的纹波成分,输出纹波较小的直流电压U1。

常用的整流滤波电路有全波整流滤波、桥式整流滤波等。

  各滤波电容C满足RL-C=(3~5)T\\\/2,或中T为输入交流信号周期,RL为整流滤波电路的等效负载电阻。

  (3)三端集成稳压器:常用的集成稳压器有固定式三端稳压器与可调式三端稳压器。

常用可调式正压集成稳压器有CW317(LM317)系列,它们的输出电压从1.25V-37伏可调,最简的电路外接元件只需一个固定电阻和一只电位器。

其芯片内有过渡、过热和安全工作区保护,最大输出电流为1.5A。

其典型电路如图2,其中电阻R1与电位器R2组成输出电压调节器,输出电压Uo的表达式为:Uo=1.25(1+R2\\\/R1)  式中R1一般取120-240欧姆,输出端与调整端的压差为稳压器的基准电压(典型值为1.25V)。

  2.稳压电流的性能指标及测试方法  稳压电源的技术指标分为两种:一种是特性指标,包括允许输入电压、输出电压、输出电流及输出电压调节范围等;另一种是质量指标,用来衡量输出直流电压的稳定程度,包括稳压系数(或电压调整率)、输出电阻(或电流调整率)、纹波电压(纹波系数)及温度系数。

测试电路如图3。

  图3 稳压电源性能指标测试电路  (1) 纹波电压:叠加在输出电压上的交流电压分量。

用示波器观测其峰峰值一般为毫伏量级。

也可用交流毫伏表测量其有效值,但因纹波不是正弦波,所以有一定的误差。

  (2)稳压系数:在负载电流、环境温度不变的情况下,输入电压的相对变化引起输出电压的相对变化,即:  (3) 电压调整率:输入电压相对变化为±10%时的输出电压相对变化量,稳压系数和电压调整率均说明输入电压变化对输出电压的影响,因此只需测试其中之一即可。

  (4) 输出电阻及电流调整率  输出电阻与放大器的输出电阻相同,其值为当输入电压不变时,输出电压变化量与输出电流变化量之比的绝对值.电流调整率:输出电流从0变到最大值时所产生的输出电压相对变化值。

输出电阻和电流调整率均说明负载电流变化对输出电压的影响,因此也只需测试其中之一即可。

  直流稳压电源设计 (未经整理仅供参考)  直流稳压电源设计  一. 设计任务与设计的基本要求:  (1).直流稳压电源的任务:  利用所学的知识设计并制作交流变换为直流的稳压电源.  (2)直流稳压电源的基本要求:  A.稳压电源 在输入电压为220V.50HZ. 电压变化范围为+10%~-10%条件下:  a. 输出电压可调范围为:+9V~+12V;  b. 最大输出电流为:Imax=1.5A;  c. 电压调整率≤0.2%(输入电压220V变化范围+10%~-10%下,满载);  d. 负载调整率≤2%(最低输入电压下,空载到满载);  e. 纹波电压(峰-峰值) ≤5mV(最低输入电压下,满载);  f. 效率≥40%(输出电压为+9V,输入电压为220V下,满载);  g. 具有过流保护及短路保护功能;  B. 稳流电源 在输入电压固定为直流+12V的条件下;  a. 输出电流为:4~20mA可调;  b. 负载调整率≤2%(输入电压+12V,负载电阻由200Ω~300Ω变化时,输出电流为20mA时的相对变化率);  C. DC-DC变换器 在输入电压为+9V~+12V条件下:  a. 输出电压为+100V,输出电流为10mA;  b. 电压调整率≤2%(输入电压变化范围+9V~+12V);  c. 负载调整率≤2%(输入电压+12V下,空载到满载);  d. 纹波电压(峰-峰值) ≤100mA(输入电压+9V下,满载);  注:以下是本电路的发挥部分:  (1)扩充功能:  a. 排除短路故障后,自动恢复为正常状态; b. 过热保护;  c. 防止开, 关机时产生的”过冲”;  (2)提高稳压电源的技术指标;  a. 提高稳压调整率和负载调整率;  b. 扩大输出电压调节范围和提高最大输出电流值.  (3)改善DC-DC变换器的性能;  a. 提高效率(在100V, 100mA下测试);  b. 提高输出电压.  (4)用数字显示输出电压和输出电流.  摘 要  本系统稳压电源部分采用电压调整器uA723外加调整管2SC3280实现此功能,再通过单片机MCS-51(89C51)来起控制电路,实现了扩充多种功能.稳流部分采用了三端稳压调整器LM317T实现.DC-DC变换器采用了两片PFM控制芯片MAX770来实现,使输出电压提高到+100V,输出电流最大可以达到100mA.电压调整,负载调整率及纹波电压均优于指标要求.可以说本系统比其它同类产品要好的多.  二.方案论证与比较  1.稳压电源部分  方案一:简单的并联型稳压电源;  并联型稳压电源的调整元件与负载并联,因而具有极低的输出电阻,动态特性好,电路简单,并具有自动保护功能;负载短路时调整管截止,可靠性高,但效率低,尤其是在小电流时调整管需承受很大的电流,损耗过大,因而不能采用此方案.  方案二:输出可调的开关电源;  开关电源的功能元件工作在开关状态,因而效率高,输出功率大;且容易实现短路保护与过流保护,但是电路比较复杂,设计繁琐,在低输出电压时开关频率低,纹波大,稳定度极差,因而也不能采用此方案.  方案三:由uA723组成的零伏起调电源;  uA723内部设有高精度基准电压源和高增益的放大器,外围电路比较简单,电压稳定度也比较高,其典型电压调整率为0.01%,负载调整率为0.03%,且热稳定性好,输出噪声也很小,还内设有过电流控制电路,使用安全可靠,具有较高的性价比,为首选方案,所以此方案为必选题.  2.稳流电源部分  方案一: 采用7805三端稳压器电源;  固定式三端稳压电源(7805)是由输出脚Vo,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于CW78xx系列的稳压器,输入端接电容可以进一步的滤波,输出端也要接电容可以改善负载的瞬间影响,此电路的稳定性也比较好,只是采用的电容必须要漏电流要小的钽电容,如果采用电解电容,则电容量要比其它的数值要增加10倍,但是它不可以调整输出的直流电源;所以此方案不易采用.  方案二:采用LM317可调式三端稳压器电源;  LM317可调式三端稳压器电源能够连续输出可调的直流电压.  不过它只能连续可调的正电压,稳压器内部含有过流,过热保护电路;由一个电阻(R)和一个可变电位器(RP)组成电压输出调节电路,输出电压为:Vo=1.25(1+RP\\\/R).由此可见此稳压器的性能和稳压稳定都比上一个三端稳压电源要好,所以此此方案可选,此电源就选用了LM317三端稳压电源,也就是方案二.  3.DC-DC变换部分;  方案一:用正弦信号(几十赫兹以下)驱动硅钢型互感耦合变压器,经整流滤波后输出.由于硅钢的磁滞特性,这种电源的开关频率不算高,易出现磁饱和,因而不利于制作高效率的开关电源.  方案二:采用高频磁芯和开关特性好的VMOS管的PFM或PWM型开关电源,负载调整特性好,效率高,性能优良,但制作调试复杂,所以此方案也不于采纳,  方案三:采用充电泵型变换器,该类电源以电容代替电感作贮能元件,为一个或多个电容供电.该类电源的最大特点是元件易得,体积小,电路比较简单,无电感;但由于对充电泵的要求严格,不适合于工作在大负载条件下,因而在大多数电源中没有被广泛使用.  综合考虑效率,输出功率,输入输出电压,负载调整率,纹波系数,本设计选用方案二.考虑到PWM对磁性元件,开关元件特性的要求较低,因而较易实现.对于效率和纹波的要求可以通过仔细调整磁性元件的参数(L,Q,M等)使其工作在最佳状态,所以我们在选择方案的时候考虑到电路要简单,元件要容易找,还有在电路设计的时候避免遇到某些不必要的问题,所以我们选择了上述的方案中的第二个方案;第二个方案就能够达到我们的要求,的所以方案二我们采用了,利用开关特性和负载调整特性好及效率高,性能优良,而采用了它.(方案二)  三.直流稳压电源电路的方框图如下:  220V电源部分---变压部分---整流滤波部分---稳压电源稳流电源部分---+9V^+12V  直流稳压电源方框图  四.电路原理及各部的分离电路;  1.稳压电路部分;  采用精密电压调整器uA723,外加大功率调整管以提供大电流输出.uA723的特点如下:  ①无外接调整管时最大输出电流为:I=150mA;  ②外接调整管时,输出电流最大可达到12A以上;  ③最大输入电压为:Vmax=40V;  ④输出电压可调整范围为: +9V~+12V;  具体的电路图如下图所示:  电源变压器的效率如下所示:(小型变压器)  副边功率P2\\\/vA <1010^30 30^80 80^200  效率 η 0.6 0.7 0.8 0.85  由uA723的特性可知:要使电路实现零伏起调,uA723的7脚至少要获得-2V的附加电压,本方案不采用多抽头的变压器,该-2V电压可通过由电容C1,C2和二极管D1,D2组成的倍压电路获得.其输出电压由电阻R1和齐纳二极管Z1固定-5.6V  ,使uA723中的差分放大器在输出电压为0时仍能工作,主要的正电压通过整流桥和滤波电容C3从变压器获得.uA723的供电电压由齐纳二极管Z2固定在33V,以防止超过其极限电压值(40V).由BG2,BG3组成的达林顿管将输出电流提高到超过1A的范围.  在12脚和3脚间加0.6V的电压可调节极限电流值,该电压是电阻R9和电位器VR3是压降的总和,VR3的压降是VR3的电阻值与晶体管三极管BG1的集电极电流值的乘积,极限电流值可以通过电位器VR3连续调节.  输出电压由电位器VR2进行线性调节,电位器VR1用于调节零输出电压.  本设计还通过单片来实现了短路过流保护,过热保护,具体的电路图如下:  过热保护:温度开关KT一端通过一个上拉电阻接正电源,另一端接地,当温度过高时开关断开,产生一个零电平跳变送给单片来进行处理.  过流检测和短路保护原理:采用单片机MCS-51(89C51)对输出电流进行周期性的检测,可以方便地实现短路保护及短路故障排除后自恢复的所有功能.过流或短路时,检测电路向单片P1口发出报警信号,单片证实后启动它的保护电路,经过短时间延时后继续查询P1口上的内容,如无报警信号,则电路又恢复到正常状态.  过热保护,发声报警等功能也直接由单片机(89C51)来实现控制.  2.稳流电源部分;  LM317是三端可调式正电压调整器,正常工作时在其调整端与输出端之间有一个高稳定度的1.25V电压,利用该电压即可以获得可调的电流输出.实际中,  LM317输出端与电位器之间串接了一个10Ω\\\/1W的电阻,使最大电流限制在125mA左右,以免发生过流现象.  具体的电路图如下所示:  3.DC-DC变换部分;  DC-DC变换器的核心部件是两片升压开关调节器MAX770,MAX770结合了PFM低的吸取电流和PWM大功率应用下效率高的特点,能比以往的PWM器件提供更大的电流.  MAX770有以下的特点:  ①开关频率较高(300KHZ),减小了电感的尺寸;  ②在较宽输出电流范围内可以达到87%的效率;  ③功耗比较低;  用MAX770制成的升压器如下图所示;由于MAX770对VMOS管的驱动能力有限,使用了一片MAX770很难实现本电路的性能指标,因此本电路采用了两级MAX770.  五. 测试方法与调试过程;  1.稳压电源部分;  (1) 输出电压范围测试  调节可调电位器,用数字型万用表测出电阻两端的输出电压,最小值为0.821V,最大值为:24.61V.  (2) 最大输出电流测试 将输出电压调整至9V,输出端接通可调电阻,串入数字万用表,测得最大输出电流为:2.06A.  (3) 电压调整率测试  将调压变压器输出端接稳压电源的输入端,将稳压电源输出电压调整至9V,调节调压变压器,使其输出从176V升至到253V,用数字万用表测量负载两端的电压,测得最大电压变化量为:10mV,计算得电压调整率为:(0.01\\\/9)*100%=0.11%.  (4)负载调整率测试  空载时将输出电压调整至9V,在负载端接入300Ω\\\/120W的变阻器,将变阻器从6Ω调整至100Ω,用数字万用表监视输出电压的变化,测得最大电压变化量为:0.04V,因此负载调整率为:(0.04\\\/9)*100%=0.44%.  (5)纹波电压测试 将电压输出调整至9V,外接一个6Ω的电阻,将示波器置于AC\\\/5mV输入挡,测得负载上的纹波电压为:1mV.  (6)效率测试  将电压输出调整至9V,外接一个6Ω的电阻,其输出功率P0=81\\\/6=13.5W.在负载不变的情况下,测出稳压电源的交流输入电压为:12V,交流电流为:2.05A.因此输入功率Pi=12*2.05=24.7W(设功率因数为1),电源效率为(P0\\\/Pi)*100%=(13.5\\\/24.7)*100%=40%,达到上述所要求的指标.  (7)过流保护及短路保护功能测试  将电压输出调至为9V,外接一个6Ω的电阻,用万用表测得输出电流为:0.说明过流保护功能正常.再将输出短路,现象如同上,说明短路保护功能一切正常.  (8)采用单片机(89C51)来实现保护,检测 短路故障排除自恢复,过热保护,防止关机时产生的”过冲”均测试通过;一切正常.  2.稳流电源部分;  (1) 输出电流测试 输入电压为+12V,改变外接电阻的大小,记录最小电流值Imin与最大电流Imax.Imax=45.40mA,  Imin=1.46mA.  (2) 负载调整率的测量  输入电压+12V,负载电阻由220Ω至300Ω之间变化,设定输出电流20mA,每上升20Ω测输出电流,数据如下所示:  电阻\\\/Ω 200 220 240 260 280 300  电流\\\/mA 19.71 19.72 19.70 19.70 19.70 19.70  负载调整率≈0.02\\\/20.00=0.1%.  3. DC-DC变换器部分;  (1) 输出电压电流测试  输入电压由+9V至+12V变化,负载接3.6KΩ\\\/10W电阻,测得输出电压为+100.11V,输出电流为:30.7mA.  (2) 电压调整率的测试 空载,输入电压由+9V至+12V变化,测得最大电压变化为:0.1V.  (3) 负载调整率的测试 输入电压+12V,空载,测得输出电压 +100.1V;10KΩ\\\/5W电阻,测得输出电压为:  +100.0V.  (4) 纹波电压测试 输入电压 +9V,接3.6KΩ\\\/10W的电阻,示波置于交流AC\\\/250mV挡,测得纹波电压.Vpp≈80mV.  (5) 效率的测试  输入电流为:5A,输入电压为:11.8V时,测得输出电压为100.08V(3.6KΩ的电阻,电流为:27.8mA),计算可得出:  η=64.3%.  六. 电路的结果分析  1. 稳压电路部分;  (1) 输出电压的可调范围  由于本电路中uA723的7脚接-2V,因此可以实现从零伏起调,这也是本电路的特色之一,本电路实现了0^20V可调,超过指标要求.  (2)最大输出电流  它由uA723的3脚所接电阻R9决定,计算公式为:Imax=0.6\\\/R9,由于本电路中R9为0.33Ω,因此Imax限制为2A左右.  (3)电压和负载调整率及纹波电压 优于指标要求,这是由uA723优良特性与方案设计思路决定的.  (4)效率的测试 输出为9V,而输入为17V左右,因此有一部分功率被调整管吸收,从而导致了效率并不是很高.  2. 稳流电路部分;  (1) Rmin=10Ω, Rmax=1010Ω  I’min=1.25\\\/1010≈1.24mA > Imin  受输入电压+12V与LM317内部压降约为1.7V的影响,可能的最大电流为: I’max=(12-1.7)\\\/220≈46.82mA >  Imax  Imin>I’min是由于LM317在小电流负载下稳压性能变差造成的.  Imax>,华东师范大学物理系万嘉若,林康运等编著,高等教育出版社,1986年3月.  ◆ <<电子技术基础>>,华中工学院电子学教研室编,康华光主编,高等教育出版社,1982年6月.  ◆<<电子线路设计>>,(第二版)华中科技大学谢自美主编,华中科技大学出版社,2000年5月.

东仕 IDS 2000K 采用什么芯片配置

现在所用的小锅机子只能收12个台,是卫星升级了,自己调不了的,除非你花10元钱拿去升级机子就可以恢复54个台。

但卫星再升级又没用的了,建议现在不要花钱去升级机子,到时会全关掉的

用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角波等信号波形,

波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。

本次课程设计使用的AT89S51 单片机构成的发生器可产生锯齿波、三角波、正弦波等多种波形,波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑等优点。

在本设计的基础上,加上按钮控制和LED显示器,则可通过按钮设定所需要的波形频率,并在LED上显示频率、幅值电压,波形可用示波器显示。

二、系统设计 波形发生器原理方框图如下所示。

波形的产生是通过AT89S51 执行某一波形发生程序,向D\\\/A转换器的输入端按一定的规律发生数据,从而在D\\\/A转换电路的输出端得到相应的电压波形。

在AT89S51的P2口接5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有3个P2口管脚接TEC6122芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。

此方案的有点是电路原理比较简单,实现起来比较容易。

缺点是,采样频率由单片机内部产生故使整个系统的频率降低。

1、波形发生器技术指标 1)波形:方波、正弦波、锯齿波; 2)幅值电压:1V、2V、3V、4V、5V; 3)频率:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ; 2、操作设计 1)上电后,系统初始化,数码显示6个‘-’,等待输入设置命令。

2)按钮分别控制“幅值”、“频率”、“方波”、“正弦波”、“锯齿波”。

3)“幅值“键初始值是1V,随后再次按下依次增长1V,到达5V后在按就回到1V。

4)“频率“键初始值是10HZ,随后在按下依次为20HZ、50HZ、100HZ、200HZ、500HZ、1000HZ循环。

三、硬件设计 本系统由单片机、显示接口电路,波形转换(D\\\/A)电路和电源等四部分构成。

电路图2附在后 1、单片机电路 功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D\\\/A接口电路和显示驱动电路。

AT89S51外接12M晶振作为时钟频率。

并采用电源复位设计。

复位电路采用上电复位,它的工作原理是,通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过对电容充电。

RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始工作。

AT89S51的P2口作为功能按钮和TEC6122的接口。

P1口做为D\\\/A转换芯片0832的接口。

用定时\\\/计数器作为中断源。

不同的频率值对应不同的定时初值,允许定时器溢出中断。

定时器中断的特殊功能寄存器设置如下: 定时控制寄存器TCON=20H; 工作方式选择寄存器TMOD=01H; 中断允许控制寄存器IE=82H。

2、显示电路 功能:驱动6位数码管显示,扫描按钮。

由集成驱动芯片TEC6122、6位共阴极数码管和5个按钮组成。

当某一按钮按下时,扫描程序扫描到之后,通过P2口将数字信号发送到 TEC6122芯片。

TEC6122是一款数字集成芯片。

它的外接电压也是+5V,并且由于数码管的载压较小,为了保护数码管,必须在两者间接电阻,大约是560欧。

扫描利用软件程序实现,当某一按键按下时,扫描程序立即检测到,随后调用子程序,执行相应的功能。

3、D\\\/A电路 功能:将波形样值的编码转换成模拟值,完成双极性的波形输出。

由一片0832和两块LM358运放组成。

DAC0832是一个具有两个输入数据寄存器的8位DAC。

目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。

另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。

DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D\\\/A转换,故不需要外加电路。

0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM358实现,用两片LM358可以实现双极性输出。

单片机向0832发送数字编码,产生不同的输出。

先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D\\\/A转换后输出就可以得到波形。

假如N个点构成波形的一个周期,则0832输出N个样值点后,样值点形成运动轨迹,即一个周期。

重复输出N个点,成为第二个周期。

利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。

这样就控制了输出的波形及其幅值和频率。

四、 软件设计 主程序和子程序都存放在AT89S51单片机中。

主程序的功能是:开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,主程序框图如图1所示。

子程序的功能有:幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、显示等。

下面是程序 include #define uchar unsigned char #define uint unsigned int sbit LCP=P2^2; sbit SCP=P2^1; sbit SI=P2^0; sbit S1=P2^3; sbit S2=P2^4; sbit S3=P2^5; sbit S4=P2^6; sbit S5=P2^7; sbit DA0832=P3^3; sbit DA0832_ON=P3^2; uchar fun=0,b=0,c=0,d=0,tl,th; uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code tosin[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,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,0xe1,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,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,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,0x86,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,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,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,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,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,0x6f,0x72,0x76,0x79,0x7c,0x80 }; void display(unsigned char command) { unsigned char i; LCP=0; for(i=8;i>0;i--) { SCP=0; if((command & 0x80)==0) { SI=0; } else { SI=1; } command<<=1; SCP=1; } LCP=1; } void key1(void) { fun++; if(fun==4) fun=0x00; } void key2(void) { tl++; if(tl==0x1f) th++; } void key3(void) { tl--; if(tl==0x00) th--; } void key4(void) { double t; int f; TR0=0; t=(65535-th*256-tl)*0.4; f=(int)(1000\\\/t); S3=tab[f%10]; f=f\\\/10; S2=tab[f%10]; f=f\\\/10; if(f==0) S1=0; else S1=tab[f]; TR0=1; } void key5(void) { tl--; if(tl==0x00) th++; } void judge(void) { uchar line,row,de1,de2,keym; P1=0x0f; keym=P1; if(keym==0x0f)return; for(de1=0;de1<200;de1++) for(de2=0;de2<125;de2++){;} P1=0x0f; keym=P1; if(keym==0x0f)return; P1=0x0f; line=P1; P1=0xf0; row=P1; line=line+row; \\\/*存放特征键值*\\\/ if(line==0xde)key1(); if(line==0x7e)key2(); if(line==0xbd)key3(); if(line==0x7d)key4(); } void time0_int(void) interrupt 1 \\\/\\\/中断服务程序 { TR0=0; if(fun==1) { DA0832=tosin[b]; \\\/\\\/正弦波 b++; } else if(fun==2) \\\/\\\/锯齿波 { if(c<128) DA0832=c; else DA0832=255-c; c++; } else if(fun==3) \\\/\\\/ 方波 { d++; if(d<=128) DA0832=0x00; else DA0832=0xff; } TH0=th; TL0=tl; TR0=1; } void main(void) { TMOD=0X01; TR0=1; th=0xff; tl=0xd0; TH0=th; TL0=tl; ET0=1; EA=1; while(1) { display(); judge(); } } 五、心得体会 开始的时候由于没有经验,不知如何下手,所以就去图书管找了一些书看,尽管有许多的设计方案,可是总感觉自己还是有许多的东西弄不太清楚,于是就请教同学。

他常做一些设计,有一些经验。

经过他的解释分析各方案之后,决定用查表的方法来做。

这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。

用8031需要扩展ROM,这样还要进行存储器扩展。

而且现在8031实际中已经基本上不再使用,实际用的AT89S51芯片有ROM,这样把经过采样得到的数值制成表,利用查表来做就简单了。

我认为程序应该不大,片内ROM应该够用的。

用LED显示频率和幅值,现有集成的接口驱动芯片,波形可通过示波器进行显示,单片机接上D\\\/A转换芯片即可,这样硬件很快就搭好了。

我以为这些做好了,构思也有了,写程序应该是相对容易的。

谁知道,写起程序来,才想到功能键要有扫描程序才行呀,我真的感到很难。

那时真的有点想放弃

于是就去请教了老师,老师帮忙分析了一下,自己又查阅了一些资料,终于明白了扫描程序怎么写。

于是在自己的努力下,程序很快就写好了。

这次是我的第一个设计器件,尽管经历了不少的艰辛,但给我积累了一点设计的经验,最后也有点小小的成就感。

后面的路还很长,我还的努力

参考文献 [1] 童诗白,华成英.模拟电子技术基础〔M〕.北京:高等教育出版社,2003.345-362 [2] 潘永雄,沙河,刘向阳.电子线路CAD实用教程〔M〕.西安:西安电子科技大学出版社,2001.13-118. [3] 张毅刚,彭喜源,谭晓昀,曲春波.MCS-51单片机应用设计[M].哈尔滨:哈 尔滨工业大学出版社,1997.53-61.

基于单片机设计一个波形发生器,可产生方波、三角波、正弦波,且波形幅度、周期可调。

#include \\\/\\\/包含单片机寄存器的头文件sbit IR=P3^2; \\\/\\\/将IR位定义为P3.2引脚unsigned char a[4]; \\\/\\\/储存用户码、用户反码与键数据码、键数据反码unsigned int LowTime,HighTime; \\\/\\\/储存高、低电平的宽度 \\\/************************************************************函数功能:对4个字节的用户码和键数据码进行解码说明:解码正确,返回1,否则返回0出口参数:dat*************************************************************\\\/bit DeCode(void) { unsigned char i,j; unsigned char temp; \\\/\\\/储存解码出的数据 for(i=0;i<4;i++) \\\/\\\/连续读取4个用户码和键数据码 { for(j=0;j<8;j++) \\\/\\\/每个码有8位数字 { temp=temp>>1; \\\/\\\/temp中的各数据位右移一位,因为先读出的是高位数据 TH0=0; \\\/\\\/定时器清0 TL0=0; \\\/\\\/定时器清0 TR0=1; \\\/\\\/开启定时器T0 while(IR==0) \\\/\\\/如果是低电平就等待 ; \\\/\\\/低电平计时 TR0=0; \\\/\\\/关闭定时器T0 LowTime=TH0*256+TL0; \\\/\\\/保存低电平宽度 TH0=0; \\\/\\\/定时器清0 TL0=0; \\\/\\\/定时器清0 TR0=1; \\\/\\\/开启定时器T0 while(IR==1) \\\/\\\/如果是高电平就等待 ; TR0=0; \\\/\\\/关闭定时器T0 HighTime=TH0*256+TL0; \\\/\\\/保存高电平宽度 if((LowTime<370)||(LowTime>640)) return 0; \\\/\\\/如果低电平长度不在合理范围,则认为出错,停止解码 if((HighTime>420)&&(HighTime<620)) \\\/\\\/如果高电平时间在560微秒左右,即计数560/1.085=516次 temp=temp&0x7f; \\\/\\\/(520-100=420, 520+100=620),则该位是0 if((HighTime>1300)&&(HighTime<1800)) \\\/\\\/如果高电平时间在1680微秒左右,即计数1680/1.085=1548次 temp=temp|0x80; \\\/\\\/(1550-250=1300,1550+250=1800),则该位是1 } a[i]=temp; \\\/\\\/将解码出的字节值储存在a[i] } if(a[2]=~a[3]) \\\/\\\/验证键数据码和其反码是否相等,一般情况下不必验证用户码 return 1; \\\/\\\/解码正确,返回1}\\\/************************************************************函数功能:执行遥控功能*************************************************************\\\/void Function(void){ P1=a[2]; \\\/\\\/将按键数据码送P1口显示}\\\/************************************************************函数功能:主函数*************************************************************\\\/void main(){ EA=1; \\\/\\\/开启总中断 EX0=1; \\\/\\\/开外中断0 ET0=1; \\\/\\\/定时器T0中断允许 IT0=1; \\\/\\\/外中断的 TMOD=0x01; \\\/\\\/使用定时器T0的模式1 TR0=0; \\\/\\\/定时器T0关闭 while(1) \\\/\\\/等待红外信号产生的中断 ; }\\\/************************************************************函数功能:红外线触发的外函数*************************************************************\\\/void Int0(void) interrupt 0 using 0 { EX0=0; \\\/\\\/关闭外中断0,不再接收二次红外信号的中断,只解码当前红外信号 TH0=0; \\\/\\\/定时器T0的高8位清0 TL0=0; \\\/\\\/定时器T0的低8位清0 TR0=1; \\\/\\\/开启定时器T0 while(IR==0) \\\/\\\/如果是低电平就等待,给引导码低电平计时 ; TR0=0; \\\/\\\/关闭定时器T0 LowTime=TH0*256+TL0; \\\/\\\/保存低电平时间 TH0=0; \\\/\\\/定时器T0的高8位清0 TL0=0; \\\/\\\/定时器T0的低8位清0 TR0=1; \\\/\\\/开启定时器T0 while(IR==1) \\\/\\\/如果是高电平就等待,给引导码高电平计时 ; TR0=0; \\\/\\\/关闭定时器T0 HighTime=TH0*256+TL0; \\\/\\\/保存引导码的高电平长度 if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700)) { \\\/\\\/如果是引导码,就开始解码,否则放弃,引导码的低电平计时 \\\/\\\/次数=9000us\\\/1.085=8294, 判断区间:8300-500=7800,8300+500=8800. if(DeCode()==1) Function(); \\\/\\\/如果满足条件,执行遥控功能 } EX0=1; \\\/\\\/开启外中断EX0 }

求vga彩条信号显示控制器的原理图及其仿真波形图

VGA时序信号是图象显示的关键,行场扫描时序的产生,是利用逻辑编程的方法实现的,即用VHDL编写分频器,计时器模块,来获得T1、T2、T3、T4 时序。

当输出数字、彩条信号和棋盘格图象时,由外部12M有源晶振提供时钟输入,其中行频HS:12MHZ ÷13÷29=31830Hz、场频VS:31830Hz÷480×0.93=61.67Hz、T1=1\\\/31830Hz×4\\\/29=25.96us、 T2=1\\\/31830Hz×5\\\/29=6.04us、T3为两个行周期(T1+T2),T4为480个行周期。

图象信号包括数字、彩条、棋盘格,和ROM中定制的图形等。

数字信号和彩条信号的产生是按行场方向将屏幕各进行8等分,相当于一个8×8的点阵,在对应位置显示相应颜色即可获得所需图像信号;棋盘格信号是将横彩条和竖彩条相异或获得。

ROM中定制的较为复杂的彩色图像,需采用像素点输出,即将图像各像素点的信息存储于ROM中,再以一定的频率输出。

FPGA器件ROM的定制有两种方法:第一种方法是利用FPGA器件的嵌入式存储器定制LPM_ROM, 用.MIF文件或.HEX文件对其进行初始化,这种方法获得的ROM最大寻址空间为2 12,可以存储一幅分辨率为64×64的图像信息;第二种方法是在FPGA逻辑资源的限度内用VHDL语言定制一个ROM,采用CASE语句对其进行初始化,这种方法获得的ROM在存储深度较大时,编译时对时间的开销较大。

ROM初始化完成后,在25MHz的时钟频率下输出存储的图像信息。

其图象颜色种类的多少取决于存储空间的大小。

ROM定制的图象信息是利用FPGA嵌入的存储器定制LPM_ROM,可以用于存储一幅64×64分辨率的图像信息,数据线宽为3位,地址线12根,采用组合寻址方式,即行地址HSADDRESS占低6位,场地址VSADDRESS占高6位;若要显示更为复杂的图象信息,只需扩展存储器及寻址的数据线宽度,为了保证行地址信号输出与行扫描信号输出同步,场地址信号输出与场扫描信号输出同步,在VHDL编程时,可用25MHz时钟作为进程的启动信号。

输出信号的时序波形如图6所示。

各种图象信号的输出是由数据选择器通过VHDL编程实现的。

4.2 视频输出接口电路部分设计 VGA 接口采用非对称分布的15pin 连接方式,其工作原理是将显存内以数字格式存储的图像( 帧) 信号在RAMDAC 里经过模拟调制成模拟高频信号,然后进行输出显示,这样VGA信号就不必像其它视频信号那样还要经过矩阵解码电路的换算。

从视频成像原理可知VGA的视频传输过程是最短的,所以VGA 接口拥有许多的优点,如无串扰、无电路合成分离损耗等。

视频输出与VGA 接口如图7。

4.3 模式控制与显示部分设计 为了实现人机对话,模式控制与显示即人机接口的设计,选用LCD显示器和矩阵键盘,使接口和显示更加友好。

要求能根据键盘扫描结果,控制不同的图象信号输出,并进行相应的功能显示。

采用单片机89S51作为控制器,对键盘模块和功能显示模块进行控制。

用C语言编程,对键盘进行扫描和液晶显示模块的控制。

当然也可以对FPGA器件编程,实现对键盘模块和功能显示模块的控制。

但需占用FPGA器件的逻辑资源,会对定制图像信息的存储空间造成影响。

本设计采用4×4矩阵式键盘,行、列线占用单片机8个I\\\/O口资源,键盘扫描过程是列扫描行输出,逐列扫描,读取键值,根据读回的值判断所按键的位置,按键消抖采用延时消抖方式,根据键值跳转执行相应功能程序。

显示器采用TS-12864-3液晶显示屏,由单片机控制及驱动,显示系统当前工作状态等信息。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片