基于51单片机的低频函数信号发生器内容摘要:
盘中断后,用扫描方式确定键号,根据键号,转入各键处理程序。 图 3 键盘中断流程图 正弦波 波形的数据表的实现方法 以正弦波数表为例,输出电压 0U = 128 5 5 sin( / 25 6 2 )128D V N V π,这里使用的 D/A 转换芯片 DAC0832 采用偏移二进制码实现双极性输出。 因此电压过零时的数字量为 128,第二级运放 LM358 输出电压的调节范围在 8V~+8V 之间。 使用 8 位的 DA 转换器分辨率为 82 ,每周期为 128 个离散点。 单片机向 0832 发送数字编码,产生不同的输出。 先利用采样定理对各波形进行抽样,然后把各采样值进行编码,得到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过 D/A 转换后输出就可以得到波形。 假如 N 个点构成波形的一个周期,则 0832 输出 N 个样 值点后,样值点形成运动轨迹,即一个周期。 重复输出 N 个点,成为第二个周期。 利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。 这样就控制了输出的波形及其幅值和频率。 促发 促发 外部中断 NO YES 图 4 软件总流程图 3 心得体会 开始的时候由于没有经验,不知如何下手,所以就去图书管找了一些书看,尽管有许多的设计方案,可是总感觉自己还是有许多的东西弄不太清楚,于是就请教同学。 他常做一些设计,有一些经验。 经过 他的解释分析各方案之后,决定用查表的方法来做。 这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。 我认为程序应该不大,片内 ROM 应该够用的。 用 LCD 显示 输出波形 ,现有集成的接口驱动芯片,波形可通过示波器进行显示,单片机接上 D/A 转换芯片即可,这样硬件很快就搭好了。 我以为这些做好了,构思也有了,写程序应该是相对容易的。 谁知道,写起程序来,才想到功能键要有扫描程序才行呀,我真的感到很难。 那时真的有点想放弃。 于是就去请教了 有经验的同学 , 同学 帮忙分析了一下,自己又查阅了一些资料,终于明白了扫描程序怎么写。 于 是在自己的努力下,程序很快就写好了。 尽管经历了不少的艰辛,但 我积累了一 定的 设计经验,最后也有点小小的成就感。 后面的路还很长,我还 得 努力。 参考文献 [1] 童诗白,华成英 .模拟电子技术基础〔 M〕 .北京 :高等教育出版社, [2] 潘永雄,沙河,刘向阳 .电子线路 CAD 实用教程〔 M〕 .西安:西安电子科技大学出版社,. [3] 张毅刚,彭喜源,谭晓昀,曲春波 .MCS51 单片机应用设计 [M].哈尔滨:哈 开始 初始化液晶 开外部中断 0 判断选择波形 输出选择波形 结束 按键处理 尔滨工业大学出版社, . 附件 : 程序清单: include include include include define uchar unsigned char define uint unsigned int sbit ksaw=P1^0。 //锯齿波按键 . sbit ktran=P1^1。 //三角波按键 . sbit ksquare=P1^2。 //方波按键 . sbit ksin=P1^3。 //正弦波按键 . sbit up=P1^4。 //频率增加按键 sbit down=P3^6。 //频率减小按键 sbit step_unit=P3^7。 //步进量选择 sbit CS=P3^5。 //DAC0832 片选,低电平有效 . uint time_num_1=0。 uchar k。 uchar num=0。 uchar saw_flag=0,tran_flag=0,square_flag=0,sin_flag=0。 //分别为锯齿波、三角波、方波和 正弦波的标志,为 1 时有效 uchar code num_tab[]={0123456789}。 uchar code tab[128]={ 64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106, 109,111,113,115,117,118,120,121,123,124,125,126,126, 127,127,127,127,127,127,127,126,126,125,124,123,121, 120,118,117,115,113,111,109,106,104,102,99,96,94,91, 88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39, 36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1, 1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23, 25,28,31,33,36,39,42,45,48,51,54,57,60}。 void delay( ) { uchar i。 for(i。基于51单片机的低频函数信号发生器
相关推荐
开始启动时点击处于停止转动状态,当按下启动按键时,点击开始转动并以单四拍作为默认启动方式,用两个开关按键用于节拍控制,用键盘按键控制停止、启动、正转、反转。 用 8051 作为 总 控制芯片。 ULN2020 用于步进电机的驱动控制。 其中在键盘控制时用键盘扫描程序。 如图 总方案图。 图 总方案 图 控制按钮 单片机 8051 功率驱动 步进电机 沈阳航空航天大学课程设计报告 第 2 章 详细
②可以人为校正年、月、日、时、分。 ③地一次开机显示: 2020 01 01。 ④掉电信息不丢失。 系统基本方案选择和论证 系统方案包括单片机的选型、时钟芯片的选择和显示模块的确定等。 单片机芯片的选择方案和论证 方案一 :采用 89C51 芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空间 ,能于 3V 的超低压工作 ,而且与 MCS51系列单片机完全兼容
接收一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期 输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是
下一个数字键,一个 “一 ”就显示在最右边的数码管上,同时将先前输入的所有 “一 ”向左移动一位。 密码清除功能:当按下清除键时,清楚前面输入的所有值,并清除所有显示。 开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开 主要的 设计实施过程:首先,选用 ATMEL公司的单片机 AT89C51,以及选购其他电子元件。 第二步,使用 DXP2020 设计硬件单路原理图
BCD 码; DM=1, 二进制数格式,此位不受复位信号影响。 12/24: 为 1,24 小时制;为 0,12 小时制。 DSE: 夏令时允许标志位。 在四月的第一个周日的 1︰ 59︰ 59 AM,时钟调到 3︰ 00︰ 00 AM; 在十月的最后一个周日的 1︰ 59︰ 59 AM, 时钟调到 1︰ 00︰00 AM。 (3)状态控制寄存器 C(只读) 表 24 寄存器 C 地址 D7
gle android 移 动 平台的相 关 理 论 Goolge android 移动平台的概述 Android 是 Goolge 公司于 07 年 11 月 5 日宣布的基于 LINUX 平台开源手机操作系统,该平台由操作系统,中间件,用户界面和应用软件组成, Android 是Goolge 开发的基于 linux 平台的开源手机操作系统。 它包括操统,用户界面和应用程序 移动电话