非常简单,而且比较有意思,适合初学者学习

0.png (49.97 KB, 下载次数: 31)

2018-7-17 04:16 上传

单片机原理与应用

课程设计报告 作品名称:  基于STC89C52的16LED摇摇棒

目录

一、作品说明2

二、系统总体设计4

三、硬件设计6

四、软件设计7

五、系统调试与分析8

六、课程作品制作体会11

基于STC89C52的16LED摇摇棒设计

一、作品说明

摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影。本设计也追随着摇摇棒的原理,利用人眼的视觉暂留特性,通过STC89C52单片机对16只高亮度LED发光二极管进行控制, 配合手的左右摇晃就可呈现一幅完整的画面。

该摇摇棒具有如下功能:显示“神奇魔幻”;

显示  “摇摇棒!”;

可以通过开关实现转换,轮流显示并循环:显示    “心”心形图案;

显示“o(∩_∩)o”图案;

5) 显示   “LOVE”;

具体实物图如下:

二、系统总体设计

1、总体方案比较与论证

所谓的“摇摇棒”,其实就是一个循环的LED显示,利用人的视觉滞留产生静态显示的现象。要实现这个目标,就要求延时部分做的比较小,所以采用石英晶体振荡器。而目前能够实现这种功能的器件有很多种,不同的类型的器件也能够很好的完成。

本作品本着方便、价格低廉的原则,采用单片机控制,由晃动开关的闭合对单片机产生外部中断,从而对中断进行采集。到达一定数量便进行图象的转换。整个系统由单片机控制模块,开关及电源模块和输出显示模块三个部分构成。系统框图如下:

0.png (4.94 KB, 下载次数: 16)

2018-7-17 04:20 上传

2、主要部件原理

(1)单片机控制模块

用单片机想要控制LED显示只需要定时输出就可以,但每个人摇动的速度不一样,如何准确的并稳定的变换图案呢?这就需要用到外部中断。将晃动开关的两个引脚一端接单片机引脚(P3.2),一端接GND,这样的话,当摇棒向一边运动时LED按照程序编辑好的规律显示,而向另一边运动时LED全灭,此时一个周期就会产生一个下跳沿的信号,信号传递给单片机的INT0产生中断,对中断的数量计数,当计到10时便转换显示的图案,当依次显示完后便回到初始状态进行循环。

由于人的视觉滞留时间长达0.1s,所以在每显示完一列LED后加入一段合适的延时,如5ms,每个字之间加入延时如15ms,这样,我们就能看到静态的稳定的字,并且每个字之间是有空隙的。为了让字能够在空间的中部显示,在启动中断显示后延时一段合适的时间,使棒在半圆轨迹的大约1/4处开始显示,这样看到的字方向上才比较正。

晃动开关:

晃动开关也叫振动开关,其实都是震动开关的一种只是叫法不一样是通过弹簧接触导针的原理来控制电路的接通或者断开的。

简单来说,就如同打开或关掉电灯一样,开关触碰里头的金属板电灯就亮,离开就关,晃动开关也是利用类似的原理。利用弹簧的晃动,制造与金属端子的触碰或改变光线行进的路线,就能产生导通或不导通的效果。

系统设计

本系统包括单片机控制模块,开关及电源模块和输出显示模块三个部分。

单片机控制模块由Keil C进行编写,实现起来简单,主要有三部分,主程序、中断服务部分还有字符点阵。

开关及电源模块采用两节电池并配合晃动开关开关使用。输出显示模块采用16个LED灯,在版上一字排开。

三、硬件设计

硬件连接上用滚珠开关产生的电平转换引发中断,传递给单片机,再由单片机调用点阵文件输出到LED上。

摇摇棒设计电路图

STC89C52单片机作为控制器,在它的P0、P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。串在LED公共端的二极管D18会产生一定的压降,用来保护LED。S3是画面切换开关,用于切换显示不同内容;S2为晃动开关。系统电源使用2节扭扣电池串联6V。

16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整的画面。

晃动开关的作用:棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一只晃动开关来控制,使摇摇棒从左向右摇动时将内容显示出来。软件设计

软件部分包括主函数程序、中断服务程序、延时子程序以及四个显示子程序。软件设计流程如下:

系统调试与分析

主要测试单片机的工作情况,能否正常用LED显示出各图案,并且记录各图案持续的时间和稳定显示度以及一个循环周期所用的时间。并且检查LED的发光亮度,使之可以明显的分辩出来。图    案稳定程序

神奇魔幻较稳定

摇摇棒!较稳定

心形较稳定

o(∩_∩)o较稳定

LOVE较稳定

经过测试,当摆动的幅度和速度适当时,各个画面均可以明显的显示出来。整体来说,本方案设计比较成功。

拍摄照片:

六、课程作品制作体会

通过一学期的《单片机原理与应用》课程的学习,对单片机有了一定的认识和体会。作为机械电子方向的学生,要想深入发展,尤其是对自动化感兴趣的我,单片机是必须要学好的一门课程。从小喜欢敲敲打打,对制作单片机很感兴趣,满心希望能做出一个让自己满意的作品。

但是想起来容易做起来难,由于种种原因,我在学习、制作过程中遇到了很多的困难。首先,单片机的先修课程《微机原理》这门课,我们虽然上学期学过,但是当时掌握效果很差,所以在单片机课程开始阶段,涉及到相关知识时感到很吃力,花了很多的时间去“补课”。其次,焊接的基本功不扎实,上学期虽然做过焊接收音机的实习,但是那次是在设计电路已给出、精密度较低的情况下糊里糊涂的完成的,跟这次课程设计要完成的任务差距甚大,所以也花了不少的代价去弥补基本功的不扎实。最后还有一个问题是,原机械专业及物理方面共八门考试,让自己的复习、制作过程相当紧张,而机电院还安排了在长沙各工厂的认识实习,时间相当紧迫。我能做的就是,抓紧时间,少走弯路,提高效率。

请教了有经验的同学以后,我开始在网上搜各种相关程序和资料,根据自己的想法进行修改和整理。由于以前学过C语言,有一定的基础,所以就不顾老师强烈推荐的汇编语言,毅然选择用C语言设计了。相关知识理解得差不多了以后便开始设计电路。由于画图的软件应用不很熟悉,又没有经验,刚开始的图又丑又乱,焊起来很是麻烦,改了又改,加上基本功的不扎实,因此烧坏了第一块板子……沮丧之后,我请教了上届教物的一个师兄,在他的指导下我修改并完善了线路图,重新买了板子从头做起。这次为了避免犯大的错误,我遇到没有把握的地方认真分析,实在不会的就及时请教,一点一点踏实做起。

然而,好事多磨,就在我仔细焊接完成之后,测试的时候却发现显示的字和画面都是反的!我又认真检查、分析了一下,发现自己把S52的两个端口搞反了,水银开头的方向也接反了。问题找到了,我又耐着性子,把线拆了重新焊起。一鼓作气,终于再次把电路板焊好。这次,终于成功了!

通过此次课程作品制作,我对书本上很多以前不理解的内容有了新的实际的认识,也把很多抽象的知识具体化了,收获颇多。看来,很多时候我们只是读书是远远不够的,纸上得来终觉浅,绝知此事要躬行,尤其是对于我们这些理工科的学生。以后的学习过程中,希望能有更多的实践的机会。

0.png (41.84 KB, 下载次数: 24)

2018-7-17 04:22 上传

全部资料51hei下载地址:

摇摇棒配套资料.zip

(7.77 MB, 下载次数: 187)

2018-7-16 10:49 上传

点击文件名下载附件

c代码以及原理图PCB

下载积分: 黑币 -5

c语言上届报告,51单片机摇摇棒制作资料,包含c代码PCB原理图与设计报告相关推荐

  1. 基于51单片机的自动售货机Proteus仿真(源码+仿真+设计报告)

    资料编号:137 视频讲解: 137-基于51单片机的自动售货机Proteus仿真(源码+仿真+设计报告) 功能介绍: 基本原理:通过矩阵键盘来选择货物的种类与数量过后自动售货机提示投币.自动售货机的 ...

  2. 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)...

    获取全套设计资源,请见后文说明- 设计要求 1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示: 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制: 3)抢答器具有锁存与显 ...

  3. 51单片机电路原理图_HX711的电子秤称重系统设计详解,51单片机,含Proteus仿真、C代码、原理图、论文等...

    设计要求 1.系统可实现电子秤基本的称重功能(称重范围为0-10Kg,重量误差不大于±0.005Kg): 2.系统应具备键盘输入单价,显示重量,计算总价的功能: 3.单价和总价金额的单位为元,最大金额 ...

  4. 51单片机摇摇棒改字原理详解

    https://blog.csdn.net/qq_43367031/article/details/83095583?tdsourcetag=s_pctim_aiomsg

  5. 洗衣机控制系统c语言编程,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文.doc...

    采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文 深 圳 大 学 本 科 毕 业 论 文(设计) 题目: 基于单片机设计的全自动 洗衣机控制器 姓名: 郑嘉泽 专业: 电子信息工程 学院: ...

  6. 蓄水池问题c语言编程,基于51单片机的蓄水池自动控制系统(35页)-原创力文档...

    广西民族大学 第二次综合课程设计报告 论文题目 : 基于 51 单片机的蓄水池自动控制系统 学 院: 物理与电子工程学院 专 业 : 自动化 年 级 : 2007 级 学 号 : 1072630101 ...

  7. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  8. C语言 | 基于51单片机实现MPU6050的卡尔曼滤波算法(代码类2)

    github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 之前写过一个博客(代码分享:单片机开发 | ...

  9. 51单片机流水灯制作

    文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...

  10. 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子    1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...

最新文章

  1. 关于java中的字符流的一个使用例子
  2. linux网络属性配置
  3. 图片预加载的问题-----有针对加载和缓存的兼容解决
  4. Maskros的蓝桥刷题之路(1-13)
  5. 【开源项目】Socket服务端与客户端传输视频文件
  6. 前端学习(2181):vue-router导航守卫的补充
  7. [uboot]在uboot里面添加环境变量使用run来执行
  8. DELPHI存储过程调用
  9. Coinbase在2020年下半年共收到执法机构2313次信息申请
  10. 描述文件安装失败无法连接到服务器_打开steam为什么提示无法连接至steam网络?...
  11. CoreImage的使用及常见滤镜工具(一)
  12. 7.Jenkins 权威指南 --- 分布式构建
  13. 双目测距原理 matlab,双目测距的基本原理
  14. 计算机工程与工艺截稿,中国计算机学会第二十届计算机工程与工艺学术年会
  15. java跳转到ie_ie跳转chrome(ie浏览器点击链接跳转谷歌浏览器)
  16. oracle求累积收益率,解决报表sql中的累计收益率问题?换个姿势,再来一次~
  17. 入行大数据,需要学习哪些编程语言?
  18. 【天池学习赛 语义分割】自定义数据集时报错处理
  19. PyTorch 2.0 重磅发布:一行代码提速 30%
  20. 不同平台使用不同技术实现微信好友、朋友圈分享汇总(H5、taro、uni-app)

热门文章

  1. 数据库----如何将oracle语句转换成mysql语句
  2. rpc调用和http调用有什么区别
  3. 前端开发常见的英语单词汇总
  4. 【测试表征】五分钟了解俄歇电子能谱仪(AES)
  5. 各省互联网普及率数据集(1997-2018年)
  6. 手把手教你使用VGG19做图像风格迁移
  7. 一文读懂民航客机飞控系统
  8. RC低通滤波器——CR高通滤波器---的使用
  9. Django 菜鸟教程(跑通流程)
  10. html css 内联样式_内联CSS指南–如何直接设置HTML标签的样式