




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课课 程程 设设 计计 课程名称 单片机课程设计 题目名称 电话键盘及拨号的模拟电话键盘及拨号的模拟 学生学院 材料与能源学院 专业班级 热能与动力工程 制冷方向 1001 学 号 3110007126 学生姓名 陈光谋 指导教师 王桂棠 2013 年 06 月 21 日 目录目录 1 概述概述 1 1 课程项目名称 1 2 设计任务及要求 2 系统设计方案系统设计方案 2 1 硬件介绍 3 电路设计电路设计 3 1 电路原理图 3 2 程序清单 4 Proteus 软件仿真软件仿真 4 1 系统仿真电路图 4 2 仿真结果分析 5 课程设计心得体会课程设计心得体会 6 参考文献参考文献 1 概述 概述 1 1 课程设计项目名称课程设计项目名称 电话拨号键电话拨号键 LCDLCD 显示显示 1 2 设计任务及要求设计任务及要求 1 实验要求 设计一个单片机监控的电话拨号键盘 将电话键盘中拨出的某一电话号码 显示在 LCD 显示屏上 电话键盘共有 12 个键 除了 0 9 10 个数字键外 还有 键 用于实现退格功能 即清除输入的号码 键用于清除显示屏上所有的数字显示 还要 求每按下一个键要发出声响 以表示按下该键 2 仿真实现说明 本实验在 Proteus 下按设计要求用 P1 口扩展了 12 个键盘 其中每个键盘所代表的含 义已在 Proteus 下用文本注出 在 LCD 显示中 第一行为设计者名 第二行开始显示所拨 的电话号码 最多为 16 位 因为 LCD 第二行功能显示 16 个字符 2 系统设计方案 系统设计方案 2 1 硬件介绍硬件介绍 1 1 AT89C51 简介 AT89C51 是一种带 4K 字节 FLASH 存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS 8 位微处理器 俗 称单片机 AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机 单片机的可擦除只读存储器可以反复擦除 1000 次 该器件采用 ATMEL 高密度非 易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由 于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一 种高效微控制器 AT89C2051 是它的一种精简版本 1 2 管脚说明 如图 1 为 AT89C51 引脚图 各引脚功能说明如下 图 1 AT89C51 引脚图 VCC 电源 GND 地 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱 动 8 个 TTL 逻辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 当访问外 部程序和数据存储器时 P0 口也被作为低 8 位地址 数据复用 在这种模式下 P0 具有内部上拉电阻 在 flash 编程时 P0 口也用来接收指令字节 在程序校 验时 输出指令字节 程序校验时 需要外部上拉电阻 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 P1 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻 的原因 将输出电流 IIL 此外 P1 0 和 P1 2 分别作定时器 计数器 2 的外 部计数输入 P1 0 T2 和时器 计数器 2 的触发输入 P1 1 T2EX P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻 的原因 将输出电流 IIL 在访问外部程序存储器或用 16 位地址读取外部数 据存储器 例如执行 MOVX DPTR 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉发送 1 在使用 8 位地址 如 MOVX RI 访问外部数 据存储器时 P2 口输出 P2 锁存器的内容 在 flash 编程和校验时 P2 口也接 收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 对 P3 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入口使用 作为输入使用 时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL P3 口亦作为 AT89C51 特殊功能 第二功能 使用 如表 1 所示 表 1 AT89C51 引脚号第二功能 P3 0 RXD 串行输入 P3 1 TXD 串行输出 P3 2 INT0 外部中断 0 P3 3 INT0 外部中断 0 P3 4 T0 定时器 0 外部输入 P3 5 T1 定时器 1 外部输入 P3 6WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 RST 复位输入 晶振工作时 RST 脚持续 2 个机器周期高电平将使单片机 复位 看门狗计时完成后 RST 脚输出 69 个晶振周期的高电平 特殊寄存器 AUXR 地址 8EH 上的 DISRTO 位可以使此功能无效 DISRTO 默认状态下 复位高 电平有效 ALE PROG 地址锁存控制信号 ALE 是访问外部程序存储器时 锁存低 8 位地址的输出脉冲 在 flash 编程时 此引脚 PROG 也用作编程输入脉冲 在一般情况下 ALE 以晶振六分之一的固定频率输出脉冲 可用来作为外部定 时器或时钟使用 然而 特别强调 在每次访问外部数据存储器时 ALE 脉冲 将会跳过 如果需要 通过将地址为 8EH 的 SFR 的第 0 位置 1 ALE 操作将 无效 这一位置 1 ALE 仅在执行 MOVX 或 MOVC 指令时有效 否则 ALE 将 被微弱拉高 这个 ALE 使能标志位 地址为 8EH 的 SFR 的第 0 位 的设置对微 控制器处于外部执行模式下无效 3 3 流程图 流程图 N Y Y N 开始 系统初始化 键盘扫描 设置按键是否按下 按键是否超过 10 位 读取按键 显示 3 电路设计 电路设计 3 1 电路原理图电路原理图 3 2 程序清单程序清单 include 包含单片机寄存器的头文件 include 包含 nop 函数定义的头文件 typedef unsigned int uint typedef unsigned char uchar uchar temp uchar key 16 sbit rs P2 0 LCD1602 数据 命令选择 sbit rw P2 1 LCD1602 读 写选择 sbit lcden P2 2 LCD1602 使能端 uchar idata table 18 ATD 86 uchar idata table 18 LCD1602 所显示的号码缓存数组 uchar idata table int 18 ATD 86 uchar idata receive 7 uchar idata erro 7 erronum uchar num 6 a 0 b 0 b 接收 a 发送 num 表示 table 第几位 define delayNOP nop nop nop nop 宏定义 方便写代码 延时子程序 void delay uchar x uchar i while x for i 0 i 4 0 xF0 if temp 1 p1 4 被拉低 key 0 else if temp 2 p1 5 被拉低 key 1 else if temp 4 p1 6 被拉低 key 2 else if temp 8 p1 7 被拉低 key 3 else key 16 P1 0 x0f 低四位输入 列为高电平 行为低电平 delay 50 temp P1 读 P1 口 temp temp temp temp 0 xf0 if temp 2 p1 1 被拉低 key key 0 else if temp 4 p1 2 被拉低 key key 4 else if temp 8 p1 3 被拉低 key key 8 else key 16 P1 0 x0f temp P1 if key 0 以下是判断按键 显示相应的号码 table num 1 num if key 1 table num 2 num if key 2 table num 3 num if key 3 table num 4 num if key 4 table num 5 num if key 5 table num 6 num if key 6 table num 7 num if key 7 table num 8 num if key 8 table num 9 num if key 9 table num 0 num if key 10 table num 0 删除上一位 lcd com oxo1 清除 LCD 的所有显示内容 if key 11 while table a 0 if num 17 tab a SBUF table a 显示输入数据 while TI 等特数据传送 TI 0 清除数据传送标志 a else 发送下一位字符 tab a SBUF erro a 显示输入数据 while TI 等特数据传送 TI 0 清除数据传送标志 a 串口初始化 void uart int TMOD 0 x20 工作方式 2 为常数自动重新装入的 8 位定时器 TH1 0 xf3 装定时器初值 TL1 0 xf3 TR1 1 开启定时器 1 SM0 0 串口方式 0 SM1 1 串口方式 1 REN 1 允许接收 ES 1 是开启串口中断 EA 1 开中断总开关 void main uart int lcd int while num 17 keyscan 键盘扫描 display LCD 显示 if receive 4 E 判断 PC 机返回的是否是 ATD ERR P2 0 xfe while tab a 0 SBUF tab a 串口发送 while TI 等特数据传送 TI 发送中断标志 TI 0 清除数据传送标志 a 下一个字符 a 0 receive 4 0 PC 机返回 ATD OK else if receive 4 0 判断 PC 机返回的是否是 ATD OK P2 0 xfd receive 4 0 if receive 5 K receive 6 R 判断 PC 机返回的是否是 ATD K 或 ATD R b 0 receive 5 0 PC 机返回 ATD OK receive 6 0 串口接收 void ser interrupt 4 串行口中断子函数 if RI 1 中断允许标志位 为 0 时允许 receive b SBUF b RI 0 4 Proteus 软件仿真软件仿真 4 1 系统仿真电路图系统仿真电路图 4 2 仿真结果分析仿真结果分析 根据仿真的结果 设计的电路符合实验的要求 5 课程设计心得体会 课程设计心得体会 通过这次课程设计 Keilc51 软件工作环境的熟悉以及掌握基本的操作 实现电路原理 图的绘制及电路仿真的实现 我还认识到理论与实际相结合的重要性 理论知识再丰富 没有实际的操作经验是不行的 这样还可以锻炼我们的实际动手操作能力 和独立思考能力 单片机知识在电子领域越来越重要了 在这次课程设计中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广西南宁市6月中考(三模)化学试题【附答案】
- 2025甘肃陇南市人才引进(第一批)高校宣介活动考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年合肥滨湖时光文化旅游投资有限公司招聘3人模拟试卷及答案详解(各地真题)
- 2025年长庆石化分公司春季招聘(5人)模拟试卷带答案详解
- 2025年橄榄果买卖合同
- 2025内蒙古巴彦淖尔市临河区第三人民医院招聘部分人员3人模拟试卷及答案详解(各地真题)
- 2025年滨州邹平怀远学校教师招聘25人考前自测高频考点模拟试题及一套参考答案详解
- 2025实验室气体供应合同
- 2025安徽六安市中医院招聘13人模拟试卷及答案详解(必刷)
- 2025甘肃兰州粮油集团有限公司招聘4人模拟试卷及完整答案详解1套
- 胸部肿瘤放疗讲课
- 【自考复习资料】05175税收筹划(重点知识汇总)
- 充电桩采购安装投标方案(技术方案)
- 高校教师职业道德概论练习试题
- 体育馆行业音视频系统建设与应用解决方案
- 低血压的护理和处理课件
- GB/T 19494.2-2023煤炭机械化采样第2部分:煤样的制备
- 2023年【汽车驾驶员(技师)】考试题及汽车驾驶员(技师)试题答案
- 我的家乡威海荣成宣传介绍课件
- 仪器维护、保养记录表
- 证监会行业分类结构与代码
评论
0/150
提交评论