1、无锡技师学院 电子秒表1摘 要随着电子技术的迅速发展,特别是随大规模集成电路产生而出现的微型计算机,给人类生活带来了根本性的改变。如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张他说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路
2、生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MC5系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。目前,可用于 MCS-51系列单片机开发的硬件越来越多,与其配套的各类开发系统、各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目的的各类应用系统。第一章 硬件选用与连接第一节 单片机的介绍1.1 单片机的组成无锡技师学院 电子秒表2根据型号不同,AT89C51 系列单片机内部结构在程序存储器,数据存储器及定时器的数量和种类上略有不同。基本型 AT89C51 系列单片机内
3、包括以下部分:微处理器(含运算器和控制器) 。微处理器作为 AT89C51 单片机的核心部分的微处理器是一个 8 位的高性能中央处理器(CPU) 。它的作用是读入并分析每条指令,根据各指令的功能控制单片机的各功能部件执行指定的运算或操作。它主要由运算器和控制器构成。;存储器;4KB 的程序存储器(ROM/EPROM/Flash,可外扩至 64KB) ;128B 的数据存储器(RAM,可在外扩 64KB) ;特殊功能寄存器 SFRI/O 口和其他功能单元4 个并行 I/O 口2 个 16 位定时/计数器1 个全双工异步串行口中断系统(5 个中断源,2 个优先级)1.1.1 内部存储器的结构AT8
4、9C51 单片机的片内存储器与一般微机的存储器的配置不同。一般微机的 ROM 和RAM 安排在同一空间的不同范围(称为普林斯顿结构) 。而 AT89C51 单片机的存储器在物理上设计成程序存储器和数据存储器两个独立的空间(称为哈佛结构) 。第二节 芯片介绍1.2 芯片 8279芯片 8279 采用单5V 电源供电,40 脚封装。DB0DB7:双向数据总线,用来传送 8279 与 CPU 之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输入线,8279 复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为 31,RESET 信号为高电平
5、有效。CS:片选输入线,低电平有效,单片机在 CS 端为低时可以对 8279 读/写操作无锡技师学院 电子秒表3A0:缓冲器低位地址,当 A0 为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入 8279的缓冲器芯片 8279 可按其功能分为:键盘功能块;显示功能块;控制功能块;与 CPU 接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工
6、作.:控制和定时寄存器:用于存贮来自 CPU 的编程命令,CPU 对 8279 编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使 A0=1,WR=0CS=0,并在 WR 上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能.:定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为 2-31 的前置定时器,分频系数可由程序预置,使内部频率为 100KHz,从而能给出 5.1ms 键盘扫描时间和 10.3ms 反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数.:扫描计数器:扫描计数器有两种工
7、作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚 SL0-SL3 输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3 输出 4 选 1 的译码信号,作为显示器和键盘的译码扫描.:键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 FIFO 传感器 RAM,FIFO/传感器 RAM 状态1.3 芯片 AT89C51芯片 AT89C51 采用单5V 电源供电,40 脚封装。DB0DB7:双向数据总线,用来传送 8279 与 CPU 之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输入线,AT
8、89C51 复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为 31,RESET 信号为高电平有效。CS:片选输入线,低电平有效,单片机在 CS 端为低时可以对 AT89C51 读/写操作A0:缓冲器低位地址,当 A0 为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入AT89C51 的缓冲器无锡技师学院 电子秒表4芯片 AT89C51 可按其功能分为:键盘功能块;
9、显示功能块;控制功能块;与 CPU 接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.:控制和定时寄存器:用于存贮来自 CPU 的编程命令,CPU 对 AT89C51 编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在 WR 上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能.:定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为 2-31 的前置定时器,分频系数可由程序预置,使内部频率为 100KHz,从而能给出 5.1ms 键盘扫描时间和 10
10、.3ms 反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数.:扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚 SL0-SL3 输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3 输出 4 选 1 的译码信号,作为显示器和键盘的译码扫描.无锡技师学院 电子秒表5第三节 硬件连接无锡技师学院 电子秒表6第二章 软件设计2.1 课题要求 设计电子秒表系统,利 用 实 验 机 上 提 供 的 8279 键 盘 电 路 , 数 码 显示 电 路 ,
11、 设 计 一 个 电 子 钟 。 电 子 钟 做 成 如 下 格 式 : XX XX XX 由 左 向 右 分 别 为 : 时 、 分 、 秒(1 单片机对按键的识别的过程处理 (2 单片机对正确识别的按键进行计数,计数满时,又从零开始计数; (3 单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。如何拆开十位和个位我们可以把所计得的数值对 10 求余,即可个位数字,对 10整除,即可得到十位数字了。 (4 通过查表方式,分别显示出个位和十位数字。 要求:1. 画出硬件接线图2. 画出流程图3. 编写程序无
12、锡技师学院 电子秒表72.2 流程图设计2.3 程序设计Z8279 EQU 0FF82HD8279 EQU 0FF80HLEDMOD EQU 00HLEDFEQ EQU 2FHLEDCLS EQU 0C1HLEDWR0 EQU 80HREADKB EQU 40HORG 0000HAJMP STARTORG 001BHAJMP INT_T1START:MOV SP,#60HLCALL INIT8279 无锡技师学院 电子秒表8MOV R3,#0H MOV R2,#0H MOV R1,#0H MOV R0,#0H MOV R6,#0FFH MOV TMOD,#10HMOV TL1,#00H MOV
13、 TH1,#0DCHLCALL DIS_mSSETB ET1SETB EA WAIT:LCALL GETKEY CJNE A,#0FFH,CONT MOV A,BCJNE A,#3CH,KEY_G LCALL CLEAR_TKEY_G: CJNE A,#3AH,KEY_D LCALL START_TKEY_D: CJNE A,#3DH,CONT LCALL STOP_TCONT: CJNE R6,#0FFH,WAIT LCALL DISPLAY MOV R6,#0 SJMP WAIT CLEAR_T: CLR TR1 MOV R3,#0H MOV R2,#0H MOV R1,#0H MOV R
14、0,#0H MOV R6,#0FFH LCALL DIS_mS RETSTART_T: SETB TR1RETSTOP_T: CLR TR1RETINIT8279: PUSH DPH PUSH DPL无锡技师学院 电子秒表9PUSH ACCLCALL DELAY MOV DPTR ,#Z8279MOV A,#LEDMOD MOVX DPTR,AMOV A,#LEDFEQ MOVX DPTR,AMOV A,#LEDCLS MOVX DPTR,APOP ACC POP DPLPOP DPHRET;读取键盘子程序;输入: 无 ; 输出: B: 读到的键码 A: GETKEY: PUSH DPH PU
15、SH DPLPUSH PSWMOV DPTR,#Z8279MOVX A,DPTR ANL A,#07H JNZ GETVAL MOV A,#0H SJMP NKBHITGETVAL: MOV A,#READKB MOVX DPTR,AMOV DPTR,#D8279MOVX A,DPTR ANL A,#3FH MOV DPTR,#KEYCODE MOVC A,A+DPTR MOV B,A MOV A,#0FFH NKBHIT: POP PSW POP DPLPOP DPHRET;显示字符子程序;输入: R4, 位置 R5,值DISLED: PUSH DPH PUSH DPLPUSH ACCMOV
16、 A,#LEDWR0 ADD A,R4 无锡技师学院 电子秒表10MOV DPTR,#Z8279MOVX DPTR,A MOV DPTR,#LEDSEG MOV A,R5MOVC A,A+DPTR MOV DPTR,#D8279MOVX DPTR,A POP ACC POP DPLPOP DPHRETDELAY: PUSH 0 PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 POP 0RETDIS_mS:MOV A,R0ANL A,#0FHMOV R5,AMOV R4,#0LCALL DISLED MOV A,R0SWAP
17、A ANL A,#0FHMOV R5,AMOV R4,#1LCALL DISLED RETINT_T1: PUSH DPH PUSH DPLPUSH ACCPUSH PSWCLR TR1MOV TL1,#00H MOV TH1,#0DCHSETB TR1无锡技师学院 电子秒表11MOV A,R0ADD A,#1 DA AMOV R0,ACJNE R0,#0,EXIT MOV R6,#0FFH CJNE R1,#59H,SECOND MOV R1,#99HCJNE R2,#59H,MINUTE MOV R2,#99HCJNE R3,#59H,HOUR MOV R3,#99HHOUR:MOV A,
18、R3ADD A,#1 DA AMOV R3,AMINUTE:MOV A,R2ADD A,#1 DA AMOV R2,ASECOND:MOV A,R1ADD A,#1 DA AMOV R1,AEXIT:POP PSW POP ACCPOP DPLPOP DPHRETI DISPLAY:MOV A,R3ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#6LCALL DISLED MOV A,R3SWAP AANL A,#0FHMOV R5,A无锡技师学院 电子秒表12MOV R4,#7LCALL DISLED MOV A,R2ANL A,#0FHADD A,#10HMOV R
19、5,AMOV R4,#4LCALL DISLED MOV A,R2SWAP AANL A,#0FHMOV R5,AMOV R4,#5LCALL DISLED MOV A,R1ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#2LCALL DISLED MOV A,R1SWAP AANL A,#0FHMOV R5,AMOV R4,#3LCALL DISLED RET;LED 显示常数表LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8
20、,9,A,B,C,D,E,FDB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,087H ;0.,1.,2.,3.,4.,5.,6.,7.DB 0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;8.,9.,A.,B.,C.,D.,E.,F.DB 6DH,02H,08H,00H,59H,0FH,76H ;U,-,_, ,I,O,P, ;键盘键码表KEYCODE:DB 30H,31H,32H,33H,34H,35H,36H,37H ;1,2,Q,W,A,S,+,ZDB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH ;3,4,E
21、,R,D,F,X,CEND无锡技师学院 电子秒表13第三章 调试与运行在这个程序调试与运行的过程中,我们小组也遇到了一些问题,但经过我们的讨论和老师的指导下我们最后获得了成功。第一次调试的时候电子表从 0 跳到 99 而且不会回到 0,然后我们把显示时的高位和分的低位删去,但仍然没有收到成效。之后我们删除了判断时=23 与结果时 =59 时,我们小组终于获得了胜利。无锡技师学院 电子秒表14第四章 课题总结单片机技术在各个领域得到越来越广泛的应用。目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用并已走人家庭,从电冰箱、微波炉到音响、汽车,到处都可见到单片机的踪影 。通过这 4 个星期的学习,我们对单片机有了一个接触。我们在老师的带领下步入了单片机这个深邃的领域,从一开始的认识了解单片机的元器件以及其功能,到认识一些基本的认识编写,再到最后自己能独立编写一些简单的程序。我们认识到想要学好单片机要不断的实践,不断的积累,在今后我们会利用更多的课余时间去钻研单片机,将它学以致用。参考文献张万忠,可编程控制器应用技术M 北京:化学工业出版社,2001