智能时钟控制课程设计-基于单片机的智能时钟控制系统设计内容摘要:

④ SFR 特殊功能寄存器。 功能见表 23; 表 23 特殊功能寄存器 名 称 功 能 地 址 名 称 功 能 地 址 ACC 累加器 0E0H IE 中断允许 0A8H B 乘法寄存器 0F0H TMOD 定时计数器方式 89H PSW 程序状态字 0D0H TCON 定时计数器控制 88H SP 堆栈指针 81H TH0 T0高字节 8CH DPH 数据指针高字节 83H TL0 T0低字节 8AH DPL 数据指针低字节 82H TH1 T1高字节 8DH P0 8位并行口 0 80H TL1 T1低 字节 8BH P1 8位并行口 1 90H SCON 串口控制字 98H P2 8位并行口 2 0A0H SBUF 串口数据缓冲 99H P3 8位并行口 3 0B0H PCON 电源控制 87H IP 中断优先 0B8H AT89C51 单片机的串口 AT89C51 单片机有一个全双工的串行数据接口,可以将单字节的 8 位数据,一位一位地串行发送或接收。 在单片机中这项功能是由接收数据引脚 RXD 和发送数据引脚TXD 来实现的。 SBUF 是收发共用的数 据缓冲器(地址为 99H),收发使用不同的读写指令来区分。 该串口具有不同的工作方式和传输速率等,还能产生发送或接收中断,这些都可以通过串口控制寄存器 SCON 设定或根据其值来判断,方法见表 24; 表 24 串口控制寄存器 SCON 位 名 称 功 能 用 法 0 RI 接收中断标志 产生中断时为 1 1 TI 发送中断标志 产生中断时为 1 2 RB8 方式 2,3时收到的第 9位数据 3 TB8 方式 2,3时发送的第 9位数据 4 REN 接收允许 软件置 1 5 SM2 方式 2,3时的多机通信协议允许 6 SM1 方式选择 见表 25 7 SM0 表 25 串口工作方式选择 方 式 M1 M0 功 能 0 0 0 同步移位寄存器方式 1 0 1 8位波特率可变 2 1 0 9位波特率可变,波特率为 f/64(或 32) 3 1 1 9位波特率可变 AT89C51 单片机的中断 AT89C51 有五个中断源,两个外部中断( IE0 和 IE1),两个定时 /计数器中断( TF0和 TF1),一个 串口中断( RI 和 TI 合为一个中断源)。 前四个中断源的中断标志位在TCON 的相应位中,串口的中断标志位在 SCON 中。 各中断源均可通过中断允许寄存器IF单独允许或禁止, IF 可按位寻址设定,各位的意义见表 26: 表 26 中断允许寄存器 IF 位 名 称 功 能 用 法 0 EX0 外部 INT0中断允许 1:允许中断 0:禁止中断 1 ET0 定时器 0中断允许 2 EX1 外部 INT1中断允许 3 ET1 定时器 1中断允许 4 ES 串口中断允许 5 ET2 定时器 2中断允许 6 — 保留位 7 EA 总中断允许 0:禁止所有的中断 各中断源可以有不同的优先级别,优先级别由中断优先级寄存器 IP 确定,见表27: 表 27 中断优先级寄存器 IP 位 名 称 功 能 用 法 0 PX0 外部 INT0中断优先级 1:中断优先 1 PT0 定时器 0中断优先级 2 PX1 外部 INT1中断优先级 3 PT1 定时器 1中断优先级 4 PS 串口中断优先级 5 PT2 定时器 2中断优先级 中断产生后即转入相应的中断服务 子程序处理中断。 各中断服务子程序的入口地址如表 28 所列: 表 28 中断服务子程序入口地址 中断源 入口地址 默认的优先顺序 外部 INT0中断 0003H 依 次 递 减 定时器 0中断 000BH 外部 INT1中断 0013H 定时器 1中断 001BH 串口中断 0023H 定时器 2中断 002BH AT89C51 单片机定时 /计数器 AT89C51 有两个 16 位定时 /计数器 T0和 T1,它们的工作方式由特殊功能寄存器TMOD 各位确定,见表 29。 运行由 TCON 的部分相关 位控制,见表 211。 表 29 TMOD控制字 位 名 称 功 能 用 法 0 M0 T0方式选择 见表 210 1 M1 2 C/T T0定时 /计数选择 0。 定时, 1:计数 3 GATE T0门控位 GATE=1 时,计数受外部引脚 控制,=1时才能计数 4 M0 T1方式选择 见表 210 5 M1 6 C/T T1定时 /计数选择 0。 定时, 1:计数 7 GATE T1门控位 GATE=1 时,计数受外部引脚 控制,=1时才能计数 表 210 定时 /计数器 T0和 T1工作方式选择 方 式 M1 M2 功 能 0 0 0 由 TH高 8位和 TL低 5位组成的 13位定时 /计数器 1 0 1 16位定时 /计数器 2 1 0 自动重载 8位定时 /计数器, TL 为计数器, TH为计数常数 3 1 1 8位定时 /计数器(仅用于 T0) 表 211 TCON控制字 位 名 称 功 能 用 法 0 IT0 中断 0方式选择 0:电平触发, 1:边沿触发 1 IE0 中断标志 中断置 1 2 IT1 中断 1方式选择 0:电平触发, 1:边沿触发 3 IE1 中断标志 中断置 1 4 TR0 T0运行 1:启动, 0:停止 5 TF0 T0溢出标志 溢出置 1请求中断服务,中断响应后硬 件自动清零 6 TR1 T1运行 1:启动, 0:停止 7 TF1 T1溢出标志 溢出置 1请求中断服务,中断响应后硬件自动清零 复位电路设计 如图 24所示为复位电路原理图,复位时单片机的初始化操作,其主要功能是把PC初始化为 0000H,使单片机从 0000H 单元开始执行程序,并使其它功能单元处于一个确定 的初始状态。 本复位电路采用的是按键复位,它是通过复位端经电阻与 VCC电源接通而实现的,它兼具上电复位功能。 因本系统的晶振的频率为 12MHZ,所以,位信号持续时间应当超过 2us 才能完成复位操作。 [5] 图 24 复位电路原理图 键盘电路设计 如图 25所示为键盘电路原理图,本系统采用的是独立式键盘结构,每个按键单独占用一根 I/O 口线,每个按键的工作不会影响其它 I/O 口线的状态。 它软件是采用查询式结构,首先逐位查询每根 I/O 口线的输入状态,如某一根 I/O 口线输入为低电平,则可 确认该 I/O 口线所对应的按键已按下,然后,再转向该键的功能处理程序。 图 25 键盘电路原理图 按键使用方法:( 1)长按 T0 键进入调分状态:分单元闪烁,按 T0 键加 1,按T1键减 1。 再长按 T0键进入〈小〉时调整状态,时单元闪烁,加减调整同调分相同。 再长按 T0 键退出时间调整状态,时钟从 0s 开始计时。 ( 2)在正常时钟状态下,按下T1键进行入跑表状态,按 T2 键暂停,再按 T2 键跑表清 0。 再按 T2键跑表又启动,按 T1 键退出跑表回到时钟状态。 ( 3)按 T3 键进入设定闹时状态,显示式样为 00:00: — ,其中高 2 位代 表时,低 2 位代表分,可进行分设定,按 T2 键,分加 1;按T0 键,分减 1。 再按 T3 键进入时调整状态,显示式样为 00: 00: — ,按 T2 键,时加 1;按 T0键,时减 1。 按 T1键,闹铃有效,显示式样变为 00: 00: — 0;再按 T1键,闹铃无效,显示式样又变成为 00: 00: —。 再按 T3 键,调整闹钟时间结束,恢复正常时间的显示。 在闹铃时可按一下 T3 键停闹,不按则闹铃 1 分钟。 显示模块设计 系统采用动态显示方式,用 P0 口来控制 LED 数码管的段控线,而用 P2 口来控制其位控线。 动态显示通常都是采用动态扫描的方式进行显示, 即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。 图 26中 9012 作为位驱动器,而 74LS244 在电路中起驱动段码的功能, 8 个 510 欧姆电阻则起限流作用。 RXDC 11106R410k串口工作指示灯U7M AX 23 213811101345261291471516R 1I NR 2I NT 1I NT 2I NC+C 1C 2+C 2V+VR 1O U TR 2O U TT 1O U TT 2O U TGNDVCCD4LEDC 10106C6106D B912345 678912345 6789C9106D5LEDVC CT X DR310k串口通讯 图 26 显示原理图 数据通信模块 由于 MAX232为半双工状态 ,所以只采用一对差分信号线。 A端和 B端分别为接收和发送的差分 信号端 ,当 A引脚的电平高于 B时发送的数据为 1,当 A引脚的电平低于 B时发送的数据为 0,因此与单片机的联接非常简单。 同 时 A和 B 端接匹配电阻为 100Ω。 由于 PC机只配有 RS232接口 ,若实现 RS232接口与 8051 单片机的通信 ,必须使用 232 /485接口卡 ,接口卡采用九芯联接线 ,分别与 PC机并通过 MAX232与 8051单片机相联 ,接口卡的主要目的是将 RS232电平转换为 TTL电平 ,接口卡可控 制多台单片机 , PC机和单片机串行通信数据采集系统接口电路如图所示。 单片机芯用AT89C51 串口通信电路 系统主程序设计 本设计中的计时采用 定时器 T0中断完成,秒表使用定时器 T1 中断完成。 主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序 系统主程序如下: DISPFIRST EQU 30H ;显示首址存放单元 BELL EQU ;蜂鸣器 CONBS EQU 2FH ;存放报时次数 *************************中断入口程序 ***************************** ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号 START 执行 ORG 0003H ;外中断 0 中断程序入口 RETI ;外中断 0 中断返回 ORG 000BH ;定时器 T0 中断程序入口 LJMP INTT0 ;跳至 INTT0 执行 ORG 0013H ;外中断 1 中断程序入口 RETI ;外中断 1 中断返回 ORG 001BH ;定时器 T1 中断程序入口 LJMP INTT1 ;跳至 INTT1 执行 ORG 0023H ; 串行中断程序入口地址 RETI ;串行中断程序返回 *************************主程序开始 ******************************* START: LCALL ST ;上电显示 MOV R0,00H ;清 00H~H 内存单元 MOV R7,80H CLEARDISP: MOV @R0,00H INC R0 DJNZ R7,CLEARDISP MOV 20H,00H ;清 20H(标志用) MOV 7AH,0AH ;放入“熄灭符”数据 MOV TMOD,11H ;设 T0、 T1 为 16 位定时器 MOV TL0,0B0H ; 50ms 定时初值( T0 计时用) MOV TH0,3CH ; 50ms 定时初值 MOV TL1, 0B0H ; 50ms 定时初值( T1 闪烁定时用) MOV TH1,3CH ; 50ms 定时初值 SETB EA ;总中断开放 SETB ET0 ;允许 T0 中断 SETB TR0 ;开启 T0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。