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

上传人:jun****875 文档编号:17807180 上传时间:2020-12-07 格式:DOC 页数:13 大小:1.16MB
返回 下载 相关 举报
基于单片机的简易数字示波器_第1页
第1页 / 共13页
基于单片机的简易数字示波器_第2页
第2页 / 共13页
基于单片机的简易数字示波器_第3页
第3页 / 共13页
点击查看更多>>
资源描述
本科生课程设计题目: 基于单片机的简易数字示波器 题目来源:省部级以上 市厅级 横向 自选题目性质:理论研究 应用与理论研究 实际应用研究学 院: 信息工程学院 系: 自动化 专业班级: 学生姓名: 学号: 起讫日期: 指导教师: 职称: 指导教师所在单位: 学院审核(签名): 审核日期: 二0 年制 目 录1、设计原理概述.1.1设计背景.1.2设计原理框图.2 硬件的设计. 2.1.最小系统的设计. 2.1.1最小系统的电路设计. 2.1.2单片机STC89c52介绍. 2.2 采样设计 2.2.1 采样电路设计. 2.2.2 ADC0809介绍. 2.3显示设计 2.3.1 显示电路设计。. 2.3.2 12864液晶介绍.3. 软件设计. 3.1程序流程图. 3.2 采样程序设计与分析. 3.3显示程序设计与分析.4. 仿真. 4.1 Proteus仿真软件介绍. 4.2 矩形波仿真. 4.2三角波仿真. 4.3正弦波仿真.5. 设计总结.6. 参考文献.7. 附录.1设计原理概述1.1、设计背景示波器被广泛应用于各个领域。随着微电子技术和计算机技术的飞速发展,示波器也从模拟示波器向数字示波器发展。同模拟示波器相比,数字示波器具有很多优点,并开始逐步取代模拟示波器,成为市场上的主流。示波器是现代电子测量中最常用的仪器,它是一种可以用来观察、测量、记录各种瞬时电压,并以波形方式显示其与时间关系的电子仪器。可是现在的数字示波器比较贵,普遍在1000元以上,这对于许多电子爱好者来说是一个比较大的负担,尤其是学生。基于单片机的简易数字示波器可以很好的解决这个问题,简易数字示波器不但成本低廉,而且能够满足许多电子爱好者的测量需求,可以得到很广泛的应用。1.2设计原理框图 原理图设计2硬件设计2.1 最小系统设计2.1.1 最小系统电路设计2.1.2单片机AT89S51介绍AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。ATS8951的管脚图及主要性能参数:AT89S51提供以下标准功能:4K字节闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中到内容,但振荡器停止工作并禁止其它所有工作部件直到下一个硬件复位。与MCS-51产品指令系统完全兼容,4K字节在系统编程(ISP)Flash 闪速存储器,1000次擦写周期,4.0-5.5V的工作电压范围,全静态工作模式:0HZ-33MHZ,三级程序加密锁,128*8字节内部RAM、32个可编程I/O口线、2个16位定时/计数器、6个中断源,全双工串行UART通道,低功耗空闲和掉电模式,中断可从空闲模式唤醒系统,看门狗(WDT)及双数据指针,掉电标示和快速编程特性,灵活的在系统编程(ISP-字节或页写模式)。2.2采样设计2.2.1采样电路设计2.2.2 ADC0809介绍ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 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单片机直接相连。 (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信号为600KHZ2.3显示设计2.3.1显示电路设计2.3.2、液晶屏LCD12864介绍LCD12864 分为两种,带字库和不带字库的此次使用的是不带字库的LCD12864液晶Proteus 中AMPIRE128*64,如下图所示,该液晶驱动器为KS0108引脚功能: 与带字库液晶不同,此块液晶中含有两个液晶驱动器,一块驱动器控制64*64 个点,左右显示,这就是为什么AMPIRE128*64 引脚有CS1 和CS2 的原因。学习液晶主要看的它的指令系统,再次先说明一下“页”的概念,此液晶有8 页,一页有8 行。68/8=8;如下图所示。3、 软件设计3.1程序流程图3.2 采样程序设计与分析uchar ad_data96; sbit START=P34; sbit OE=P36; sbit EOC=P35; uchar adc() uchar AD; START=1; START=0; while(EOC=0) OE=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次的函数。3.3显示函数设计与分析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=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;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_data=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;波形都是由像素点组成的,波形的基础其实就是画点。只要我们能点亮液晶的任意一个点,就能显示任意波形,从上面的图我们知道,它是分为两个半屏的,首先,我们要确定这个点是在左半屏还是右半屏,然后确定它是在那一行(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; 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;D_data=D_data/6;break;case(5):D_data=d_ata/6;break;default:break;return(D_data); 其中6.375=255/40,这里近似除6,然后根据第几位给出显示数据由uchar dian(uchar D_data)函数完成。由于LCD12864列自动加一,所以只需确定第几页并确定显示那个点然后依次显示就能完成显示波形的需要。4、 仿真4.1 矩形波仿真结果如下图:由于算法的缺陷矩形波并不能像示波器一样显示完整的波形。4.2 三角波仿真:4.3 正弦波仿真5、 设计总结:6、 参考文献7、附录:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!