版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 目录1 DDS技术的基本原理12.1 DDS结构12.2 DDS数学原理52 总体设计方案731系统设计原理732总体设计框图83 系统的硬件设计83.2 DDS芯片的选择及与单片机之间的通信83.3 单片机(AT89S52)控制电路113.4 液晶显示模块143.5 低通滤波器的设计164 信号发生器的软件设计174.1 程序流程图174.2 键盘扫描流程图194.3 LCD的显示215部分系统的仿真和调试216 系统的程序代码257设计心的及体会328 参考文献331 DDS技术的基本原理2.1 DDS结构1971年,美国学者J.Tierney等人撰写的“A Digital Freque
2、ncy Synthesizer”-文首次提出了以全数字技术,从相位概念出发直接合成所需波形的一种新组成原理。限于当时的技术和器件产,它的性能指标尚不能与已有的技术相比,故没受到重视。近几年间,随着微电子技术的迅速发展,直接数字频率合成器(Direct Digital Frequency Synthesis简称DDS或DDFS)得到了飞速的发展,它以有别于其它频率合成方法的优越性能和特点成为现代频率合成技术中的佼佼者。具体体现在相对带宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。DDS是直接数字式频
3、率合成器(Direct Digital Synthesizer)的英文缩写。与传统的频率合成器相比,DDS具有低成本、低功耗、高分辨率和快速转换时间等优点,广泛使用在电信与电子仪器领域,是实现设备全数字化的一个关键技术。直接数字频率合成器(Direct Digital Synthesizer)是从相位概念出发直接合成所需波形的一种频率合成技术。一个直接数字频率合成器由相位累加器、加法器、波形存储ROM、D/A转换器和低通滤波器(LPF)构成。DDS的原理框图如下所示:StSnN位波形控制字WN位频率控制字K相位控制字P图2.1 DDS原理框图其中K为频率控制字、P为相位控制字、W为波形控制字、
4、fc为参考时钟频率,N为相位累加器的字长,D为ROM数据位及D/A转换器的字长。相位累加器在时钟fc的控制下以步长K作累加,输出的N位二进制码与相位控制字P、波形控制字W相加后作为波形ROM的地址,对波形ROM进行寻址,波形ROM输出D位的幅度码S(n)经D/A转换器变成阶梯波S(t),再经过低通滤波器平滑后就可以得到合成的信号波形。合成的信号波形形状取决于波形ROM中存放的幅度码,因此用DDS可以产生任意波形。这里我们用DDS实现正弦波的合成作为说明介绍。2.1.1 频率预置与调节电路K被称为频率控制字,也叫相位增量。DDS方程为:f0=fCLK/2n,f0为输出频率,fc 为时钟频率。当K
5、=1时,DDS输出最低频率(也即频率分辨率),为fc/2n,而DDS的最大输出频率由Nyquist采样定理决定,即fc/2,也就是说K的最大值为2N-1。因此,只要N足够大,DDS可以得到很细的频率间隔。要改变DDS的输出频率,只要改变控制字K即可。2.1.2累加器 fc频率控制字相位量化序列图2.2 累加器框图相位累加器由N位加法器与N位寄存器级联构成。每来一个时钟脉冲fc,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。寄存器将加法器在上一个时钟作用下继续与频率控制字进行相加。这样,相位累加器在时钟的作用下,进行相位累加。当相位累加器累加满时就会
6、产生一次溢出,完成一个周期性的动作。2.2.3 控制相位的加法器通过改变相位控制字P可以控制输出信号的相位参数。令相位加法器的字长为N,当相位控制字由0跃变到P(P0)时,波形存储器的输入为相位累加器的输出与相位控制字P之和,因而其输出的幅度编码相位会增加P/2N,从而使最后输出的信号产生相移。2.2.4 控制波形的加法器通过改变波形控制字W可以控制输出信号的波形。由于波形存储器中的不同波形是分块存储的,所以当波形控制字改变时,波形存储器的输入为改变相位后的地址与波形控制字W(波形地址)之和,从而使最后输出的信号产和相移。2.2.5 波形存储器用相位累加器输出的数据作为波形存储器的取样地址,进
7、行波形的相位一幅值转换,即可在给定的时间上确定输出的波形的抽样幅值。N位的寻址ROM相当于把0360的正弦信号离散成具有2N个采样值的序列,若波形ROM有D位数据位,则2N个样值的幅值D位二进制数值固化在ROM中,按照地址的不同可以输出相应相位的正弦信号的幅值。相位幅度变换原理图如下图所示:地址相位量化序列波形幅度量化序列(数据) 图2.3 相位幅度变换原理图2.2.6 D/A转换器D/A转换器的作用是把合成的正弦波数字量转换成模拟量。正弦幅度量化序列S(n)经D/A转换后变成了包络为正弦波的阶梯波S(t)。需要注意的是,频率合成器对D/A转换器的分辨率有一定的要求,D/A转换器的分辨率越高,
8、合成的正弦波S(t)台阶数就越多,输出的波形的精度也就越高。2.2.7 低通滤波器 对D/A输出的阶梯波S(t)进行频谱分析,可知S(t)中除主频fo外,还存在分布在fc,2fc等等的两边fo处的非谐波分量,幅值包络为辛格函数。因此,为了取出主频f0,必须在D/A转换器的输出端接入截止频率为fc/2的低通滤波器。2.2 DDS数学原理设有一频率为的余弦信号:现在以采样频率对进行采样,得到的离散序列为: 其中为采样周期。对应的相位序列为 从上式可以看出相位序列呈线性,即相邻的样值之间的相位增量是一个常数,而且这个常数仅与信号的频率有关,相位增量为:因为信号频率与采样频率之间有以下关系: 其中与为
9、两个正整数,所以相位的增量也可以完成:由上式可知,若将的相位均匀的分为等份,那么频率为的余弦信号以频率采样后,它的量化序列的样品之间的量化相位增量为一个不变值。根据上述原理可以构造一个不变量为量化相位增量的量化序列: 然后完成从到另一个序列的映射,由构造序列: 公式(21)公式(2-1)是连续信号经采样频率为采样后的离散时间序列,根据采样定理,当时,经过低通滤波器平滑后,可唯一恢复出。 可见,通过上述变换不变量将唯一的确定一个单频率模拟余弦信号: 该信号的频率为: 公式(22)公式(22)就是直接数字频率合成(DDS)的方程式,在实际的DDS中,一般取,于是DDS方程就可以写成: 公式(23)
10、根据公式(23)可知,要得到不同的频率只要通过改变的具体数值就可以了,而且还可以得到DDS的最小频率分辨率(最小频率间隔)为当时的输出频率:可见当参考频率始终一定是,其分辨率由相位累加器的位数决定,若取,则,即分辨率可以达到,这也是最低的合成频率,输出频率的高精度DDS的一大优点。由奈奎斯特准则可知,允许输出的最高频率,即,但实际上在应用中受到低通滤波器的限制,通常,以便于滤波镜像频率,一般:由此可见DDS的工作频率带较宽,可以合成从直流到的频率信号,同时它的输出相位连续,频率稳定度高。2 总体设计方案31系统设计原理本文提出的采用DDS作为信号发生核心器件的全数控函数信号发生器设计方案, 根
11、据输出信号波形类型可设置、输出信号幅度和频率可数控、输出频率宽等要求,选用了美国A/D公司的AD9850 芯片,并通过单片机程序控制和处理AD9850的32位频率控制字, 再经放大后加至以数字电位器为核心的数字衰减网络, 从而实现了信号幅度、频率、类型以及输出等选项的全数字控制。本系统主要由单片机、DDS直接频率信号合成器、数字衰减电路、真有效值转换模块、A/D转换模块、数字积分选择电路等部分组成。单片机AT89S52是整个系统关键部分,通过对键盘进行扫描读入相位信息,经转换后输出到芯片AD9850,输出波形。键盘输入的数字信息经AT89S52控制的LCD1602显示32总体设计框图系统构成如
12、下图3.1所示。LCD1602键盘单片机AD9850低通滤波器信号输出图3.1 系统框图3 系统的硬件设计因为本课题的功能电路与相关部件较多,为了便于研制期间的调试与最终成品的产业化,所以系统的最后实现采用了模块化的思想,即先把各个相关的电路与部件做成相互独立的分离模块,而系统的功能则是通过各模块间的级联来完成的。下面将分别叙述各功能模块及其中所用到的器件、电路以及在系统设计、调试过程中应该注意的问题。3.2 DDS芯片的选择及与单片机之间的通信信号的产生与控制部分电路由DDS片AD9851与单片机AT89S52组成, 用户通过键盘输入的信号要求被AT89S52接收,并经其处理后将计算出的控制
13、字传送给AD9851,由AD9851产生频率幅度可控的信号。下面以AD9851芯片为中心加以讨论。3.2.1 DDS芯片选择及引脚图本系统采用了美国模拟器件公司生产的高集成度产品 AD9851 芯片。AD9851 是在 AD9850 的基础上,做了一些改进以后生成的具有新功能的 DDS 芯片。AD9851 相对于 AD9850 的内部结构,只是多了一个 6 倍参考时钟倍乘器,当系统时钟为 180MHz 时,在参考时钟输入端,只需输入 30MHz 的参考时钟即可。AD9851 是由数据输入寄存器、频率/相位寄存器、具有 6 倍参考时钟倍乘器的 DDS 芯片、10位的模/数转换器、内部高速比较器这
14、几个部分组成。其中具有 6 倍参考时钟倍乘器的 DDS 芯片是由 32 位相位累加器、正弦函数功能查找表、D/A 变换器以及低通滤波器集成到一起。这个高速 DDS 芯片时钟频率可达 180MHz, 输出频率可达 70 MHz,分辨率为 0.04Hz。AD9851采用28引脚的SSOP表面封装,其引脚排列如图3-5所示,各引脚定义如下:D0D7:8 位数据输入口,可给内部寄存器装入 40 位控制数据。PGND:6 倍参考时钟倍乘器地。PVCC:6 倍参考时钟倍乘器电源。W-CLK:字装入信号,上升沿有效。FQ-UD:频率更新控制信号,时钟上升沿确认输入数据有效。FREFCLOCK:外部参考时钟输
15、入。 CMOS/TTL 脉冲序列可直接或间接地加到 6 倍参考时钟倍乘器上。在直接方式中,输入频率即是系统时钟;在 6 倍参考时钟倍乘器方式,系统时钟为倍乘器输出。 AGND:模拟地。AVDD:模拟电源(+5)。 DGND:数字地。 DVDD:数字电源(+5)。 RSET、DAC:外部复位连接端。 VOUTN:内部比较器负向输出端。 VOUTP:内部比较器正向输出端。 VINN:内部比较器的负向输入端。 图3-5 AD9851管脚示意图VINP:内部比较器的正向输入端。DACBP:DAC 旁路连接端。 IOUTB: “互补”DAC 输出。 IOUT:内部 DAC 输出端。 RESET:复位端。
16、低电平清除 DDS累加器和相位延迟器为 0Hz 和 0 相位,同时置数据输入为串行模式以及禁止 6 倍参考时钟倍乘器工作。3.2.2 AD9851的串、并行通信AD9851的串行操作有两种数据传送方式,即从最高位开始传送和从最低位开始传送,这是由控制寄存器1的第8位来决定的。默认状态为低电平,此时先传送最高位,若为高电平则先传送最低位。串行操作的时序如图3-6所示。 图3-6 控制字串行输入时序图在串行输入方式,W-CLK上升沿把25引脚的一位数据串行移入,当移动40位后,用一个FQ_UD脉冲即可更新输出频率和相位。图3-7是相应的控制字串行输入的控制时序图。AD9851的复位(RESET)信
17、号为高电平有效,且脉冲宽度不小于5个参考时钟周期。AD9851的参考时钟频率一般远高于单片机的时钟频率, 因此AD9851的复位(RESET)端可与单片机的复位端直接相连。图3-7 控制字并行输入的时序图在并行装入方式中,通过8位总线D0-D7将可数据输入到寄存器,在重复5次之后再在FQ-UD上升沿把40位数据从输入寄存器装入到频率/相位数据寄存器(更新DDS输出频率和相位),同时把地址指针复位到第一个输入寄存器。接着在W-CLK的上升沿装入8位数据,并把指针指向下一个输入寄存器,连续5个W-CLK上升沿后, W-CLK的边沿就不再起作用,直到复位信号或FQ-UD上升沿把地址指针复位到第一个寄
18、存器。3.3 单片机(AT89S52)控制电路AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52具有以下标准功能:8k字节Flash、256字节RAM、32 位I/O 口线、看门狗定时器、2个数据指针、三个16 位定时器/计数器、一个6向量2级中断结构、全
19、双工串行口、片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。一般单片机需外接一个时钟电路和一个复位电路,其设计为下:3.3.1 时钟电路图3-8 时钟电路 XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振
20、的频率可以在1MHz-24MHz内选择。电容取30PF左右。AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器。片外石英晶体或者陶瓷谐振器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,这里采用电容30pF,晶振采用11.0592MHz。3.3.2 复位电路 AT89C52的外部复位电路有上电自动复位和手动按键复位。上
21、电复位电容充电来实现。手动按键复位又分为按键电平复位和按键脉冲复位。按键电平复位电路是在普通RC复位电路的基础上接一个有下拉电阻100K、上拉电容10f接VCC,电源由开关接至复位脚(和上拉电容并联),上拉电容支路负责在“上电”瞬间实施复位;开关通过100K下拉电阻分压器,保证对单片机实施按键电平复位。电路图如下图所示:图3-9复位电路3.3.3 单片机控制电路图 图3-10 单片机控制电路原理图P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在
22、这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。P2 口:P2 口是一个具有内部上拉电阻的
23、8 位双向I/O 口,P2 输出缓冲器。能驱动4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。3.3.4 单片机与AD9851的接口单片机与AD9851的接口既可采用并行方式,也可采
24、用串行方式,但为了充分发挥芯片的高速性能,应在单片机资源允许的情况下尽可能选择并行方式,本文重点介绍其并行方式的接口。P3.1 I/O方式并行接口I/ O方式的并行接口电路比较简单,但占用单片机资源相对较多,图3-11是I/O方式并行接口的电路图,AD9851的数据线D0D7与P1口相连, FQ_UD和W_CLK分别与P2.3(10引脚)和P2.4(11引脚)相连,所有的时序关系均可通过软件控制实现。图3.11 AT89S52与AD9851的电路连接图3.4 液晶显示模块3.4.1 LCD1602的主要性能1602型LCD可以显示2行16个字符,有8位数据总线D0D7和RS,R/W,EN三个控
25、制端口,工作电压为5V,并且具有字符对比度调节和背光功能6。1602型LCD的接口信号说明,如表3.1所示:表3.1 LCD1602接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极读状态:输入:RS=L,RW=H,E=H输出:D0D7=状态字读数据:输入:R
26、S=H,RW=H,E=H输出:无写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无3.4.2 LCD与单片机的连接图3-12 LCD与单片机的接口电路在实际的接线中,1602的DB0DB7与89S52的P0口相接,RS与P3.5相接,R/W与P3.6相接,E与P3.7相接。VL与地之间接一个10K的滑动变阻器来到1602初始显示的调节。3.5 低通滤波器的设计为了使输出的频率不受外界和一些杂波的干扰,需用一个低通滤波器(LPF)滤除高次谐波。常用的滤波器的频率响应有三种:巴特沃斯型(Butt
27、erworth),切比雪夫型 (Chebyshev)和椭圆型 (Cauer)。其中巴特沃斯滤波器通带最平坦,它的通带内没有纹波,在靠近零频处,有最平坦通带,趋向阻带时衰减单调增大,缺点是从通带到阻带的过渡带最宽,对于带外干扰信号的衰减作用最弱,过渡带不够陡峭,因此它适用于对通带要求较高,而去除的频率离通带较远的情况;切比雪夫滤波器在通带内衰减在零值和一个上限值之间做等起伏变化,阻带内衰减单调增大,带内有起伏,但过渡带比较陡峭;椭圆滤波器不仅通带内有起伏,阻带内也有起伏,而且过渡带陡峭。比较起来,椭圆滤波器性能更好,本设计中采的是椭圆滤波器。具体电路图如图3-13所示。图3-13 滤波电路4 信
28、号发生器的软件设计在应用系统中,系统软件的设计是建立在具体硬件电路基础之上,根据系统功能要求可靠地实现系统的各种功能。好的软件设计能够充分发挥微控制器的运算和逻辑控制功能,从而提高仪器的精度和使用的方便性。4.1 程序流程图通过程序预置频率,并实现对频率步进的控制,处理用户由键盘键入的频率值,判断是否超出范围,生成频率控制字,经并行方式送入DDS,合成用户所需的频率,并通过程序实现频率的显示。程序流程图如下:结束AT89C52初始化HAD9851初始化键盘扫描正弦波LCD1602初始化开始NY 图4-1 程序流程图4.2 键盘扫描流程图键盘扫描按键s1是否按下选中千位按键s1是否按下选中百位按
29、键s1是否按下选中十位按键s1是否按下选中个位否是是否否是否是图4-2 按键1扫描流程图如图所示,键盘初始化后扫描键盘,依次扫描3个按键,每个按键都编有延时去抖的程序,如果s1键按每按下一次下,则通过LCD中看出选中千位、百位、十位和各位中的哪一位,并通过s2和s3来改变相应的数值。键盘扫描按键s2是否按下频率加一否是键盘扫描按键s3是否按下频率减一否是图4-3 按键2、3的扫描流程图键盘扫描按键s4是否按下相位加32否是图4-3 按键4的扫描流程图如果s2键按下,频率加一。如果s3键按下,则频率减一。如果s4键按下,则相位增加32。 4.3 LCD的显示 图4-4 1602的显示流程图本系统
30、采用的1602的液晶显示,可显示两行数据,每行16个数据。首先根据其指令编码对其进行初始化。但要注意,1602是一个慢显示,所以对其读写数据需要一定的延时,以待其完全接收。在显示时,首先根据其地址分配,设定第一行的起始位置,再显示第一行的内容。第二行显示同理。5部分系统的仿真和调试在仿真过程中,由于在proteus元件库中没有AD9851芯片,也没有其他的DDS芯片可以代替,所以在仿真过程中,我只做了LCD的显示模块的仿真,其仿真结果如下:开始仿真,LCD上第一行会显示P: 第二行会显示f:图5-1 仿真结果1当按键s1第一次按下时, 再通过按键s2和s3调节千位数值,并会LED上显示一个频率
31、的千位数值。图5-2 仿真结果2当按键s1第二次按下时, 再通过按键s2和s3调节千位数值,并会LED上显示一个频率的千位和百位数值。 图5-3 仿真结果3当按键s1第四次按下时, 再通过按键s2和s3调节千位数值,并会LED上显示一个频率的数值。图5-4 仿真结果4当按键s4第一次按下时,则可以增加相位。图5-5 仿真结果5当按键s4第二次按下时,则可以增加相位22.5。图5-6 仿真结果66 系统的程序代码# include # include # include #define uint unsigned int#define uchar unsigned charsbit ad9850
32、_w_clk =P22; /P2.2口接ad9850的w_clk脚/PIN7sbit ad9850_fq_up =P21; /P2.1口接ad9850的fq_up脚/PIN8sbit ad9850_rest =P20; /P2.0口接ad9850的rest脚/PIN12sbit ad9850_bit_data =P23; /P1.7口接ad9850的D7脚/PIN25uint ge,shi,bai,qian,flag;double timer;uchar temp=0,temp1=0;uint a=0x30,0x30,0x30,0x2e,0x30,0xdf; /相位数据结果保存sbit lcd
33、rs=P17;sbit lcdrw=P16;sbit lcde=P24;sbit s1=P10;sbit s2=P11;sbit s3=P12;sbit s4=P13;sbit e=P37;void ad9850_reset_serial(void)ad9850_w_clk=0;ad9850_fq_up=0;/rest信号ad9850_rest=0;ad9850_rest=1;ad9850_rest=0;/w_clk信号ad9850_w_clk=0;ad9850_w_clk=1;ad9850_w_clk=0;/fq_up信号ad9850_fq_up=0;ad9850_fq_up=1;ad985
34、0_fq_up=0;void ad9850_wr_serial(unsigned char w0,double frequence)unsigned char i,w;long uint y;double x;/计算频率的HEX值x=/125;/适合125M晶振/如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !frequence=frequence/1000000;frequence=frequence*x;/*34.; /;y=frequence;/写w4数据w=(y=0);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/写w3数
35、据w=(y8);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/写w2数据w=(y16);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/写w1数据w=(y24);for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/写w0数据w=w0; for(i=0;ii)&0x01;ad9850_w_clk=1;ad9850_w_clk=0;/移入始能ad9850_fq_up=1;ad9850_fq_up=0;void delay(uint n) /延时程序uint
36、i,j;for(i=0;in;i+)for(j=0;j110;j+);void write_com(uchar com) /液晶控制指令子程序lcdrs=0;P0=com;delay(5);lcde=1;delay(5);lcde=0;void write_data(uchar date) /液晶数据输入子程序lcdrs=1;P0=date;delay(5);lcde=1;delay(5);lcde=0;void display(uchar t)/初始化显示子程序 uint phase;uchar j;phase=22.5*t;a0=phase/100+48;a1=phase%100/10+48;a2=phase%10+48;a4=48+5*(temp&0x01);write_com(0x80+0X02);for(j=0;j=5)flag=0;write_com(0x0c); timer=(qian*1000+bai*100+shi*10+ge);if(s4=0) delay(25); if(s4=0) temp1+=0x10; temp+; while(!s1); delay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招投标法规在电商行业的应用
- 城市更新项目报价模板
- 城市绿化养护招投标守则
- 数字化与绿色技术促进可持续发展专题政策研究报告2024
- 水上乐园建设项目预审表
- 本溪市燃气管道维修质量
- 培训机构参观管理规定
- 智能家居招投标合同样本模板
- 建筑工程烟囱施工合同样本
- 城市商业综合体书店门面租赁合同
- 湖北省恩施市沙地初中2024-2025学年八年级数学上学期期中考试题卷(含答案)
- 旅游景区旅游安全风险评估报告
- 部编2024版历史七年级上册第三单元《第14课 丝绸之路的开通与经营西域》说课稿
- 合同模板 交税
- 社区计划生育自查报告(3篇)
- 人教版小学数学六年级上册第二单元《位置与方向》单元集体备课整体设计
- 2024年银行考试-建设银行纪检监察条线考试近5年真题集锦(频考类试题)带答案
- 南京六校联合体2025届高三上期10月联考英语试题卷(含答案)
- 提升餐饮服务质量
- 兰亭序中楷毛笔临摹字帖(可打印)
- 05-6-7-矿山压力监测.ppt
评论
0/150
提交评论