七段数码管动态显示控制_第1页
七段数码管动态显示控制_第2页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 5/5七段数码管动态显示控制 实验二七段数码管动态显示控制 一、实验目的 利用AT89S52和使用两位数码管显示器,循环显示两位数00-99。其中 P2.0和P2.1端口分别控制数码管的个位和十位的供电,当相应的端口变成 低电平时,驱动相应的三极管会导通,+5V通过驱动三极管给数码管相应的 位供电,这时只要P3口送出数字的显示代码,数码管就能正常显示数字。 二、实验要求 1、使用两位数码管显示器,循环显示两位数00-99; 2、具有电源开关和指示灯,有复位键; 3、数码管动态显示,即扫描方式,每一位每间隔一段时间扫描一次。字符的亮度及清晰度与每位点亮的停留时间和每位显示的时间内轮换导通次数有

2、关。三、实验电路 四、实验器材 AT89S52;动态扫描显示;共阳极数码管;电阻 五、实验原理说明 图1 AT89S52引脚图图2 共阳极七段数码管引脚 图1AT89S52引脚图,说明如下: 按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O 口、控制和复位等。 1多功能I/O口 AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共32根I/O线。每根线可以单独用作输入或输出。 P0端口,该口是一个8位漏极开路的双向I/O口。在作为输出口时,每根引脚可

3、以带动8个TTL输入负载。当把“1”写入P0时,则它的引脚可用作高阻抗输入。当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。 P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P1口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对Flash 编程和程序校验时,P

4、1口接收低8位地址。另外,P1.0与P1.1可以配置成定时 /计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端,如表1-1所示。 表1-1 P1口管脚复用功能 端口引脚复用功能 P1.0 T2(定时器/计算器2的外部输入端) P1.1 T2EX(定时器/计算器2的外部触发端和双向控制) P1.5 MOSI(用于在线编程) P1.6 MISO(用于在线编程) P1.7 SCK(用于在线编程) P2端口,该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入

5、口。P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器或16位的外部数据存储器时,P2口送出高8位地址,在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。 P3端口,该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3口作输入口使用时,因为有内部的上拉电阻,那些被外部

6、信号拉低的引脚会输出一个电流。 在AT89S52中,同样P3口还用于一些复用功能,如表1-2所列。在对Flash编程和程序校验期间,P3口还接收一些控制信号。 表1-2 P3端口引脚与复用功能表 端口引脚复用功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(定时器0的外部输入) P3.5 T1(定时器1的外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 2 RST 复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。看门狗定

7、时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平。在SFR AUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。DISRTO位的默认状态,是复位高电平输出功能使能。 3 ALE/PROG 地址锁存允许信号。在存取外部存储器时,这个输出信号用于锁存低字节地址。在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MO或MOVC指令执行时ALE才

8、被激活。在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。 4 PSEN 程序存储器允许信号。它用于读外部程序存储器。当AT89S52在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。 5 EA/Vpp 外部存取允许信号。为了确保单片机从地址为0000HFFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。但是,如果锁定位1被编程,则EA在复位时被锁存。当执行内部程序时,EA应接到Vcc。在对Flash 存储器编程时,这条引脚接收12V编程电压Vpp。 6 XTAL1 振荡器的反相放大器输入,

9、内部时钟工作电路的输入。 7 XTAL2 振荡器的反相放大器输出。 图2为共阳极七段数码管引脚图,说明如下: 显示字形g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 5bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h b 1

10、1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h d 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 0 0 0 1 71h 六、程序流程图 七、程序清单 BITS EQU 20H;数码管个位数存放内存位置 TEN EQU 21H;数码管十位数存放内存位置 TEMP EQU 22H;计数器值存放内存位置 START: MOV TEMP,#0;初始化寄存器,从0开始STLOP: ACALL DISPLAY;调用显示子程序 INC TEMP;计数器加1 MOV A,TEMP; CJNE A,#100,NEXT;判断计数器是否满100

11、 MOV TEMP,#0;满100清零从新开始 NEXT: LJMP STLOP;不满就循环执行 DISPLAY: MOV A,TEMP;将TEMP中的十六进制数转换成十进制 MOV B,#10; DIV AB MOV TEN,A;十位在A MOV BITS,B;个位在B MOV DPTR,#NUMTAB;指定查表起始地址 MOV R0,#4; DPL1: MOV R1,#250; DPLOP: MOV A,BITS;取个位数 MOVC A,A+DPTR;查个位的7段数码管 MOV P2,A;送出个位的7段代码 CLR P0.0;开个位显示 ACALL DELAY1ms;显示162ms SET

12、B P0.0;关闭个位显示 MOV A,TEN;取十位显示 MOVC A,A+DPTR;查十位数的7段代码 MOV P2,A;送出十位的7段代码 CLR P0.1;开十位显示 ACALL DELAY1ms;显示162ms SETB P0.1;关闭十位显示 DJNZ R1,DPLOP;执行循环250次 DJNZ R0,DPL1;执行循环250*4=1000次 RET DELAY1ms: MOV R7,#80;延时162ms子程序(2+2*80=162ms,按照12MHZ计算) DJNZ R7,$; RET NUMTAB:DB: 0C0H,0F9H,0A4H,0B0H,099H,092H,082H

13、,0F8H,080H,090H 八、实验总结 经过对不同方案的分析、比较、取舍,然后进行原理图的设计,再经过仿真电路,软件的调试等环节的操作,最终实现了让数码管在单片机的控制下循环显示两位数00-99。过程是艰辛的,中间失败了好些次,经过数次的检测,修改,见到数码管正常工作时的喜悦之情是无以言表的。在正常的计数过程中,若按下复位键后,计数又重新从00开始。有时在刚接入电源时,数码管显示的不是00,这时需要按下复位键才能使其正常工作。最终现实的结果与预想的结果一致。 此次课程设计,我使用的是AT89S52的单片机,它是一种低功耗,高性能的CMOS8位微控制器,有40个引脚。通过单片机的不同I/O端口与外设连接,能够控制外设的工作情况,从而实现不同的符合各种需求功能的电路板。而且LED 数码管是单片机控制系统中最常见的显示器件之一,一般用来显示处理结果或输入输出信号的状态。不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。单片机的引脚与数码管引脚的连线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论