当前位置:文档之家› AT89C51单片机设计60s倒计时

AT89C51单片机设计60s倒计时

目录一、课程设计的目的、要求和设计目标 (1)1、目的 (1)2、要求 (1)3、目标.................................................................. 1二、硬件要求 (2)1、 AT89C51的芯片 (2)2、 LED 数码管显示器概述 (3)3、其他元器件介绍及参数选择.......................................... 6三、软件设计 (7)1、程序流程图 (7)2、程序导图 (7)3、定时 /计数器初值计算 (7)4、软件程序 (8)5、软件仿真设计………………………………………………… 9四、软件调试…………………………………………………………101、 <.HEX>文件的生成 (10)2、PROTEUS …………………………………………………… 10五、心得体会…………………………………………………………11一、课程设计的目的、要求和设计目标1、目的单片机课程即将结束, 课程的最后一项是单片机的课程设计。

通过课程设计, 我们要将在一个学期中所学的东西进行整理、归纳, 要把学到的知识转化成实际的运用,进一步的了解单片机的实质。

通过动手设计,深入学习,体验单片机在日常生活中的运用,提升专业知识。

课程设计的总体包括:对单片机的了解、运用,设计思路的解析,报告文字的处理等。

通过一系列的实际操作, 完善对课程的学习, 提升自我的学习能力和动手能力。

2、要求(1用单片机 AT89C51的定时器实现 60s 倒计时。

本例中用两位数码管静态显示倒计时秒值。

(2用 PROTEUS 设计,仿真基于 AT89c51单片机的 60s 倒计时实验。

(3通过 Keil uVision2软件,生成 .HEX 格式程序并植入 AT59C51单片机并调试、运行。

3、目标通过自主完成课程设计内容, 整理学期中所学到的知识, 了解单片机的程序过程和一系列的基础操作,将理论和实践相结合,完善课业。

二、硬件要求1、 AT89C51的芯片芯片概述AT89C51是一个低功耗,高性能 CMOS 8位单片机,片内含 4k Bytes ISP的可反复擦写 1000次的 Flash 只读程序存储器, 器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及 80C51引脚结构,芯片内集成了通用8位中央处理器和 ISP Flash存储单元,功能强大的微型计算机的 AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

其工作电压在 4.5 -5V 。

一般我们选用+5V 电压。

主要特性1. 与 MCS-51 兼容2. 4K 字节可编程闪烁存储器3. 寿命:1000写 /擦循环4. 数据保留时间:10年5. 全静态工作:0Hz-24MHz6. 三级程序存储器锁定7. 128×8位内部 RAM8. 32可编程 I/O线9. 两个 16位定时器 /计数器 10. 5个中断源11. 可编程串行通道12. 低功耗的闲置和掉电模式 13. 片内振荡器和时钟电路管脚说明(1电源及时钟引脚Vcc: 电源接入引脚AT89C51单片机图Vss :接地引脚XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地 ; XTAL2:晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端。

(2控制线引脚RST/Vpd:复位信号输入引脚 /备用电源输入引脚;ALE :地址锁存允许信号输出引脚 /编程脉冲输入引脚:EA:内外存储器选择引脚 /片外 EPROM 编程电压输入引脚;PSEN :外部程序存储器选通信号输出引脚。

(3并行 I/O引脚P0.0-P0.7:一般 I/O口引脚或数据 /低位地址总线复用引脚;P1.0-P1.7:一般 I/O口引脚;P2.0-P2.7:一般 I/O口引脚或高位地址总线引脚;P3.0-P3.7:一般 I/O口引脚或第二功能引脚2、 LED 数码管显示器概述本设计中采用的是 7SEG – COM – ANODE 型号数码管,它是一种半导体发光器件,其基本单元是发光二极管。

实物如图 3所示:数码管的分类数码管按段数分为七段数码管和八段数码管, 八段数码管比七段数码管多一个发光二极管单元。

按能显示多少个“8”可分为 1位、 2位、 4位等数码管。

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 (COM的数码管。

共阳数码管在应用时应将公共极 COM 接到 +5V,当某一字段发光二极管的阴极为低电平时, 相应字段就点亮。

当某一字段的阴极为高电平时, 相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM的数码管。

共阴数码管在应用时应将公共极 COM 接到地线 GND 上, 当某一字段发光二极管的阳极为高电平时, 相应字段就点亮。

当某一字段的阳极为低电平时, 相应字段就不亮。

LED 数码管有两种连接方法如下:共阳极接法。

把发光二极管的阳极连在一起构成公共阳极, 使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法。

把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。

每个发光二极管的阳极通过电阻与输入端相连。

LED 数码显示器的显示段码。

为了显示字符,要为 LED 显示器段码(或称字形代码,组成一个 8字形字符的 7段,再加上 1个小数点位,共计 8段,因此提供给 LED 显示器的显示段码为 1个字节。

各段码位的对应关系如下表所示 . 十六进制数及空白字符与 P 的显示段LED 数码管的驱动方式数码管要正常显示, 就要用驱动电路来驱动数码管的各个段码, 从而显示出我们要的数字, 因此根据数码管的驱动方式的不同, 可以分为静态式和动态式两类。

1、静态显示驱动:静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O端口进行驱动,或者使用如 BCD 码二 -十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

2、动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一, 动态驱动是将所有数码管的 8个显示笔划 "a,b,c,d,e,f,g,dp" 的同名端连在一起, 另外为每个数码管的公共极 COM 增加位选通控制电路, 位选通由各自独立的 I/O线控制, 当单片机输出字形码时, 所有数码管都接收到相同的字形码, 但究竟是那个数码管会显示出字形, 取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形, 没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的 COM 端, 就使各个数码管轮流受控显示, 这就是动态驱动。

在轮流显示过程中, 每位数码管的点亮时间为 1~2ms ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮, 但只要扫描的速度足够快, 给人的印象就是一组稳定的显示数据, 不会有闪烁感, 动态显示的效果和静态显示是一样的, 能够节省大量的 I/O端口,而且功耗更低。

LED 数码管参数8字高度:8字上沿与下沿的距离,比外型高度小,通常用英寸来表示,范围一般为0.25-20英寸。

长 -宽 -高:长——数码管正放时,水平方向的长度;宽——数码管正放时, 垂直方向上的长度;高——数码管的厚度。

时钟点:四位数码管中,第二位 8与第三位 8字中间的二个点。

一般用于显示时钟中的秒。

LED 数码管应用数码管是一类显示屏, 通过对其不同的管脚输入相对的电流会使其发亮, 从而显示出、数字。

能够显示、时间、日期、温度等所有可用数字表示的参数。

由于它的价格便宜,使用简单,在电器,特别是家电领域应用极为广泛,例如:空调、热水器、冰箱等。

LED 数码管使用的电流与电压电流:静态时,推荐使用 10-15mA ;动态时, 16/1动态扫描时,平均电流为 4-5mA ,峰值电流 50-60mA 。

电压:查引脚排布图, 看一下每段的芯片数量是多少?当红色时, 使用 1.9V 乘以每段的芯片串联的个数; 当绿色时, 使用 2.1V 乘以每段的芯片串联的个数。

3、其他元器件介绍及参数选择在课程设计中,还用到了一下元件:晶振,电容,电解电容,开关等。

其参数为:晶振频率为 12MHZ ,连接的两个电容为 30pF ;电阻排为 470*8,能够实现 8个 470欧电阻的等效替换;电解电容为 10u ;开关功能是在仿真过程中,按下开关便能实现 60秒复位。

三、软件设计1、程序流程图2、程序导图3、定时 /计数器初值计算(1本电路应用 TIMER0 MODE 16位计数器的计时中断法。

(2 1秒等于 1000000微秒,而每一计时脉冲是 1微秒,因此需输入 100000个计时脉冲,方可达到 1秒的时间。

本设计中,设定中断每次溢出时间 50ms 。

(3由上式得知,循环 20次即可达到 1秒定时,即:N=t/Tcy=0.05s/0.000001=5000X=65536-5000=15536=3CB0H(4 由上式得知 5000个脉冲, 首先需设定 TL0=3CH,TH0=0B0H, 第 1次只要输入 5000个脉冲输入就会溢出; 第 2次至第 20次, 则需每 1000000个计时脉冲, 定时1秒。

(5上电时,显示 60,开始倒数计时按下开关实现复位。

4、软件程序ORG 0000HAJMP MAINORG 0030HMAIN: MOV R2,#60 ;计数初值LOOP1: MOV A,R2MOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTR ;查表MOV P1,A ;十位显示MOV A,BMOVC A,@A+DPTRMOV P2,A ;个位显示MOV R7,#20LOOP0: MOV TMOD,#01H ;置 T0工作于方式 0MOV TH0,#3CH ;装入计数初值MOV TL0,#0B0HSETB TR0 ;启动定时器 T0JNB TF0,$ ; TF0=0,等待CLR TF0 ;清 TF0DJNZ R7,LOOP0 ;循环 20次DEC R2 ;减一CJNE R2,#0FFH,LOOP1 ;倒计时AJMP MAIN ;复位回到 60秒初始 TABLE: DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EHEND5、软件仿真设计AT89C51单片机设计:60S 倒计时仿真电路图四、软件调试 1、<.HEX>文件的生成通过软件Keil C51 仿真器生成 .HEX文件,过程为: 1. 启动Keil c51 2. 新建一个工程: Project菜单选择New project,选择好我们要保存的文件夹后,键入Frist 保存。

相关主题