1、 课程设计说明书课程设计说明书 (2012 /2013 学年第 2 学期) 课程名称 : 单片机课程设计 题 目 : 99 秒马表课程设计 专业班级 : 10 级电气(4)班 学生姓名 : 学 号: 指导教师 : 设计周数 : 2 周 设计成绩 : 2013 年 07 月 11 日 目录目录 1:设计目的 1 2:设计的主要内容和要求 . 1 3:整体设计方案 . 1 4: 硬件软件设计 1 5 :系统仿真. 2 6:硬件调试图 . 2 7:仿真界面 3 8:protel 电路图 5 9.c 语言源程序 . 5 10:设计总结. 8 1 基于单片机的基于单片机的 99 秒马表设计秒马表设计 1
2、:设计目的设计目的 (1)通过单片机课程设计,熟练掌握 C 语言或汇编的编程方法,将理论联系到实践中, 提高动手能力和动脑能力。 (2)初步了解和掌握 PROTEUS 软件的操作方法 (3)完成控制系统的硬件设计,软件设计,仿真调试。 2:设计的主要内容和要求设计的主要内容和要求 设计并制作初一个以单片机为核心的计时控制系统: 确定总体的设计方案;设计键盘 输入电路;设计显示电路;合理分配地址 ,编写系统程序;利用 protel 设计硬件电 路原理图和 PCB 图;软硬件联机调试。 3:技术要求:开始时,显示“00” ,第 1 次按下按键后,开始定时。第 2 次按下按键后,计 时停止,第 3
3、次按下按键后,计时归零。所需器件有:1 个按键、2 个数码管。 3:整体设计方案整体设计方案 4: 硬件硬件软软件件设计设计 (1)按键:通过按键检测判断输入状态,去改变时间中断。 单 片 机 按 键 数 码 管 显 示 2 (2)数码管:定时 1S 中断,每过一秒数码管数值显示加一,满 99 秒自动清零。 (3)程序采用查询方式定时,运用定时器 0 工作方式 1 的定时控制设计,选择定时中 断时间为 50ms, 定时计数器初值为 3cbh。 将定时器定时时间扩大 20 倍达到 1 秒的时间间隔。 当第一次按键按下时,启动定时器 0,开始计时,没过一秒 a 加 1,讲 a 的十位和个位分离,
4、分别给数码管显示,当第二次按键按下后,停止中断,第三次按键按下后,数码管清零。 5 :系统仿真系统仿真 在 PROTEUS 的 ISIS 7.7SP2 软件环境下画出电路原理图,接下来就 是将设计的程序在 KEIL C51 U VISION2 开发集成环境上编译成机器 语言,进入 PROTEUS 的 ISIS,鼠标左键点击菜单“DEBUG”,选中 USE ROMOTE DEBUGER MONITOR”,便可实现 KEILC 与 PROTEUS 连接调 试。首先在 PROTEUS 中双击单片机 AT89C51,将 KEILC 下编程生成的 *.HEX 文件导入到 AT89C51 中, 可在 PR
5、OTEUS 中单击全速仿真运行按 钮, 进行现象的查看,能清楚观察到芯片上每一个引脚的点平变化, 红色代表高电平,蓝色代表低电平;如果现象不正确,则在 KEILC 中 单步调试程序,在 PROTEUS 观察现象,哪一步不正确则对该段的程 序进行修改,调试知道仿真完全成功为止。 6:硬件调试图硬件调试图 3 7:仿真界面仿真界面 4 5 8:protel 电路图电路图 9.c 语言源程序语言源程序 #include#include #define uchar unsigned char#define uchar unsigned char #define uint unsigned int#de
6、fine uint unsigned int sbit anjian=P10;sbit anjian=P10; /定义按键位定义按键位 ucuchar code table=har code table= 0x3f,0x06,0x5b,0x4f,0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x66,0x6d,0x7d,0x07, 0x7f,0x6f;0x7f,0x6f; /共阴极数码管共阴极数码管 0 0-9 9 编码表编码表 uint a,c,num=0;uint a,c,num=0; void time0() interrupt 1void time0() interrupt 1 c+;c+; 6 TH0=0x3