基于单片机的数码管电子时钟内容摘要:

TO 位(地址 8EH)可打开或关闭该功能。 DISRTO 位缺省为 RESET 输出高电平打开状态。 ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址锁存允许 )输出脉冲用于锁存地址的低 8 位字节。 即使不访问外部存储器, ALE 仍以时钟振荡频 10 率的 1/6 输出固定的正脉冲信号,囚此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁正 ALE 操作。 该位置位后,只有一条MOVX 和 MOVC 指令 ALE 才会被激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSEN:程序储存允许 (PSEN)输出是外部程序存储器的读选通信号,当 AT89S51由外部程序存储器取指令 (或数据 )时,每个机器周期两次 PSEN 有效,即输出两个脉冲。 当访问外部数据存储器,没有两次有效的 PSEN 信号。 EA/VPP:外部访问允许。 欲使 CPU 仅访问外部程序存储器 (地址为 0000HFFFFH), EA 端必须保持低电平 (接地 )。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平 (接 Vcc 端 ), CPU 则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上 +12 V 的编程电压 Vpp。 XTAL 1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 特殊功能寄存器:特殊功能寄存器的于片内的空间分布的这些地址并没有全部占用,没有占用的地址亦不可使用,读这些地址将得到一个随意的数值。 而写这些地址单元将不能得到预期的结果。 中断寄存器:各中断允许控制位于 IE 寄存器, 5 个中断源的中断优先级控制位于 IP 寄存器。 双时钟指针寄存器:为更方便地访问 内部和外部数据存储器,提供了两个 16 位数据指针寄存器: DP0 位于 SFR(特殊功能寄存器 )区块中的地址 82H, 83H 和 DP1位于地址 84H, 85H,当 SFR 中的位 DPS=0 选择 DP0,而 DPS=1 则选择 DP1。 用户应在访问相应的数据指针寄存器前初始化 DPS 位。 电源空闲标志:电源空闲标志( POF)在特殊功能寄存器 SFR 中 PCON 的第 4位 (},电源打开时 POF 置‘ 1’,它可由软件设置睡眠状态并不为复位所影响。 程序存储器:如果 EA 引脚接地 (GND),全部程序均执行外部存储器。 在 AT89S51,假如 EA 接至 Vcc(电源 +),程序首先执行地址从 0000HOFFFH ( 4KB)内部程序存储器,而执行地址为 1000HFFFFH (60KB)的外部程序存储器。 数据存储器: AT89S51 的具有 128 字节的内部 RAM,这 128 字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行, 128 字节均可设置为堆栈区空间。 看门狗定时器 (WDT): WDT 是为了解决 CPU 程序运行时可能进入混乱或死循环而设置,它由一个 14bit 计数器和看门狗复位 SFR (WDTRST)构成。 外部复位时,WDT 默认为关闭状态,要打开 WDT,用户必须按顺序将 01EH 和 0E1H 写到 11 WDTRST 寄存器( SFR 地址为 OA6H},当启动了 WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或 WDT 溢出复位外没有其它方法关闭 WDT,当 WDT溢出,将使 RSF 引脚输出高电平的复位脉冲。 定时器 0 和定时器 1:定时器 0 和 1 都是一个 16 位定时 /计数器。 12 第 3 章 数码管电子时钟硬件系统设计 系统整体方案设计 利用单片机( AT89S51)制作简易电子时钟,由六个 LED 数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。 6 个 PNP 管( 9012)分别控制六个数码管的亮灭,两个按键用于时间调整。 系统硬件组成 图 31系统框图 根据系统框图和设计方案本文硬件电路主要分为五个部分:第一部分为以AT89S51 单片机为核心的控制模块;第 二部分是复位电路;第三部分位选部分,用以对显示部分的选通;第四部分为由 LED 数码管和发光二极管组成的显示模块;第五部分是按键部分,用来对时钟进行调时;第六部分为电源部分,为系统提供电源如图 31 所示。 显示部分 控制部分 单片机( AT89S51) 按键 复位电路 电源部分直流电源 5V 6 个七段共阴极数码管 显示秒,分钟及小时位 位选部分 6 个 PNP 三极管( 9012) 13 模块设计 控制部分 单片机实验板 [13]是一台含有 AT89S51。 内含 CPU、 ROM、 RAM、 CTC、 INT及 I/O 接口的微控制器,芯片外部还配有复位电路、振荡器蜂鸣器按键数码管及发光二极管等电路,将这些器件焊接在一块电路板上,组成的一台最简单的单片机控制系统。 ( 1)实验板的主要组成有 89S5复位电路、时钟电路(最小系统)、外部中断按钮、数码管、发光二极管、微动开关、蜂鸣器和拨码开关等组成。 ( 2) AT89S51 的 P P P P4 口可用作数码管显示端口,如果用 7 段数码管显示数字,应当把电路板上的 J J J J4 短路, J J6 开路,使正 5V 电压加到数码管上,数码管才能正常工作,否则数码管不亮。 ( 3) P0 作为发光二极管输出口时,应当把 J1 短路环去掉,数码管不供电,将 J5 短路环插上给发光二极管供电,发光二极管才能正常工作。 ( 4) P1 口也可以作为下载程序的输入口,与专用下载线相连 接通过 PC 机的并行口可以下载二进制码或十六进制码文件到单片机的 ROM 中。 本电路板中 P3 口即是输入口又是输出口,当作为输入口时,应当把 J J6短路环去掉,这时 K K K K4 及 S1 才能正常工作。 ( 5)当 P3 口作为输入口时,首先应当把 S1 拨码开关开路,如果输出给数码管,将 J4 短路 J6 开路,如果用蜂鸣器,将 J6 短路 J4 开路。 蜂鸣器连接的是 P3口的 RXD 端,使用蜂鸣器时,将 J6 短路蜂鸣器才能正常工作。 ( 6) 40 芯插头( JP1)的各个插针与 AT89S51 的各管脚一一对应,可以通过40 芯插头扩展各种外围接 口芯片或接口板。 ( 7) 89S51 的 31 脚为访问外部程序存储器允许端,当用外部程序存储器时,31 脚应接地,如果访问内部程序存储器 31 脚应接 5V,即 31 脚为高电平,此电路板接高电平,使用内部 ROM。 AT89S51 (8 位微控制单片机,片内含 4K bytes 可系统编程的存储器 ) AT89S51是美国 ATMEL 公司生产的低功耗,高性能 CMOS 8 位单片机,片内含 4k bytes的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。 它集 Flash 程序存储器既可在线编程( ISP)也可用传统方法进行编程及通用 8 位微处理器于单片芯片中, ATMEL公司的功能强大,低价位 AT89S51 单片机可为您提供许多高性价比的应用场介,可 灵活应用于各种控制领域。 单片机内设有一个由反向放大器所构成的震荡电路, XTAL1 和 XTAL2 分别为振荡电路的输入端和输出端。 时钟电路可以由内部方式产生或外部方式产生。 在 14 XTAL1 和 XTAL2 引脚上外接定时元件,内部振荡电路就产生自激振荡。 定时元件通常采用石英晶体和电容组成的并联谐振电路。 晶体可以在 — 12MHz 之 间选择,电容值在 5PF— 30PF 之间选择,电容的大小可起频率微调作用。 外部方式的时钟电路中, XTAL1 接地, XTAL2 接外部振荡器。 对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于 12MHz 的方波信号。 本论文根据实际需要和简便,采用内部振荡方式。 MCS51 内部有一个可以构成振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是此放大器输入端和输出端。 这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。 MCS51 虽然有内部振荡电路,但要形成时钟,必须外接元件构成震荡 时钟电路。 外接晶体以及电容 C1 和 C2 构成并联谐振电路接在放大器的反馈回路中。 对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性,起振的快速性和温度的稳定性,晶振频率可在 之间任选,电容 C1 和 C2 的典型值在 20pF100pF 之间选择,考虑到本系统对于外接晶体频率稳定性要求不高,所以采取比较廉价的 陶瓷谐 振 器,根据调试电容选择 30pF。 外部振荡电路单片机必须在 AT89S51 的驱动下才能工作 .在单片机内部有一个时钟振荡电路 ,只需要外接一个 振荡源就能产生一定的时钟信号送到单片机内部的各个单元。 AT89S51 的管脚图如 32 所示。 15 图 32控制电路 复位电路设计 MCS51 单片机在 RESET 输入端出现高电平是实现复位和初始化。 在振荡器运行的情况下,要实现复位操作,必须使 RST 引脚至少保持两个机器周期( 24 个振荡器周期)的高电平。 CPU 在第二个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直到 RST 端电平变低。 复位期间不产生 ALE 及 PSEN 信号。 内部复位操作使堆栈指示器 SP为 07H,各端口都为 1( P0— P3口的内容均为 OFFH) ,特殊功能寄存器都复位为 0,但不影响 RAM 的状态。 当 RST 引脚返回低电平以后,CPU 从 0 地址开始执行程序。 MCS— 51 复位电路有两种:一种是加电自动复位电路,一种是开关复位电路。 加点复位电路在加电瞬间, RST 端的电位与 VCC 相同,随着 RC 电路充电电流的减少, RST 端的电位逐渐下降。 只要 RST 端保持 10ms 以上的高电平就能使 MCS— 51 单片机有效地复位。 复位电路中的 RC 参数通常由实验调整。 当振荡频率选用 6MHz 时, Cr 选 选 1k 便能可靠地实现加电自动复位。 若采用 RC 电路接通施密特电路的输 入端,施密特电路输出端接 MCS51 和外围电路的复位端,即可使系统可靠地同步复位。 16 本系统采用开关复位方式的复位电路单片机复位后的状态:单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC= 0000H,这表明程序从0000H 地址单元开始执行。 单片机冷启动后,片内 RAM 为随机值,运行中的复位操作不改变片内 RAM 区中的内容, 21 个特殊功能寄存器复位后的状态为确定值,见下表 31。 A= 00H,表明累加器已被清零; PSW= 00H,表明选寄存器 0 组为工作寄存器组; SP= 07H,表明堆栈指针指向片内 RAM 07H 字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到 08H 单元中; PoP3= FFH,表明已向各端口线写入 1,此时,各端口既可用于输入又可用于输;IP= 00000B,表明各个中断源处于低优先级; IE= 0 00000B,表明各个中断均被关断; 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。 51 单片机的复位是由 RESET 引脚来控制的,此引脚与高电平相接超过 24 个振荡周期后, 51 单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到 RESET 引脚 转为低电平后,才检查 EA 引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。