ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:758.31KB ,
资源ID:7770780      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7770780.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的简易数字示波器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的简易数字示波器.docx

1、基于单片机的简易数字示波器 本科生课程设计题目: 基于单片机的简易数字示波器 题目来源:省部级以上 市厅级 横向 自选题目性质:理论研究 应用与理论研究 实际应用研究学 院: 信息工程学院 系: 自动化 专业班级: 学生姓名: 学号: 起讫日期: 指导教师: 职称: 指导教师所在单位: 学院审核(签名): 审核日期: 二0 年制1、设计原理概述.设计背景.设计原理框图.2 硬件的设计. .最小系统的设计. 2.1.1最小系统的电路设计. 2.1.2单片机STC89c52介绍. 采样设计 2.2.1 采样电路设计. 2.2.2 ADC0809介绍. 显示设计 2.3.1 显示电路设计。. 128

2、64液晶介绍. 3. 软件设计. 程序流程图. 采样程序设计与分析. 显示程序设计与分析.4. 仿真. Proteus仿真软件介绍. 矩形波仿真. 三角波仿真. 正弦波仿真.5. 设计总结.6. 参考文献.7. 附录.1设计原理概述、设计背景示波器被广泛应用于各个领域。随着微电子技术和计算机技术的飞速发展,示波器也从模拟示波器向数字示波器发展。同模拟示波器相比,数字示波器具有很多优点,并开始逐步取代模拟示波器,成为市场上的主流。?示波器是现代电子测量中最常用的仪器,它是一种可以用来观察、测量、记录各种瞬时电压,并以波形方式显示其与时间关系的电子仪器。?可是现在的数字示波器比较贵,普遍在1000

3、元以上,这对于许多电子爱好者来说是一个比较大的负担,尤其是学生。基于单片机的简易数字示波器可以很好的解决这个问题,简易数字示波器不但成本低廉,而且能够满足许多电子爱好者的测量需求,可以得到很广泛的应用。设计原理框图 原理图设计2硬件设计 最小系统设计2.1.1 最小系统电路设计2.1.2单片机AT89S51介绍AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flas

4、h存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。ATS8951的管脚图及主要性能参数:AT89S51提供以下标准功能:4K字节闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中到内容,但振荡器停止工作并禁止其它所有工作部件直到下一个硬件复位。与MCS-51产品指令系统完

5、全兼容,4K字节在系统编程(ISP)Flash 闪速存储器,1000次擦写周期,的工作电压范围,全静态工作模式:0HZ-33MHZ,三级程序加密锁,128*8字节内部RAM、32个可编程I/O口线、2个16位定时/计数器、6个中断源,全双工串行UART通道,低功耗空闲和掉电模式,中断可从空闲模式唤醒系统,看门狗(WDT)及双数据指针,掉电标示和快速编程特性,灵活的在系统编程(ISP-字节或页写模式)。采样设计2.2.1采样电路设计2.2.2 ADC0809介绍ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接

6、接口。 1ADC0809引脚结构 ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换)EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。2 ADC0809应用说明 (1) ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

7、 (2) 初始化时,使ST和OE信号全为低电平。 (3) 送要转换的哪一通道的地址到A,B,C端口上。 (4) 在ST端给出一个至少有100ns宽的正脉冲信号。 (5) 是否转换完毕,我们根据EOC信号来判断。 (6) 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。2.2.3 电路设计说明A、B、C接地默认IN0为输入端 VREF+接5V参考电源 CLOCK信号为600KHZ显示设计2.3.1显示电路设计2.3.2、液晶屏LCD12864介绍LCD12864 分为两种,带字库和不带字库的此次使用的是不带字库的LCD12864液晶Proteus 中AMPIRE128*64

8、,如下图所示,该液晶驱动器为KS0108引脚功能: 与带字库液晶不同,此块液晶中含有两个液晶驱动器,一块驱动器控制64*64 个点,左右显示,这就是为什么AMPIRE128*64 引脚有CS1 和CS2 的原因。学习液晶主要看的它的指令系统,再次先说明一下“页”的概念,此液晶有8 页,一页有8 行。68/8=8;如下图所示。3、软件设计程序流程图 采样程序设计与分析uchar ad_data96; sbit START=P34; sbit OE=P36; sbit EOC=P35; uchar adc() uchar AD; START=1; START=0; while(EOC=0) OE=

9、1; AD=P1; OE=0;return(AD); void ad_cai()uchar b;for(b=0;b=95;b+)ad_datab=3*adc(); Uchar ad_data96 申请96个8位的空间变量用于存储96个采样数据。Ucahr adc()为根据ADC0809的时序编写的采样函数。Void ad_cai() 为采样96次的函数。显示函数设计与分析uchar page(uchar d_ata)uchar page; if(d_ata=51) page=0x05; else if(d_ata=102) page=0x04; else if(d_ata=153) page=

10、0x03; else if(d_ata=204) page=0x02; else if(d_ata=255) page=0x01; return(page);uchar D_data(uchar page,d_ata)uchar D_data;switch (page)case(1):D_data=d_ata-204;D_data=D_data/6;break;case(2):D_data=d_ata-153;D_data=D_data/6;break;case(3):D_data=d_ata-102;D_data=D_data/6;break;case(4):D_data=d_ata-51;

11、D_data=D_data/6;break;case(5):D_data=d_ata/6;break;default:break;return(D_data); uchar dian(uchar D_data)uchar d_data;switch(D_data)case(0):d_data=0x00;break;case(1):d_data=0x80;break;case(2):d_data=0x40;break;case(3):d_data=0x20;break;case(4):d_data=0x10;break;case(5):d_data=0x08;break;case(6):d_da

12、ta=0x04;break;case(7):d_data=0x02;break;case(8):d_data=0x01;break;default:break;return(d_data);void tudisplay(uchar *p)uchar i,num,D_num,d_data,c=1;SelectScreen(1);Set_column(16);for(i=0;i=48&c) SelectScreen(2); Set_column(0);c=0; Set_page(num);write_LCD_data(d_data);P1=num;波形都是由像素点组成的,波形的基础其实就是画点。只

13、要我们能点亮液晶的任意一个点,就能显示任意波形,从上面的图我们知道,它是分为两个半屏的,首先,我们要确定这个点是在左半屏还是右半屏,然后确定它是在那一行(page),再确定它是在哪一个字节的哪一个位(也就是确定它在那一列。这些都确定后我们就定位到某一个具体的位上了,只就将这个位置1,就可以点亮这个点。确定页8位转换,255个数,Page=255/5=51uchar page(uchar d_ata)uchar page; if(d_ata=51) page=0x05; else if(d_ata=102) page=0x04; else if(d_ata=153) page=0x03; els

14、e if(d_ata=204) page=0x02; else if(d_ata=255) page=0x01; return(page);以此确定页,然后根据页和转换的数据确定是点亮那一位uchar D_data(uchar page,d_ata)uchar D_data;switch (page)case(1):D_data=d_ata-204;D_data=D_data/6;break;case(2):D_data=d_ata-153;D_data=D_data/6;break;case(3):D_data=d_ata-102;D_data=D_data/6;break;case(4):D_data=d_ata-51;D_data=D_data/6;break;case(5):D_data=d_ata/6;break;default:break;return(D_data); 其中=255/40,这里近似除6,然后根据第几位给出显示数据由uchar dian(uchar D_data)函数完成。由于LCD12864列自动加一,所以只需确定第几页并确定显示那个点然后依次显示就能完成显示波形的需要。4、仿真 矩形波仿真结果如下图:由于算法的缺陷矩形波并不能像示波器一样显示完整的波形。 三角波仿真: 正弦波仿真5、设计总结:6、参考文献7、附录:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1