封装头文件;绘制LED动画

类似C语言的语法,部分函数等内容可以封装到头文件里,需要的时候引入到source file 中,再在 include 中指明即可正常使用。

编写.h文件:如:

引入.h文件:右键左侧的.c文件→options for file→C51→include path→找到.h文件所在的文件夹并选中,注意一定不能有中文路径。然后就可以使用.h文件中定义的变量和函数了,注意不能重复定义
h文件最好在开头加上#ifndef,在结尾加上#endif,这是防止重复因用头文件时出错的。
使用头文件的时候还注意到了一件事,在以前学习c语言时没有注意到。尽量在h文件中声明函数名。 因为后来写一个多文件项目时,里面包含了好几个c文件、对应的h文件和main.c文件。结果那几个c文件中定义函数会出错,原因是必须要在h文件中先声明。

接下来就自己试着先把delay函数和矩阵LED绘制函数写入头文件,然后制作矩阵动画,这样动起来也会更方便一些。

//h file
#ifndef
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;sbit SRCLK = P3 ^ 6;sbit rCLK = P3 ^ 5;sbit SER = P3 ^ 4;void hc_write_data(unsigned char c)
{// 要传入8个输入,需要循环int i = 0;for (i; i < 8; i++){// 注意 芯片传数据先传高位 再传低位,所以要反着写// 通过移位获取SER = c >> 7;// 想获取下一位寄存器,需要移位寄存器移位。需要创造上升沿SRCLK = 0;// 芯片一般给定一个延时时间,经过这个时间之后才能处理完毕delay(1);SRCLK = 1;delay(1);// 让传入数据的次高位变为下次循环的高位c <<= 1;}// 最后通过存储寄存器的上升沿,传输全部数据rCLK = 0;delay(1);rCLK = 1;
}void matrix_led_animation(u8 hc_led_arr[])
{unsigned char col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};int i=0;P0=0x00;for(i;i<8;i++){P0=col[i];hc_write_data(hc_led_arr[i]);//不知道为什么,下面两部分不写图形会偏移。不知道会不会有大佬解答一下delay(1);hc_write_data(0x00);}}
#endif

然后就是利用取模软件得到要绘制的图案的字模。这里我选定的图案是之前圣诞节临摹过的像素画中”Merry Christmas“的字体。参照来源:圣诞节 像素画 圣诞树

51单片机学习笔记_7 绘制LED动画:Merry Christmas 滚动字幕相关推荐

  1. 51单片机学习笔记-1简介及点灯

    51单片机学习笔记 文章目录 51单片机学习笔记 1. 51单片机简介 1.1 安装软件 1.2 单片机简介 2. LED灯 2.1点亮一个LED 2.1.1原理分析 2.1.2 创建工程 2.2LE ...

  2. AutoLeaders控制组—51单片机学习笔记

    文章目录 AutoLeaders控制组-51单片机学习笔记 1.1单片机及开发板介绍 单片机介绍 单片机应用领域 STC89C52单片机 内部结构 开发板介绍 2.1点亮一个Led 新建工程 编程 认 ...

  3. 51单片机学习笔记5 流水灯实现及蜂鸣器控制

    51单片机学习笔记5 流水灯实现及蜂鸣器控制 一.流水灯 1. 硬件电路 2. 代码实现 (1) 点亮一个LED的基本操作 (2) 使用算术左移实现流水灯 (3) 使用库文件左移函数 二.蜂鸣器 1. ...

  4. 51单片机学习笔记1 简介及开发环境

    51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...

  5. 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版

    原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...

  6. 51单片机学习笔记2 仿真器的使用及STC89Cxx简介

    51单片机学习笔记2 仿真器的使用及STC89Cxx简介) 一.连接步骤 1. 硬件连接 2. 安装软件驱动 3. 检查是否安装成功 二.仿真步骤 1. 打开一个51工程 2. 选择仿真设备 3. S ...

  7. [51单片机学习笔记TWO]----蜂鸣器

    蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来 ...

  8. AutoLeaders控制组—51单片机学习笔记(LED控制、独立按键、数码管)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 根据测试,目 ...

  9. 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯

    关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...

最新文章

  1. NRF51822之动态广播使用
  2. php要字符串的后四位,php如何截取字符串后四位
  3. 高性能网站建设的14个原则(转载)
  4. 1024程序员的节日~
  5. 1-4 多文档界面处理(2)
  6. Android深度探索第五章总结
  7. new char() 和 new char[]
  8. AD13中对工程进行编译出现的error
  9. Python实现PD文字识别、提取并写入CSV文件脚本分享
  10. 阿里突遭断网断电!双11最惊险一幕刚刚曝光
  11. 中考计算机考试评分标准,2016年中考英语作文的评分标准及评分细则(最新)
  12. 奥西tds300服务器维修,奥西Océ TDS300 驱动
  13. 云渲染技术在虚拟仿真医疗培训中的应用
  14. GBase 8s 数据库空间(dbspace)
  15. 数据库 连接(自然连接,内连接,外连接)
  16. 如何在Swift中创建漂亮的iOS图表
  17. win10 64bit 深度学习环境搭建完整版
  18. 【反向和同向比例运算电路】
  19. 小程序反编译 g is not defined_纹身霸气英文小短句_经典句子
  20. 高定服装走向NFT,巴黎时装周的数字化将带来什么新趋势?

热门文章

  1. c 语言链表 删除第一个节点,最简单的链表删除第一个节点时释放内存的问题
  2. win to go 给移动硬盘装双系统
  3. Ubuntu Desktop 18.04 设置静态IP方法(超详细)
  4. 今日头条的面试题:LRU原理和Redis实现
  5. 主角有三个精灵java游戏,神奇宝贝之有一个少年
  6. 安卓Android 微信 附件下载跳转至QQ浏览器后 无法显示(二次跳转)的问题
  7. APP在线更新下载安装(转载)
  8. MyBatis注解映射的局限性
  9. 美国网红python图片_爬取网红小姐姐图片(简单入门)
  10. 连江哪里可以学计算机基础,奔走相告!连江人在连江可以考驾照啦~