1、 1 单片机原理与应用 课程设计 设计题目 系 (院) 专 业 班 级 学生姓名 学 号 年年 月月 日日 2 摘要摘要 本次设计是一个采用单片机控制的数字秒表系统, 该系统使用 89s51 单片机 为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED 数 码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能 够实现五位 LED 显示,显示时间为 099 秒,计时精度为 0.01 秒,能正确地进 行计时,同时能记录一次时间,并在下一次计时后对上一次计时时间进行查询。 其中软件系统采用汇编语言编写程序,包括显示程序,按键扫描撑血,定时中断 服务,外部中断服务程
2、序,延时程序等。 一一,设计,设计要求要求 1,使用两位 LED 显示,显示时间是 0-99 秒 2,正常计数时,每秒自动加 1,超 99 秒,自动清零 3,一个开始按钮,一个复位按钮,一个暂停按钮; 4,按下暂停按钮后,显示不变 5,按下复位按钮后,显示 00 二,二, 方案设计方案设计 数字电子秒表具有显示直观、 读取方便、 精度高等优点, 在计时中广泛使用。 本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制 器,计时与显示电路和回零、启动和停表电路等。主控制器采用单片机 89S51, 显示电路采用共阴极 LED
3、 数码管显示计时时间。 本设计利用 89S51 单片机的定时器/计数器定时和记数的原理,使其能精确 计时。利用中断系统分别实现开始、暂停、清零功能。硬件电路基本原理图如下 控制开关 位驱动 六位数码管 8051单片机控 制器 3 要求各种功能的实现采用模块化、子程序化, 。按总体要求划分出各功能程 序模块,分别确定主程序,子程序及中断服务程序结构。主程序包括定时器、中 断、内存单元初始化,DISP 显示子程序包括显示初始化、送段位码,定时器中 断服务子程序 CONT 包括判 1S 到否、修改秒的单元、含 BCD 码转换,按键 0、 1、2 中断服务子程序包括实现启动、停止及清零。秒计数单元是
4、20H,50 毫秒 重复次数单元是 21H,秒计数个位、十位缓冲区是 30-31H;外部中断 1 作启动 中断,外部中断 0 作暂停中断。 三,硬件电路设计三,硬件电路设计 1,显示电路 对于数字显示电路,通常采用液晶显示或数码管显示。本设计的显示电路采 用 7 段数码管作为显示介质。 2,按键电路 本设计中有 4 个按键,分别实现开始、暂停、复位和查看功能。这些键可以 采用中断的方法,均采用低电平有效,具体电路连接图如下 4 开始 暂停 复位 查看 P3.3(INT1) P3.2(INT0) P1.1 P2.5 VCC 3,晶振电路 四,软件设计四,软件设计 1,主程序设计 5 开始 赋初始
5、值 数码管显示 复位键P1.1是否按下 是 查看键P2.5是否按下 否 否 查看键P2.5是否抬起 是 调用最终缓存区数 据进行显示 否 是 主程序流程图 主程序编写 MAIN: MOV TMOD,61H ;置 T0 方式 1 定时,T1 方式 2 计数 MOV TH0, #3CH ;T0 置初值 MOV TL0, #0B0H; MOV TH1, #0FFH ;T1 置初值 MOV TL1, #0FFH MOV SEC, #00H ;60s 计数单元置初值 MOV MSEC, #0AH ;置 50ms 循环次数初值 MOV SP, #3FH ;堆栈指针置初值 MOV 30H, 00H ;个位清 0 MOV 31H, 00H ;十位清 0 MOV IE, #8FH ;打开中断源 SETB TR1 ;启动定时器 1 6 CLR A ;累加器清 0显示程序部分 2,中断程序 外部中断0入口 停止定时器T0 一次存储 中断返回 中断程序流程图 在这里给出中断子程序(按键中断程序,其中按键 0、1、2 中断服务程序分 别对应功能是启动、暂停、复位。 ) KE0: SETB TR0 RETI KE1: CLR TR0 RETI KE2: MOV SEC,#00H MOV 30H,#00H MOV 31H,#00H RETI 3 显示程序 DISP: MOV R2, #02H