




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息科学与工程学院信息科学与工程学院 电子设计实践电子设计实践 课程设计报告课程设计报告 完成日期 完成日期 2016 年年 06 月月 21 日日 学院名称 信息科学与工程 专 业 电子信息工程 班 级 13 级 1 班 设计题目 单片机系统 学生姓名 杨云森 指导教师 李星星 目目 录录 一 设计任务和性能指标 2 1 1 设计任务 2 1 2 性能指标 2 二 设计方案 2 三 系统硬件设计 4 3 1 单片机的最小系统 4 3 2 时钟电路 DS1302 5 3 3 电机驱动 直流电机或步进电机 需有调速 4 3 4 数字电压表 A D 转换 4 3 5 串口通信 4 四 系统软件设计 4 4 1 时钟电路 DS1302 设计 4 4 2 电机调速设计 4 4 3 数字电压表 A D 转换 设计 5 4 4 串口通信设计 5 五 调试及性能分析 5 5 1 调试步骤 5 5 2 性能分析 5 六 心得体会 6 参考文献 7 附录 程序清单 7 1 一 设计任务和性能指标一 设计任务和性能指标 1 1 设计任务 1 单片机最小系统 液晶显示 1602 和键盘 2 电子时钟 3 电机驱动 直流电机或步进电机 需有调速 4 波形发生器 D A 转换 或数字电压表 A D 转换 5 串口通信 可通过键盘动态设置波特率和通信格式 1 2 性能指标 1 日历 年 2 位 月 2 位 日 2 位 2 时钟 时 2 位 分 2 位 秒 2 位 3 能够驱动电机转动 速度可调 4 能将电阻阻值通过数字的方式显示出来 5 能够实现单片机与 PC 机的通信 二 二 设计方案设计方案 按照系统设计的功能的要求 初步确定设计系统由主控模块 时钟模块 显示模块 键扫描接口电路共四个模块组成 电路系统构成框图如图 1 1 所示 主控芯片使用 51 系列 AT89C52 单片机 采用高性能的静态 80C51 设计 由先进工艺制造 并带有非易失性 Flash 程序存储器 它是一种高性能 低功耗的 8 位 COMS 微处理芯片 市场应用最多 时钟芯片使用美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时钟芯 片 DS1302 采用 DS1302 作为主要计时芯片 可以做到计时准确 更重要的是 DS1302 可以在很小的电流的后备电源 2 5 5 5V 电源 在 2 5V 时耗电小于 300nA 下继续计时 并可编程选择多种充电电流对后备电源进行慢速充电 可以保证后备电源基本不耗电 采 用串行数据传输 与单片机硬件连接简单 如果使用时钟芯片 DS12887 将采用并行数据 传输 占用更多的硬件资源 因此为节省单片机端口 时钟芯片采用 DS1302 89C52 主控模块 键扫描电路 显示电路 时钟芯片 图 2 1 日历时钟显示系统构成框图 2 显示模块采用普通的共阴 LED 数码管 也可采用 LCD 显示 但考虑其造价较高浪费 资源 故使用 LED 显示 键盘采用线性连接 连接方式相对简单 使用查询法实现调整功 能 三 系统硬件设计三 系统硬件设计 3 1 单片机的最小系统 ATMEL 公司生产的 AT89C52 单片机它是硬件电路的核心部分 时钟电路晶振使用 11 0592MHz 复位电路采取按键复位方式 3 2 时钟电路 DS1302 1 DS1302 的性能 实时时钟 可对秒 分 时 日 周 月以及带闰年补偿的年进行计数 用于高速数据暂存的 31 8 位的 RAM 最少引脚的串行 I O 2 5 5 5V 的电压工作范围 2 5V 时耗电小于 300nA 用于时钟或 RAM 数据读 写的单字节或多字节 脉冲方式 数据传送方式 简单的 3 线接口 可选的慢速充电 至 Vcc1 的能力 DS1302 时钟芯片包括实时时钟 日历和 31 字节的静态 RAM 它经过一个简单的串行接 口与微处理器通信 实时时钟 日历提供秒 分 时 日 周 月和年等信息 对于小于 31 天的月和月末的日期自动进行调整 还包括闰年校正的功能 时钟的运行可以采用 24h 或带 AM 上午 PM 下午 的 12h 格式 采用三线接口与 CPU 进行同步通信 并可采用 突发方式一次传送多字节的时钟信号或 RAM 数据 DS1302 有主电源和后备电源双电源引脚 Vcc1 在单电源与电池供电的系统中提供低电源 并提供低功率的电池备份 Vcc2 在双电源 系统中提供主电源 在这种运用方式中 Vcc1 连接到备份电源 以便在没有主电源的情况 下能保存时间信息以及数据 DS1302 由较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 2 DS1302 数据操作原理 DS1302 在任何数据传送时必须先初始化 把 RST 脚置为高电平 然后把 8 位地址和命 令字装入移位寄存器 数据在 SCLK 的上升沿被输入 无论是读周期还是写周期 开始 8 位 指定 40 个寄存器中哪个被访问到 在开始 8 个时钟周期 把命令装入移位寄存器之后 另 外的时钟周期在读操作时输出数据 在写操作时写入数据 时钟脉冲在单字节方式下为 8 加 8 在多字节方式下为 8 加字节数 最大可达 248 个字节数 如果在传送过程中置 RST 脚为低电平 则会中止本次数据传送 并且 I O 引脚变为高 阻态 上电运行时 在 Vcc 2 5V 之前 RST 脚必须保持低电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 DS1302 的引脚及内部结构图如图 3 1 所示 表 3 1 为各引脚功能 3 输入移位 寄存器 实时时钟 命令与控制逻辑 震荡器与 分频器 31 8RAM 电源 控制 RST SCLK Vcc1 Vcc2 GND I O 图 3 1 DS1302 引脚及内部结构 表 3 1 DS1302 引脚功能 引脚号引脚名称功 能 1Vcc2主电源 2 3X1 X2振荡源 外接 32 768KHZ 晶振 4GND地线 5RST复位 片选线 6I O串行数据输入 输出端 双向 7SCLK串行数据输入端 8Vcc1后备电源 DS1302 与单片机的具体连接见附录 1 它的控制字如图 3 2 所示 控制字的最高有 效位 位 7 必须是逻辑 1 如果为 0 则不能把数据写到 DS1302 中 位 6 如果为 0 则表 1 2 3 4 5 6 7 8 VCC2 X1 X2 GND VCC1 SCLK I O RST 4 示存取日历时钟数据 为 1 表示存取 RAM 数据 位 5 1 A4 A0 指示操作单元的地址 最 低有效位 位 0 如果为 0 表示要进行写操作 为 1 表示要进行读操作 控制字节总是从 最低位开始输入 输出 76543210 1RAM CK A4A3A2A1A0RAM K 图 3 2 DS1302 的控制字 DS1302 共有 12 个寄存器 其中有 7 个寄存器与日历 时钟有关 存放的数据为 BCD 码形式 其日历 时间寄存器及其控制字见表 2 2 其中奇数为读操作 偶数为写操作 DS1302 的晶振选用 32 768KHz 3 3 电机调速的设计 利用 ULN2003A 驱动直流电机实现转动 再结合 51 单片机最小系统进行 PWM 调速 3 4 数字电压表的设计 数字电压表由单片机系统 AD 转换模块 lcd 显示模块构成 电位器作为输入 转动电 位器生成不同的模拟信号经过 AD 转换再液晶上就能显示不同的电压值 四 系统软件设计四 系统软件设计 4 1 电子时钟设计 因为使用了时钟芯片 DS1302 阳历只需从 DS1302 各寄存器中读出年 周 月 日 时 分 秒等数据 再经处理即可 在首次对 DS1302 进行操作之前 必须对它进行 初始化 然后从 DS1302 中读出数据 再经过处理后 送给显示缓冲单元 4 2 数字电压表设计数字电压表设计 由 5 个主要部分组成 A D 转换电路 单片机控制部分 LED 显示部分 系统的工作原 理是 控制系统采用 AT89S52 单片机 A D 转换采用 AD0809 利用 AD0809 进行电压测量和 将模拟信号转为数字信号 单片机将接受的信号进行处理后 将被测的电压值用四位的 LED 显示 4 3 电机调速设计 通过控制总中断使能 EA 控制电机的开关 同时使能对霍尔传感器输出的方波在单位时 间内脉冲个数的计数 其中定时器 T0 T1 分别对脉冲的宽度 霍尔元件输出的脉冲数对应 的 1 秒时间定时 对脉冲宽度的调整是通过改变高电平的定时长度 由变量 high 控制 变 5 量 change sub speed add speed 分别实现电机的转向 加速 减速 4 4 串口通信设计 在串行通信中 用 波特率 来描述数据的传输速率 所谓波特率 即每秒传送的二 进制位数 其单位为 bit s bits per second 它是衡量传输串行数据速度快慢的重要 指标 有时候也用 位周期 来表示传输速率 位周期是波特率的倒数 国际上规定了一 个标准波特率系列 110bit s 300bit s 600 bit s 1200 bit s 1800 bit s 2400 bit s 2400 bit s 9600 bit s 14 4k bit s 19 2 kbit s 28 8k bit s 等 如 9600 bit s 其意义是每 秒传送 9600 位数据 包含字符位和其他必须的位 大多数串行接口电路的接收波特率和 发送波特率都可以设置 但是接收方的波特率必须与发送方的发送波特率形同 五 调试及性能分析五 调试及性能分析 5 1 调试步骤调试步骤 调试分为硬件调试和软件调试 硬件调试主要是检测硬件电路是否有短路 断路 虚焊等 具体步骤及测试结果如下 1 检查电源与地线是否全部连接上 用万用表对照电路原理图测试各导线是否完全 连接 测试结果所有连接线都已连接好 2 检验 DS1302 和单片机的晶振是否起振 用示波器观察波形 测试结果波形都很 好 3 检查各芯片的功能是否正常 检测按键的导通情况 测试结果正常 软件调试主要是程序调试 将整个日历时钟显示程序按照实现功能分为各子模块进行 调试 首先都要在实验台上进行调试 具体步骤如下 1 显示程序调试 在单片机实验课中我们已经做过 LED 显示实验 所以这部分相对 简单 很快便调试无误了 我们设计的硬件显示部分与实验台虽然并不相同 但相差并不 多 经改动后在单路板上也调试通过了 2 时间调整程序的调试 这部分也先在实验台上调试过 此时显示程序已经无误 我们直接观察数码管的显示情况 首先在单片机的内存单元中置成了当时的时间 然后看 时间调整键是否好用 这部分在实验台上调试无误后可直接在电路板上使用 3 阴历子程序的调试 由于阴历程序非常长 我们在敲完程序后就检查了几便 其 调试方法是在存放阳历的内存单元中置成当天的日期 在程序执行后看转换的是否正确 阴历子程序主要是根据参考书编写的 在调试过程中发现在阳历为一月份时转换的不对 经我们在实验台上单步调试找到了错误的原因 阴历子程序调试成功 在电路板上直接使 用即可 4 阳历日期和时间的读取 实验台中并没有时钟芯片 这部分只能在电路板焊接完 成后才能进行调试 经我们查阅资料后 这部分在电路板上一次性通过 6 5 2 性能分析性能分析 单片机上电复位后 七个数码管显示为全零状态 这是因为还没有给 DS1302 初值 它 此时并没有开始振荡 所以从 DS1302 读取的值都是 0 按下控制键进入时间调整状态 此 时在我们调整哪一位时哪一位就会处于闪烁状态 按下加 1 键被调整的那一位就会加 1 而且没有按键抖动现象 在给 DS1302 写入初值后 它开始振荡 通过移位控制键 翻屏 键的作用可以查看显示的年 月 日 周 时 分 秒是否正确 在调试时我们写入的初 值是当时的时间 06 年 12 月 21 日 14 点 55 分 通过翻屏 可以看到数码管显示的很稳定 时间的显示也很准确 在翻到显示阴历那一屏是可以看到当时的阴历日期是十一月二日 阴历转换没有错误 当我们将日期置为 2006 年 9 月 1 日时 因为当天是阴历闰七月的初九 用于指示阴历闰月的发光二极管正常发光 由于课程设计时间比较短 我们没有大量的时间去观察时钟走的是否精确 在走过一 段时间后时间显示上可能会有一定的误差 我们可以再外接 GPS 采用 GPS 授时校正 提 高时间的精度 我们的日历可以把阳历任意置成某一天然后查看当时的阴历是几月初几 实现了阴历的自动转换 星期的自动转换也可以编写程序实现 这样既可以跳到指定日期 查看阴历 也可以查看当天是星期几了 所以我们的日历在性能上还有不完善的地方 在 以后的学习当中 我们将尽力把这些功能也完善好 六 心得体会六 心得体会 学习单片机没有捷径 别指望两三天就学会 要坚持不懈 重在积累 别崇拜高手 别相信天才 大部分人都不是天才 相信你也不是 单片机是一门应用性和实践性很强的学科 要多动手 多做实验 要学会参考别人的程序 减少自己琢磨的时间 迅速提高自己的编程能力 碰到问题可以借助网络来搜寻答案和对自己有帮助的问题 可以大大减少你的开 发时间 要多交一些朋友 多交流 技术是靠不断的积累和交流才会进步的 封闭自守 只会更加落后 希望大家多上网看看前辈的经验 可以少走很多弯路 最后 祝愿大家早日成为单片机 高手 本次课程设计虽然时间很短 但收获却很大 首先我们对单片机最小系统的设计有 了整体的把握 对程序编写的合理与规范性有了深刻的理解 建立起程序设计的一般思路 其强大的功能给我们提供了很大的帮助 通过原理图的设计过程 使我们认识到了这个软 件的重要性 我们会以此为契机 在日后的学习中会继续使用它 使其发挥更大的功能 经过一个学期的课程设计 我们得到了充分的锻炼 不仅对单片机的学习有了深刻的 理解 同时也增强了我们的毅力和处理突发问题的能力 学习是要付出一定的艰辛与努力 的 做事情一定要有不怕困难的吃苦精神 唯有坚持不懈 发扬团队协作才能够克服困难 取得最后的胜利 7 参考文献参考文献 1 徐维祥 刘旭敏 单片微型机原理及应用 大连 大连理工大学出版社 1996 2 李光飞 楼然苗 胡佳文 谢象佐 单片机课程设计与实例指导 北京 北京航空航天 大学出版社 2004 3 余永权 89 系列 FLASH 单片机原理及应用 北京 电子工业出版社 2002 4 李群芳 黄建 单片机微型计算机与接口技术 北京 电子工业出版社 2001 5 楼然苗 李光飞 51 系列单片机设计实例 北京 北京航空航天大学出版社 2003 附录附录 程序清单程序清单 4 1 电子时钟设计 include ds1302 h DS1302 写入和读取时分秒的地址命令 秒分时日月周年 最低位读写位 uchar code READ RTC ADDR 7 0 x81 0 x83 0 x85 0 x87 0 x89 0 x8b 0 x8d uchar code WRITE RTC ADDR 7 0 x80 0 x82 0 x84 0 x86 0 x88 0 x8a 0 x8c DS1302 时钟初始化 2013 年 1 月 1 日星期二 12 点 00 分 00 秒 存储顺序是秒分时日月周年 存储格式是用 BCD 码 uchar TIME 7 0 0 0 x12 0 x04 0 x01 0 x02 0 x16 函 数 名 Ds1302Write 函数功能 向 DS1302 命令 地址 数据 输 入 addr dat 输 出 无 void Ds1302Write uchar addr uchar dat uchar n RST 0 nop SCLK 0 先将 SCLK 置低电平 nop RST 1 然后将 RST CE 置高电平 8 nop for n 0 n 1 SCLK 1 数据在上升沿时 DS1302 读取数据 nop SCLK 0 nop for n 0 n 1 SCLK 1 数据在上升沿时 DS1302 读取数据 nop SCLK 0 nop RST 0 传送数据结束 nop 函 数 名 Ds1302Read 函数功能 读取一个地址的数据 输 入 addr 输 出 dat uchar Ds1302Read uchar addr uchar n dat dat1 RST 0 nop SCLK 0 先将 SCLK 置低电平 nop RST 1 然后将 RST CE 置高电平 nop for n 0 n 1 SCLK 1 数据在上升沿时 DS1302 读取数据 nop SCLK 0 DS1302 下降沿时 放置数据 nop nop for n 0 n 1 dat1 7 SCLK 1 nop SCLK 0 DS1302 下降沿时 放置数据 nop RST 0 nop 以下为 DS1302 复位的稳定时间 必须的 SCLK 1 nop DSIO 0 nop DSIO 1 nop return dat 函 数 名 Ds1302Init 函数功能 初始化 DS1302 输 入 无 输 出 无 void Ds1302Init uchar n Ds1302Write 0 x8E 0X00 禁止写保护 就是关闭写保护功能 for n 0 n 7 n 写入 7 个字节的时钟信号 分秒时日月周年 Ds1302Write WRITE RTC ADDR n TIME n 10 Ds1302Write 0 x8E 0 x80 打开写保护功能 函 数 名 Ds1302ReadTime 函数功能 读取时钟信息 输 入 无 输 出 无 void Ds1302ReadTime uchar n for n 0 n 7 n 读取 7 个字节的时钟信号 分秒时日月周年 TIME n Ds1302Read READ RTC ADDR n 4 4 串口通信设计 实验名 串口实验 使用的 IO P2 实验效果 将接收到发送回电脑上面 注意 include void UsartConfiguration 函数名 main 函数功能 主函数 输入 无 输出 无 11 void main UsartConfiguration while 1 函数名 UsartConfiguration 函数功能 设置串口 输入 无 输出 无 void UsartConfiguration SCON 0X50 设置为工作方式 1 TMOD 0X20 设置计数器工作方式 2 PCON 0X80 波特率加倍 TH1 0XF3 计数器初始值设置 注意波特率是 4800 的 TL1 0XF3 ES 1 打开接收中断 EA 1 打开总中断 TR1 1 打开计数器 函数名 Delay unsigned int i 函数功能 延时函数 输入 无 输出 无 void Usart interrupt 4 unsigned char receiveData receiveData SBUF 出去接收到的数据 RI 0 清除接收中断标志位 SBUF receiveData 将接收到的数据放入到发送寄存器 while TI 等待发送数据完成 TI 0 清除发送完成标志位 12 4 2 数字电压表设计 include reg51 h include XPT2046 h 定义使用的 IO define GPIO DIG P0 sbit LSA P2 2 sbit LSB P2 3 sbit LSC P2 4 定义全局变量 unsigned char code DIG CODE 17 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 0 1 2 3 4 5 6 7 8 9 A b C d E F 的显示码 uchar DisplayData 8 用来存放要显示的 8 位数的值 void DigDisplay void void main void uint temp count while 1 if count 50 count 0 temp Read AD Data 0 x94 AIN0 电位器 temp Read AD Data 0 xD4 AIN1 热敏电阻 temp Read AD Data 0 xA4 AIN2 光敏电阻 temp Read AD Data 0 xE4 AIN3 外部输入 count DisplayData 7 DIG CODE 0 DisplayData 6 DIG CODE 0 DisplayData 5 DIG CODE 0 DisplayData 4 DIG CODE 0 DisplayData 3 DIG CODE temp 10000 1000 DisplayData 2 DIG CODE temp 1000 100 DisplayData 1 DIG CODE temp 100 10 DisplayData 0 DIG CODE temp 10 1 DigDisplay 13 void DigDisplay void unsigned char i unsigned int j for i 0 i 8 i switch i 位选 选择点亮的数码管 case 0 LSA 0 LSB 0 LSC 0 break 显示第 0 位 case 1 LSA 1 LSB 0 LSC 0 break 显示第 1 位 case 2 LSA 0 LSB 1 LSC 0 break 显示第 2 位 case 3 LSA 1 LSB 1 LSC 0 break 显示第 3 位 case 4 LSA 0 LSB 0 LSC 1 break 显示第 4 位 case 5 LSA 1 LSB 0 LSC 1 break 显示第 5 位 case 6 LSA 0 LSB 1 LSC 1 break 显示第 6 位 case 7 LSA 1 LSB 1 LSC 1 break 显示第 7 位 GPIO DIG DisplayData i 发送段码 j 50 扫描间隔时间设定 while j GPIO DIG 0 x00 消隐 4 3 电机调速设计 include 定义使用的 IO 口 sbit PWM P1 0 定义一个全局变量 unsigned char t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区的水质监测与管理研究
- 工业废气处理与排放标准
- 工业机器人与自动化生产线
- 工业用水管理与废水处理
- 工业机器人与焊缝检测的完美结合
- 工业污染防治与环保策略
- 工业自动化系统架构优化与升级
- 工业自动化与智能制造系统
- 工业自动化设备的安全维护
- 工业管道系统的仿真模拟与分析
- 2024年河北特岗教师计划招聘真题
- 2025年全国I卷作文讲评
- 2024年中考二模 模拟卷 数学(江西卷)(参考答案及评分标准)
- 综合办公室考试题及答案
- 2025年中考押题预测卷:生物(福建卷01)(考试版)
- 劳务费合同协议书
- 人工智能提示词工程师试题含答案
- 2025-2030中国风能风电行业市场深度调研及竞争格局与投资前景研究报告
- 人力资源管理2025年考试试卷及答案
- 安徽省合肥市庐江县2023-2024学年七年级下学期6月期末数学试题
- 2025年氯硝西泮项目市场调查研究报告
评论
0/150
提交评论