当前位置首页 > 建筑/施工 > 图纸/图集
搜柄,搜必应! 快速导航 | 使用教程  [会员中心]

单片机原理与应用实验报告基于简单IO口的LED显示(综合类)

文档格式:DOC| 20 页|大小 1.31MB|积分 10|2021-11-05 发布|文档ID:38132227
第1页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 20
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 通信与信息工程学院2011 /2012 学年 第 二 学期 单片机原理与应用 实验报告专 业 网络工程 学 生 班 级 B090115 学 生 学 号 B09011512 学 生 姓 名 任 课 教 师 日 期 2012 年 4月 12 日目录实验目的………………………………………………………………1方案设计与方案比较…………………………………………………1单元电路设计…………………………………………………………6整体电路设计…………………………………………………………11调试与运行结果………………………………………………………13实验小结………………………………………………………………17参考文献………………………………………………………………18附件……………………………………………………………………19实验名称:基于简单I/O口的LED显示(综合类)1、 实验目的按照实验提供的单片机原理图,设计一个函数信号发生器。

    该函数信号发生器能够产生四种波形数据(正弦、方波、三角、锯齿),四种波形可通过按键进行切换调节,同时能够实现函数信号的频率可调并可通过LED数码管进行显示,以及函数信号的幅度的可调2、 方案设计与方案比较2.1 方案一:基于软件的函数信号发生器用C++编程得到信源波形数据现将得到的波形数据形成TABLE表存放到51单片机的程序存储器中,然后用51单片机中的定时器,每定时一定时间就从单片机中送出一个波形数据到DAC0832中进行数模转换然后送到示波器显示,循环进行,即可可到周期信号信号选择控制即是使单片机从不同的函数表中进行取数,频率控制可设置两个按键,一个加键和一个减键,每按一次使频率所对应的计数初值加减一个单位,并送到LED数码管上进行显示80C51DAC0832波形输出显示频率控制信号选择控制频率显示幅度控制 图2.1 总体设计框图图2. 2 程序流程2.2 方案二:基于硬件的函数信号发生器用C++编程得到信源波形数据和产生100-10000hz方波所需要的计数器的计数初值首先,将存储在51单片机中的信源数据存储到存储器6264中;然后,由单片机产生100-10000hz可变频率的方波,产生的方波作为8位计数器的时钟频率,可计数范围为0-255,即可把波形数据的一个周期读出,波形的选择可通过51单片机P2口的两位控制6264的高位A8、A9,其中00表示正弦,01表示三角波,10表示方波,11表示锯齿波;当检测到频率键发生改变时,单片机就会输出相应频率的方波并输出到LED数码管进行频率显示,这样4046就可以输出不同频率扫描的波形值,之后再经过DAC0832数模转换,即可得到所要的波形,此波形通过一个幅度调节环节,最终送到示波器显示。

    其中存储器6264中, 0000-00FF存放的是正弦信号数据,0100-01FF、0200-02FF、0300-03FF分别存放的是三角波、方波和锯齿波的数据;程序是先从p1口读入按键值,设定变化范围是1-100(即按1表示100hz),从TABLE表中得到相应的计数初值后,即可实现在P3.0口产生所需方波80C51波形控制频率控制锁存器74LS373数模转换DAC0832计数器LED显示存储器6264幅度控制图2.3 总体设计框图将波形数据载入6264开始DPTR指向计数初值表头设定计数器为工作方式1从P1口读入频率值频率送LED显示并取出对应计数初值初始化计数器启动计数器计数器计满否波形选择重置计数初值P3.0取反输出方波频率改变否是图2.4 程序流程图 2.3 方案比较 方案一主要基于软件来实现函数信号发生器,函数的周期主要通过由读取波形数据前的指令时间决定,不能实现1000hz的波形输出并且编程复杂;方案二主要基于硬件实现函数信号发生器,函数的周期由计数器的扫描频率决定,即由51单片机产生的方波决定,若再在51单片机和计数器中增加一个256倍的倍频器,就可以得到100-10000hz频率可变的信号输出,而且程序只需要完成将波形数据载入存储器6264和产生频率可变的方波,也得到了大大的简化。

    综上所述,选择方案二3 单元电路设计3.1 单片机正常工作电路图3.1 单片机工作电路图3.2 波形数据载入存储器6264 80C51单片机P2口低5位(P2.0、P2.1、P2.2、P2.3、P2.4)直接连接到存储器6264的地址高5位(A8、A9、A10、A11、A12),80C51单片机P0口一方面通过地址锁存器连接到6264的地址低8位,一方面直接连到6264的地址端,即P0口既是地址端又是数据端当由单片机的地址总线确定出6264存储地址后,由数据总线将波形数据送到6264中进行存储80C51锁存器74LS373存储器6264图3.2 实现框图开始函数表指针R0置0DPTR指向函数表头R0=>存储器6264指针R1取出函数表中波形数据DPTR指向存储器中相应波形存储区头R1=0DPTR指针加1否指针R1减1将波形数据送入指定存储单元是指针R0加1R0=0否结束是图3.3 程序流程图图3.4 实现电路图3.3 存储器及函数表存储器6264中, 0000-00FF存放的是正弦信号数据,0100-01FF、0200-02FF、0300-03FF分别存放的是三角波、方波和锯齿波的数据。

    生成这些数据是通过C++编程实现的以正弦波为例,由于存储区中存放的均为正数,故现将波形往上平移,则可避免存储负的数据将波形幅度量化成255个单元,一个周期中抽取256个数据,可得到下面的波形数据生成公式:h=127.5+127.5*sin(2*i*pi/256),生成波形数据见附表3.4 地址计数器设计74LS393是4位二进制计数器,将其中一片的Q3端输出接到另一片的时钟端,即可级联扩展成8位二进制计数器整个计数器的时钟信号由80C51单片机的P3.0口输出要产生时钟信号,即要实现产生100-10000hz的方波,实现频率可调TABLE表即是通过软件编程算出的相应频率的计数初值(TABLE表中的第一个数据0000H无实际意义,主要是使在编程过程中指针简化)程序是先从p1口读入按键值,我们设定变化范围是1-100(即按1表示100hz),从TABLE表中得到相应的计数初值后,即可实现在P3.0口产生所需方波这样,当计数器以不同的频率去扫描存储器6264时就可以得到不同频率的输出波形图3.5 计数器实现电路图3.5 D/A电路D/A电路用于产生函数波形,其原理就是将由8位二进制数表示的数字信号转换成模拟信号输出显示。

    OUT1是单一极性信号,其电压值由下面的公式得出(以正弦波为例)OUT1=VR*sinwt图3.6 函数波形产生电路3.6 数字幅度控制电路 幅度控制电路由分压衰减电路和模拟开关组成衰减电路可提供8中不同的衰减值,模拟开关在幅度开关的控制下选择其中一个输出其原理就是由8个阻值相同的电阻对OUT1进行分压,从不同的电阻间引出一个抽头就可以实现不同的波形幅度值可选择的幅值分别为(、、、、、、、)OUT1,分别对应的幅度开关值为000、001、010、011、100、101、110、111图3.7 幅度控制电路3.7 显示电路显示电路是用来显示输出波形频率的,本程序使用两位数码管显示器,利用扫描方式显示所需频率,可显示的范围为00—63(即频率键最高两位不使用)单片机P0端口并行连接两只共阳极数码管显示器数码管的8个引脚依照a、b、c、d、e、f、g顺序依次与P0端口的7个引脚P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、 P0.6、相连,R是限流电阻,取值为10kV0、V1是两只共阳极数码管的控制三极管,三极管的基极分别接在单片机P3.2和P3.3引脚上也就是说,P3.2输出为0时三极管V1导通,与其相连的共阳极数码管显示器开始工作;P3.3输出为1是三极管V1截至,与其相连的共阳极数码管显示器停止工作。

    三极管V0的作用与 V1三极管相同图3.8 显示电路图图3.9 显示流程图4 整体电路设计4.1 整体电路图程序分两个部分,顺序执行第一部分是把数据装入6064中,其中0000-00FF存放的是正弦信号数据,0100-01FF、0200-02FF、0300-03FF分别存放的是三角波、方波和锯齿波的数据;第二部分是实现产生100-10000hz的方波,实现频率可调TABLE表即是通过软件编程算出的相应频率的计数初值(TABLE表中的第一个数据0000H无实际意义,主要是使在编程过程中指针简化)程序是先从p1口读入按键值,我们设定变化范围是1-63(即按1表示100hz),从TABLE表中得到相应的计数初值后,即可实现在P3.0口产生所需方波在硬件实现的过程中,最主要考虑的问题是总线隔离问题,用三片74LS245解决了这个问题一开始有效工作的只有80C51、74LS373和6264,当将波形数据载入存储器6264后,必须屏蔽掉74LS373,以使80C51的输出不再对6264中存储好的波形数据产生影响然后,启动计数器和数模转换电路,由80C51单片机输出的方波信号作为计数器的时钟信号,当由单片机确定出显示哪种波形后,计数器就对选定的数据区进行扫描输出显示,只要波形选择不发生改变,计数器就会对同一片波形数据区(256个波形数据)进行循环扫描。

    进行了总线隔离后,只要将各单元电路按一定的输入输出关系串联起来即可而软件实现主要是将波形选择和频率显示嵌套到产生可变频率方波那段程序中即可参见图2.4 程序流程图图4.1 无显示有幅度控制整体电路图图4.2 有显示无幅度控制整体电路图4.2 元件明细表元件 数量80C51 1CRYSTAL(12M) 16264 174LS245 374LS373 174LS393 2DAC0832 17SEG-COM-ANODE 2DIPSW_8 1DIPSW_3 1SW-SPST 2CAP(30P) 2CAP(600000P) 1CAP(30P) 2RES(1K) 1RES(1) 1RES(100) 1RES(10K) 2PNP 24.3 测试用仪表OSCILLOSCOPE5 调试运行结果5.1写入存储器6264中波形数据测试图5.1 存储器6264存放的波形数据可见,存储器6264中, 0000-00FF存放的是正弦信号数据,0100-01FF、0200-02FF、0300-03FF分别存放的是三角波、方波和锯齿波的数据,这与所希望得到的结果完全一致,数据写入正确。

    5.2 频率按键与显示测试当频率按键选择一定的频率值时,数码管相应显示此频率值如频率选择为00000011(十进制表示03),数码管显示值应为03(3表示300hz,以此类推);频率选择为00111111(十进制表示63),数码管显示值应为63此处仅给出63的运行结果,运行结果如下:图5.2 频率显示测试结果 可见,测试结果与所设计预想完全一样,设计正确5.3 波形输出测试6264中存放了四种波形数据,其中0000-00FF存放的是正弦信号数据,0100-01FF、0200-02FF、0300-03FF分别存放的是三角波、方波和锯齿波的数据因此当波形选择为00时,输出正弦波,01、10、11分别对应三角波、方波和锯齿波图5.3 正弦波测试结果图5.4 三角波测试结果图5.5 方波测试结果图5.6 锯齿波测试结果 可见,测试结果与所设计预想完全一样,设计正确5.4 幅度测试可选择的幅值分别为(、、、、、、、)OUT1,分别对应的幅度开关值为000、001、010、011、100、101、110、111下面给出两组测试:111为原信号输出(即5V),011为X3输出(即2.5V)。

    图5.7 5V方波测试保持示波器的设置不变,测试011图5.8 2.5V方波测试 由图5.7可见,每格幅度为0.5V,共10格,即5V,测试正确而由两幅图也可看出,在相同的测试条件下,幅度按键改变,波形幅度确实发生了变化6 实验小结这次做的课题是基于I/O的LED显示由于是首次进行单片机的课程设计,毫无经验可言,也因此在设计初期毫无头绪后来的设计思路来自于大二时期的课程设计,设计数控函数信号发生器经过整合重新考虑,然后在细节上完善之后得到本次设计的思路:1,编程得到100—10000Hz的方波的计数初值,并将之写入单片机的存储器; 2,读取输入端P1口的数值,将之作为地址偏移读取相应初值,这里设计一个对应关系即:输入1,读取的初值为100Hz信号所对应的计数初值 3,编程得到正弦信号、三角信号、锯齿信号以及方波信号的源代码,即对信号进行等间隔采样,这里取256样点; 4,单片机外扩一片数据存储器,并将波形数据存入,通过设定得到0000—00FF单元存储正弦信号,0100—01FF存储三角信号……以此类推,并在此基础上完成信号的切换 5,以不同频率的方波通过256计数器扫描6264的地址端,并将输出的信号经D/A转换之后输出,期间加入幅度控制 当然这只是一个大致的思路,在实际操作过程中,很多细节的处理也是相当的棘手。

    譬如在设计过程中,I/O口不够用,以及信号的同端控制问题,由于是基于I/O,因此不能用I/O口的扩展芯片,在此基础上就要考虑I/O口的复用问题后来在林老师的帮助下,使用74245芯片,来完成一个总线隔离的功能,此类问题也就迎刃而解另一个问题就是参数的现实问题,双位数码显示,需要用延迟以及循环完成,我们将此程序嵌套在第一步的扫描程序段里面,因为查询扫描是一个查询的过程,如果加上显示的循环,软件的运行将会非常的吃力,应此我们不涉及延时程序,直接通过程序运行的延时来先后显示两位数码管,而这样一来,由于时延较大,因此不能观察到两位数码管是同亮同暗的;不过最后验收的时候老师提出用全局变量来完成同步显示,值得参考!这次的课程设计耗时4个周,从毫无头绪到大功告成,其中所学到的东西不知凡几,然而始终深信没有做不到的,只有想不到的观念,精简设计过程与思路,用尽量少的芯片,尽量简单的程序去完成尽量多的功能,这是一种精神!注:参考文献《单片机原理及接口技术》 徐煜明、韩雁 电子工业出版社《电工电子实验手册》 谢劲草、张豫滇 河海大学出版社《51单片机开发入门与典型实例》 王守中 人民邮电出版社《电工电子实验技术》许文龙、李家虎等 河海大学出版社存储器626420。

    点击阅读更多内容
    卖家[上传人]:18888888888
    资质:实名认证