1、单片机技能+电子初级工程师认证培训设计报告题目:简易电子秒表设计姓 名: 学 号: 2072 系 别: 电子信息工程学院 班 级: 09 自动化 1 指导老师: 文丽 完成时间: 2012.05.17 华南理工大学广州学院电子信息工程学院分数:单片机课程设计报告1 绪论2 方案设计3 系统的硬件设计3.1 主控制器3.2 显示电路3.3 LCD1602 工作原理3.4 LCD1602 接口电路4 系统的软件设计4.1 主程序4.2 秒表流程图4.3 LCD1602 显示程序5 系统的测试与总结参考文献附录 1 原理图附录 2 源程序清单1 绪 论随着单片机技术的不断发展,单片机在日用电子产品中
2、的应用越来越广泛,而本文设计并制作了一款基于 AT89C51 的 LCD1602 显示的秒表,其电路简单,软硬件结构模块化,易于实现。2 方案设计1.1 系统设计要求(1)秒表计时最大值为 99 小时 99 分 99 秒(2)秒表由 LCD1602 显示屏显示,其中最高两位显示“小时”,中间显示“分”,低两位显示 “秒”。(3)秒表拥有计时、暂停/启动、清零功能。(4)设置三个功能键:键 1 开始计时,鍵 2 暂停/启动计时,键 3 清零计时。1.2 总体方案设计数字秒表系统主要完成对计时实时的显示,精度达到 1 秒,以及通过功能键可以使铛前计时暂停或清零。系统主要包括时钟电路、按键电路以及L
3、CD1602 显示屏显示电路。系统采用 LCD1602 显示屏,其中第 1 脚 : VSS 为 电 源 地 , 第 2 脚 : VDD 接 5V 电源 正 极 , 第 3 脚 : V0 为 液 晶 显 示 器 对 比 度 调 整 端 , 接 正 电 源 时 对 比 度 最 弱 ,接 地 电 源 时 对 比 度 最 高 ( 对 比 度 过 高 时 会 产 生 “鬼 影 ”, 使 用 时 可 以 通 过 一个 10K 的 电 位 器 调 整 对 比 度 ) 。 第 4 脚 : RS 为 寄 存 器 选 择 , 高 电 平 1 时 选择 数 据 寄 存 器 、 低 电 平 0 时 选 择 指 令 寄
4、 存 器 。 第 5 脚 : RW 为 读 写 信 号 线 , 高 电 平 (1)时 进 行 读 操 作 , 低 电 平 (0)时 进 行 写 操作 。 第 6 脚 : E(或 EN)端 为 使 能 (enable)端 。 第 7 14 脚 : D0 D7 为 8 位 双 向 数 据 端 。 第 15 16 脚 : 空 脚 或 背 灯 电 源 。15 脚 背 光 正 极 , 16 脚 背 光 负 极 。系 统 整 体 组 成 框 图 如 下 :3 系统的硬件设计3.1 主控制器AT89S52 是 一 种 低 功 耗 、 高 性 能 CMOS8 位 微 控 制 器 , 具 有 8K 在 系 统
5、可编 程 Flash 存 储 器 。 使 用 Atmel 公 司 高 密 度 非 易 失 性 存 储 器 技 术 制 造 , 与工 业 80C51 产 品 指 令 和 引 脚 完 全 兼 容 。 片 上 Flash 允 许 程 序 存 储 器 在 系 统 可编 程 , 亦 适 于 常 规 编 程 器 。 在 单 芯 片 上 , 拥 有 灵 巧 的 8 位 CPU 和 在 系 统 可编 程 Flash, 使 得 AT89S52 为 众 多 嵌 入 式 控 制 应 用 系 统 提 供 高 灵 活 、 超 有 效的 解 决 方 案 。 AT89S52 具 有 以 下 标 准 功 能 : 8k 字 节
6、 Flash, 256 字 节 RAM, 32 位 I/O 口 线 , 看 门 狗 定 时 器 , 2 个数 据 指 针 , 三 个 16 位 定 时 器 /计 数 器 , 一 个 6 向 量 2 级 中 断 结 构 , 全 双 工 串行 口 , 片 内 晶 振 及 时 钟 电 路 。 另 外 , AT89S52 可 降 至 0Hz 静 态 逻 辑 操 作 ,支 持 2 种 软 件 可 选 择 节 电 模 式 。 空 闲 模 式 下 , CPU 停 止 工 作 , 允 许 RAM、 定时 器 /计 数 器 、 串 口 、 中 断 继 续 工 作 。 掉 电 保 护 方 式 下 , RAM 内
7、容 被 保 存 , 振荡 器 被 冻 结 , 单 片 机 一 切 工 作 停 止 , 直 到 下 一 个 中 断 或 硬 件 复 位 为 止 。 8 位微 控 制 器 8K 字 节 在 系 统 可 编 程 Flash AT89S523.2 显示电路秒表显示采用 LCD1602 显示屏 3.3LCD1602 工作原理 LCD1620: 1602 液 晶 也 叫 1602 字 符 型 液 晶 它 是 一 种 专 门 用 来 显 示 字 母 、 数 字 、 符 号 的 点阵 型 液 晶 模 块 它 有 若 干 个 5X7 或 者 5X11 等 点 阵 字 符 位 组 成 , 每 个 点 阵 字 符
8、位 都 可 以 显示 一 个 字 符 。 每 位 之 间 有 一 个 点 距 的 间 隔 每 行 之 间 也 有 间 隔 起 到 了 字 符 间 距 和 行 间 距 的 作用 , 正 因 为 如 此 所 以 他 不 能 显 示 图 形 n1602LCD 是 指 显 示 的 内 容 为 16X2,即 可 以 显 示 两行 , 每 行 16 个 字 符 液 晶 模 块 ( 显 示 字 符 和 数 字 ) 。4 系统的软件设计4.1 主程序void main()uchar i;init(); TR1=0;TMOD=0X10; /*定时器弃置*/EA=1;ET1=1;TH1 = 0xD8;TL1 =
9、0XEF;TR1=1;if(led1=0)while(1)com(0x80+1);for(i=0;idioo(); /*停止,恢复函数*/diooo(); /*清零函数*/#define uchar unsigned char#define uint unsigned intsbit rw=P21;sbit en=P22;sbit rs=P20;sbit led1=P10;sbit led2=P11;sbit led3=P12;uchar counter=0; uchar count=0; int time=0; char num15=“wen li jie hao “;char num110
10、0=“00:00:00:00“;void delays(uint xms)uint h,m;for(h=xms;h0;h-)for(m=115;m0;m-);void delay(uint x)uchar i;while(x-)for(i=0;i120;i+);void com(uchar com)rs=0; /*读数据*/rw=0;P0=com;delay(5);en=1;delay(5);en=0;void dat(uchar dat)rs=1; /*写数据*/rw=0;P0=dat;delay(5);en=1;delay(5);en=0;void init()en=0;com(0x38); /*不检测忙信号*/com(0x0c); /*选择开及光标设置*/com(0x06); /*显示光标移动设置*/com(0x01); /*显示清屏*/ void main()uchar i;init(); TR1=0;TMOD=0X10; /*定时器弃置*/EA=1;ET1=1;TH1 = 0xD8;