已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏 州 大 学 实 验 报 告 院 系 年级专业 姓名 学号 课程名称 成绩 指导教师 同组实验者 实验日期 实验名称 数码管 LED 实验 一 实验目的 理解 8 段数码管的基本原理 理解 8 段数码管的显示和编程方法 理解 4 连排共阴极 8 段数码管 LG5641AH 与 MCU 的接线图 二 实验内容 理解 8 段数码管原理 运行与理解各子程序 编制一个 4 连排 8 段数码管程序 MCU 的 PTA7 PTA4 接各 LED 的位选线 自左到右 PTB7 PTB0 接 LED 的数据线 hgfedcba 在 4 连排 8 段数码管显示 MCU 复位后的开始到现在的运行时间 由于只有四个数码管 所以 只显示 MCU 运行到目前为止的分钟和秒 当计时达到一个小时 就重新从 00 00 开始计 时 另外 也可以通过 PC 方的串口通信程序 指定计时的开始值 三 实验过程 一 原理图 二 接线图 图 8 2 数码管外形 a g d f ec b h 图 8 1 数码管 a 共阴极 GND abc def gdp b 共阳极 Vcc abc def gdp 图 8 3 MCU 与 4 连排 8 段数码管的连接 a g d f ec b h a g d f ec b h a g d f ec b h a g d f ec b h abfCS0CS1 CS2 cdeghCS3 123456 7891011 12 PTC3 PTB6 PTB2 PTB7 PTB3 PTB4 1K 1K1K 1K PTB1 PTC2 PTC1 PTB5 PTB0 PTC0 三 基本原理 8 段数码管一般由 8 个发光二极管 Llight emitting diode LED 组成 每一个位段就 是一个发光二极管 一个 8 段数码管分别由 a b c d e f g 位段 外加上一个小数点 的位段 h 或记为 dp 组成 根据公共端所接电平的高低 可分为共阳极和共阴极两种 有 时数码管不需要小数点 只有 7 个位段 称 7 段数码管 共阴极 8 段数码管的信号端高电平 有效 只要在各个位段上加上相应的信号即可使相应的位段发光 比如 要使 a 段发光 则 在 a 段加上高电平即可 共阳极的 8 段数码管则相反 在相应的位段加上低电平即可使该位 段发光 四 编程 一 流程图 二 所用寄存器名称及其各个位 程序中没有使用与 LED 显示相关的控制和状态寄存器 仅仅使用了通用 I O 口 A 口和 B 口 三 主要代码段 1 汇编方式 数码管 LED 显示的主程序部分代码 MainInit 复位后程序从此开始执行 系统初始化 SEI 关中断 1 堆栈初始化为 RAM 最高端 LDHX RAMEndAddr HX RAMEndAddr TXS HX 1 SP 图 8 4 数码管 LED 显示流程图 及其中断子程序 开始 SCI 初始化 子程序 头文件 和声明 1 人工复位 结束 开放 SCI 接收中断 定时器 1 溢出中断 开放总中断 等待定时器溢出中断 事件的发生 开始 结束 定时器初始 化子程序 计时值的秒加 1 秒达到 60 则清零 分钟值加 1 分钟达到 60 则清零 等待 SCI 接收中断 事件的发生 开始 结束 把当前计时值改变为 接收到的计时初始值 取得计时初始值 2 系统初始化 JSR MCUInit 初学时跳过此处 3 串行口初始化 JSR SCIInit 4 定时器 1 初始化 JSR Timer1Init 调定时器 1 初始化子程序 BSET 5 SCC2 设置接收中断允许 CLI 开中断 LED 口初始化 LDA 0 xff STA LEDdata D 数据口为输出到 LED STA LEDcs D 位选口为输出到 LED 给 Time 0 2 时分秒 赋初值 0 0 0 多一个 0 1 即可 LDA 0 STA Time STA Time 1 STA Time 2 程序总循环入口 MainLoop LEDbuf 0 3 中放入要显示的数字 分 LDA Time 1 CLRH LDX 10 DIV STA LEDbuf PSHH PULA STA LEDbuf 1 秒 LDA Time 2 CLRH LDX 10 DIV STA LEDbuf 2 PSHH PULA STA LEDbuf 3 在 4 位共阴极 LED 上显示 LEDbuf 中的 4 个数据 只允许 0 9 MOV 11111110 I1 初始位选信号 共阴极情况 MOV 4 I2 显示个数 AIS 1 LDA 4 STA 1 SP LDHX LEDbuf LEDShow PSHH 保护数据地址 PSHX LDX X 数据 LDA I1 位选信号 JSR LEDShow1 显示一个数据 LDA I1 变动位选信号 SEC ROLA STA I1 延时 LDHX 10 JSR Delay ms PULX 恢复数据地址 PULH AIX 1 指向下一个数据 DBNZ 1 SP LEDShow AIS 1 JMP MainLoop 数码管 LED 显示的中断子程序部分代码 Timer1Int 定时器 1 溢出中断子程序 功能 给内存单元 Time 0 2 时分秒 赋值 入口 无 出口 无 Timer1Int SEI 关总中断 PSHH 保护 H INC Time 2 秒数加 1 LDA Time 2 CMP 60 BNE Timer1Int 1 秒数未增加到 60 转 LDA 0 秒数增加到 60 清 0 STA Time 2 INC Time 1 分钟数加 1 LDA Time 1 CMP 60 BNE Timer1Int 1 分钟数未增加到 60 转 LDA 0 分钟数增加到 60 清 0 STA Time 1 INC Time 小时数加 1 LDA Time CMP 24 BNE Timer1Int 1 小时数未增加到 24 转 LDA 0 小时数增加到 24 清 0 STA Time Timer1Int 1 LDA T1SC BCLR TOFBit T1SC 清除定时器溢出标志位 PULH 恢复 H CLI 开总中断 RTI SCIRecINT SCI 接收中断子程序 功能 接收 3 字节基准时分秒放入内存单元 Time 0 2 入口 无 出口 Time 0 2 SCIRecINT SEI 关总中断 PSHH 保护 H LDA 03 LDHX Time JSR SCIReN 接收 3 字节数据 PULH 恢复 H CLI 开总中断 RTI 中断返回 2 C 语言方式 数码管 LED 显示的主程序部分代码 主函数 void main INT8U i j DisMCUInt 禁止总中断 MCUInit 芯片初始化 SCIInit 串行口初始化 Timer1Init 定时器初始化 EnSCIReInt 开放 SCI 接收中断 EnT1OverflowInt 开放 Timer1 溢出中断 T1SC 允许定时器 1 计数 EnMCUInt 开放总中断 LEDdata D 0 xff 数据口为输出 LEDcs D 0 xff 位选口为输出 给时分秒赋值初始化 time 0 0 时 time 1 0 分 time 2 0 秒 while 1 LED 显示分和秒 LEDShowNum 0 time 1 10 for j 0 j 250 j 延时 LEDShowNum 1 time 1 10 for j 0 j 250 j 延时 LEDShowNum 2 time 2 10 for j 0 j 250 j 延时 LEDShowNum 3 time 2 10 for j 0 j 250 j 延时 数码管 LED 显示的中断程序部分代码 pragma interrupt handler isrSCIRe void isrSCIRe void DisMCUInt 禁止总中断 SCIReN 3 time 接收时分秒 3 个字节的数据 EnMCUInt 开放总中断 pragma interrupt handler isrTimer1 void isrTimer1 void DisMCUInt time 2 秒加 1 if time 2 60 goto exit 秒未增加到 60 转 exit time 2 0 秒增加到 60 清 0 分加 1 time 1 if time 1 60 goto exit 分未增加到 60 转 exit time 1 0 分增加到 60 清 0 时加 1 time 0 if time 0 24 goto exit 时未增加到 24 转 exit time 0 0 时增加到 24 清 0 exit T1SC 清除定时器溢出标志位 EnMCUInt 五 实验问答 根据实验指导书所列举的问题 1 驱动 LED 数码管有哪些方法 答 用单片机驱动 LED 数码管有很多方法 按显示方式可分静态显示和动态 扫描 显示 按译 码方式可分硬件译码和软件译码 静态显示就是显示驱动电路具有输出锁存功能 单片机将所要显示的 数据送出后就不再管 直到下一次显示数据需要更新时再传送一次新数据 动态显示需要 CPU 时刻对显 示器件进行数据刷新 显示数据有闪烁感 占用的 CPU 时间多 2 LED 静态显示和动态显示方式各有什么优缺点 答 静态显示就是显示驱动电路具有输出锁存功能 单片机将所要显示的数据送出后就不再管 直 到下一次显示数据需要更新时再传送一次新数据 静态显示数据稳定 占用很少的 CPU 时间 动态显示 需要 CPU 时刻对显示器件进行数据刷新 显示数据有闪烁感 占用的 CPU 时间多 这两种显示方式各 有利弊 静态显示虽然数据稳定 占用很少的 CPU 时间 但每个显示单元都需要单独的显示驱动电路 使用的硬件较多 动态显示虽然有闪烁感 占用的 CPU 时间多 但使用的硬件少 能节省线路板空间 3 在本自编程序中 让第二个数码管的小数点仿照电子时钟 1 秒钟闪烁一下 只要改一处 能行吗 答 可以 只要在定时器的中断处理程序中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泉州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及1套参考答案详解
- 2026年蚌埠市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有完整答案详解
- 呼伦贝尔市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解一套
- 台北县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(培优)
- 凉山州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(名师系列)
- 宁德市 农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(基础题)
- 2026年阳江市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(基础+提升)
- 省属虚拟市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(模拟题)
- 2026年福州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(模拟题)
- 云南省农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(夺分金卷)
- 儿童青少年行为和情绪障碍的护理
- DB45T 2178-2020 甘蔗产量现场测定操作规程
- 实验设计DOE培训
- 第9课-秦统一中国【课件】(共30张课件)
- 智算中心发展创新指南
- 成都中医药大学《诊断学基本技能训练(一)》2021-2022学年第一学期期末试卷
- 2025年九省联考新高考 英语试卷(含答案解析)
- 数据分包灵活传(教学课件)-七年级信息科技全一册同步教学(人教版2024)
- 河道清淤疏浚投标方案(技术方案)
- 自考美学章节练习题
- 研究生学术表达能力培养智慧树知到答案2024年西安建筑科技大学、清华大学、同济大学、山东大学、河北工程大学、《环境工程》英文版和《环境工程》编辑部
评论
0/150
提交评论