基于单片机数字式电子秒表电路设计-毕业论文设计内容摘要:
寄存器中读取编码数据之后,则 IRQ 中断信号将自动撤销。 如果上一个键的编码数据尚未取走,下一个键又被按下,则新的键码会自动进入 FIF0 由 8 个存储单元组成,故最多可依次暂存 8 个键码。 只有在读所有数据时, IRQ 中断请求信号才会撤销。 在中断服务程序中,CPU是用片外取数指令从 FIF0 中读取数据。 LED 数码显示电路的实现 由于 LED 数码显示器为多位,采用动态显示扫描显示方式,即逐基于单片机数字式电子秒表电路设计 13 个地循环地点亮各位显示器。 这样虽然在任一时刻只有 1 位显示器被点亮,但是由于人眼具有视觉残觉效益,看起来与全部显示器持续点亮的效果基本一样。 为了实现 8 个 LED 显示器的动态扫描显示,段码控制信号由 8279芯片的 outA0— outA outB0— outB3 显示器刷新寄存器输出。 而位控制信号由 8279 芯片的扫 描线 SL0、 SL SL2 经译码器 74LS138 输出 0Y 、1Y 、„ 7Y 共 8 个扫描线与 LED 显示器数码管共阴极相连。 8279 芯片数据口首地址为 FF80H。 8 位 LED 显示器的每位显示段码通过显示字符子程序以查看方式( MOVC A,@A+DPTR)进行确定和输出显示子程序( Display),显示缓冲区的首地址为 50H。 硬件电路的实现 总电路图 将微处理器 AT89C5接口芯片 8279,以及各个功能元件按要求进行线路连接,所得电路图见附录。 硬件电路的工作过程 首先,软件程序已固化在程序存储器 FLASH ROM 中。 开启直流电源 +5V,经 R2C3 组成的微分电路将微处理器 AT89C5 8279 接口芯片进行清零。 按 C 键,时钟清零;按 B 键,输入时钟初始值,并按北京时间要求把时、分依次通过 0— 9 和 0.— ;然后,按 A 键,时钟开始计时。 其次,电子秒表功能,按 D 键将时钟停止计时;通过按 C 键,时钟清零;按 A 键,启动电子秒表开始计时;按 D 键 ,电子秒表停止计基于单片机数字式电子秒表电路设计 14 时。 再次,为保证处理器 AT89C5接口芯片 8279 可靠工作,外加手动复位功能 SW1。 基于单片机数字式电子秒表电路设计 15 电子秒表主程序设计 主程序的设计构思 主程序包括三个部分:第一部分为初始化设置,包括设置堆栈指针、8279 初始化、定时器 /计数器初始化、显示缓冲区初始化、开中断、定时器 /计数器启动等。 定时器 /计数器初始化就是选择定时器 /寄存器 TMOD 的工作方式,它的高 4 位控制定时器 T1,低 4 位控制定时器 T0。 TMOD 中各位的定义如下: T1 T0 GATE CF1 M1 M0 GATE CF1 M1 M0 0 0 0 1 0 0 0 0 TMOD 其中: CF1: T/C 功能选择位,当 CF1=1 时为计数方式;当 CF1=0时为定时方式。 M1M0:T/C 工作方式定义位, M1M0=01 时为工作方式,16 位定时 /计数器。 TMOD=10H。 设置定时 /计数器初始值,定时 10ms,计数初值 X=DC00H( MOV TL1,00H MOV TH1,0DCH)。 显示缓冲区初始化,其显示缓冲区的首地址(最低位)为 50H。 共送入 8 个字符( MOV R0,50H MOV R2,08H)。 二部分主要是通过键扫描实现各种人机对话功能。 核心部分是键扫基于单片机数字式电子秒表电路设计 16 描子程序 GETKEY。 GETKEY 的主要功能是先通过读 8279 的状态字,判断是否有键按下,如有键按下则通过读 FIF0 RAM 命令,读得键值,通过查表得到相应的键号( 0~ F 号键相应的键号分别为 30H~ 3FH)。 GETKEY 子程序的出口条件是:如无键按下, A 累加器的值为 00H;如有键按下, A 累加器的值为 FFH, B 寄存器中的内容则为键号。 通过按键识别实现相应的人机对话功能。 各项人机对话功能如下: 按“ C”键,秒表清零功能:在主程序中将键号和 3CH 比较,如相等,则调用时钟清零子程序( CLEAR— T)。 该子程序功能是将显示缓冲区 50H~ 57H(分别存放十时、时、十分、分、十秒、秒、百毫秒、十毫秒的数值 )全部清零,显示全零。 按“ A”键,时钟启动计时功能:在主程序中将键盘扫描所得键号和 3AH 比较,如相等,则调用时钟启动计时子程序( START— T)。 该子程序的功能是将 TR1 置 1,启动定时器 /计数器 1 工作。 按“ D” 键,时钟停止计时功能:在主程序中将键盘扫描所得序号和 3DH 比较,如相等,则调用时钟停止计时子程序( STOP_T)。 该子程序的功能是将 TR1 置 0,关闭定时器 /计数器 1。 按“ B”键,设置时钟初值功能:在主程序中将键盘扫描所得键号和 3BH 比较,如相等,则调用设置时钟初值子程序( SET_T)。 该子程序的功能是通过按 8 个数字键,设置时钟各位(十时、时、十分、分、十秒、秒、百毫秒和十毫秒)的初值。 程序的设计思路是:先通过键扫描确认是否有键按下,然判断键值是否在 0~ 9 之间(即键号是否在30H~ 39H 之间),以排除非数字键。 后将键值( 0~ 9)依次送入显示缓冲区 50H~ 57HDANYUAN ,再调显示子程序实现显示。 其中调用了GETWORD 子程序。 该子程序的功能是在键扫描判断出有键按下后,再判断是否按的是 0~ 9 数字键(键号为 30H~ 39H)。 判断方法是将键基于单片机数字式电子秒表电路设计 17 号与 C6H 相加,如有进位,则表示非 0~ 9 数字键。 若在 8 次键入过程中任何一次输入了非数字键,则 8 位 LED 数码管全部显示为零,要求重新输入。 SET_T 子程序用一个循环程序实现上述 8 次键入的功能。 第三部分是实现电子秒表的显示。 主要调用显示子程序 DISP。 该显 示子程序与以前所述子程序不同之处是其中某些位要显示小数点。 按照课题要求,为区分时、分、秒、毫秒,要求时钟显示格式为.,即 8 位数据显示中每间隔一位要显示一个小数点。 为能显示小数点,本显示子程序中的 DISLED 子程序与以往有所不同,在以 LEDSEG 为起始地址的段码表中,增加了 16 个能显示小数点的段码值,如显示“ 3”的段码为 3FH,而显示“ 3.”的段码为 BFH。 这段码的变化在懂得 LED 数码管工作原理的基础上应不难理解。 当在 DISLED子程序的段码表中加入 16 个带小数点的段码后,为实现预定的显 示格式,只要在原显示子程序中加上一条 ADD A, 10H 指令即可。 这样,当要求显示数据为“ 3”时,原通过查表得到的段码应为 4FH,而现为CFH,即显示“ 3.”,从而使 0LED 数码管上显示的数据均带有小数点。 基于单片机数字式电子秒表电路设计 18 主程序的流程框图 图 主程序框图 开始 设置堆栈指针 8279 芯片初始化 定时器 /计数器 1 初始化 显示缓冲区初始化 开中断 键盘扫描 是否有键按下 键号送 A 累加器 判是否为 C 键 判是否为 A 键 判是否为 D 键 判是否为 B 键 显示 调设置时钟初值子程序 调停止计时子程序 调启动计时子程序 调时钟清零子程序 N N N N Y Y Y Y N Y 基于单片机数字式电子秒表电路设计 19 主程序的实现 ORG 0000H ;主程序起始地址 LJMP START ;转主程序 ORG 001BH ;定时器 T1 中断入口地 ;址 LJMP CTC_T1 ;转中断服务程序 ORG 0040H START: MOV SP,5FH ;设置堆栈指针初始化 ;程序 LCALL P8279 ; 8279 初始化 MOV TMOD,10H ;设定时器 /计数器 1 为 ;定时方式,工作方式 1 MOV TL1,@00H ;定时 10ms MOV TH1,0DCH MOV R0,50H ;时钟缓冲区清零 MOV R2,08H CLR A LOOP0: MOV @R0,A INC R0 DJNZ R2,LOOP0 SETB EA ;允许中断 SETB ET1 WAIT: LCALL GETKEY ;读键盘 CJNE A,0FFH,CONT ;判断是否有键输入 MOV A,B ;键号送 A CJNE A,3CH,KEY_A ;输入键是“ C”键,转 ; CLEAR_T LCALL CLEAR_T SJMP WAIT KEY_A: CJNE A,3AH,KEY_D ;输入键是“ A”键, ;转 START_T 基于单片机数字式电子秒表电路设计 20 LCALL START_T SJMP WAIT KEY_D: CJNE A,3DH,KEY_B ;输入键是“ D”键, ;转 STOP_T LCALL STOP_D SJMP WAIT KEY_B: CJNE A,3BH,CONT ;输入键是“ B”键, ;转 SET_T LCALL SET_T SJMP WAIT CONT: LCALL DISPLAY ;显示时间 SJMP WAIT ;循环 CLEAR_T: CLR TR1 ;时钟清零子程序,关 ;计数器 MOV R0,50H ;时钟缓冲区清零 MOV R2,08H CLR A LOOP: MOV @R0,A INC R0 DJNZ R2,LOOP LCALL DISPLAY ;显示 RET START_T: SETB TR1 ;电子钟开始计时子程序 RET STOP_T: CLR TR1 ;电子钟停止计时子程序 RET SET_T: CLR TR1 ;关计数器,设置时钟初 ;值子程 序 MOV R1,50H MOV R2,08H LOOP1: LCALL GETWORD。基于单片机数字式电子秒表电路设计-毕业论文设计
相关推荐
10 FPGA,CPLD 等高密度可编程逻辑器件( PLD)来取代传统锁存器 IC 的方案。 成本有所下降,但可扩展性仍旧较差。 因此,并行传输方式适用于显示单元数目确定的条屏。 故有以下几种控制方式: 一.以传统 8051 单片机为控制器的 LED 显示屏。 因受到单片机运算速度及通信速率的限制, LED 动态显示的刷新率不可能做得太高。 对显示效果和移动算法的处理也比较吃力
理 ,使其能精确计时。 利用中断系统使其能实现开始和复位的功能。 P2 口输出段码数据, 74HC573 用作驱动输出, 口接一个按钮开关,分别实现 开始 、暂停、清零 功能。 电路原理图设计最基本的要求是 正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。 图 3 秒表原理图 根据要求知道秒表设计主要实现的功能是计时和显示。 电源电路 电源电路是系统的最基本部分
读写忙信号 85 SRAM_nCS1 88 O SRAM1 片选 86 SRAM_nCS2 57 O SRAM2 片选 87 UPPER_BYTE 64 O 高字节选通 88 LOWER_BYTE 63 O 低字节选通 89 I2C_SCL 177 IO I2C 时钟 90 I2C_SDA 178 IO I2C 数据 91 SYS_CLK0 28 I 时钟输入 92 SYS_CLK2 153 I
B4,8H MOV DATA5,0F0H MOV LOCK5,0FEHFUN50:JB SHXING2,FUN51 MOV P0,DATA5 MOV P1,LOCK5 LCALL DL20 MOV A,DATA5 CPL A MOV P2,A MOV P1,LOCK5 LCALL DL20 MOV A,LOCK5 RLC A MOV LOCK5,A LJMP FUN50FUN51:LJMP
C4输出为“00”时,选通IC5的⑧脚;为“01”时,选定IC5的⑤脚。 调节RW2改变IC2的输出脉冲周期,可以改变开关的切换时间,用以选择每种花样出现时间的长短开关电路图如图32所示:图32 开关电图令Q1Q2=AB,74LS153数据选择器的功能表如图33所示图33 数据选择器功能表由表33可知,数据选择器的地址输入端A、B循环转变,输出端1Y循环选择四种码ZZZZ4输出
电压信号。 它有三种工作方式:不毕 业 设 计 正 文 第 11 页 哈尔滨职业技术学院印制 带缓冲工作方式,单缓冲工作方式,双缓冲工作方式。 该电路采用单缓冲模式,由电路图可知,由于 /XFER=0/CS=0/ ILE=1, DAC 寄存处于工作状态。 所以只要把 /WR1/WR2 置低电平时,写 p2 口,则该数字信号立即传送到输入寄存器,并直通至 DAC 寄存器,经过短暂的建立时间