| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 兜兜的c51自学笔记-流水灯 -> 正文阅读 |
|
[嵌入式]兜兜的c51自学笔记-流水灯 |
时值2021暑假,兜某申请留校,开始51单片机学习之路。 正文开始之前,得感谢实验室学长的帮助 正文 c51对现在得我来说,就是一块可以被点亮得板子,从io口到寄存器,实际上我都是一知半解,那么我就从我的角度来讲一讲吧,在代码世界里0和1构成了全部,那么代码时如何干涉现实得呢,答案是电路,电路的开合构成了代码干涉现实的基础。 跑流水灯之前,首先得让灯亮起来,单片机上电之后,led模块由于它所具有的上拉电阻(我也不太能理解这个玩意)所表现得是高电平,而点亮他,只需要给它对应的Io(输入输出端)接上低电平即可也就是赋0(兜某使用的普中板子,led对应io是P2);所以不管是给P2(io总线)整体给0,还是P2下的0-7分线赋值0,都可。 例程1,点亮led模块第一个灯
sbit位,简单来讲就是告诉编译器,这个P2的孩子0-7中的某一个,他不听话,你不要给他供电了,然后这个孩子觉得不满,表现出来就是亮了(随口一说) 例程2,点亮所有led灯
笑死了,简单粗暴吧,哈哈哈。
也可以这样,这块有意思的i地方就是十六进制的问题了,因为普中板的P2总线下有八个led而前文说过要想让Led处于亮的状态只需要给它0,那么,对总线赋00000000就ok,由于十六进制转二进制0x00就是00000000,所以,给P2这个值即可。 十六进制赋总线数0xaa=10101010,0的位置亮1的位置灭(单片机内部都是以二进制存储的,只要是同一个数值的数就可,所以十六进制转十进制P2=170也能完成同样的效果) 流水灯实现的第二步你可以通过十六进制自由的选择自己想让那个io口的led亮起之后,自然的就开始考虑,如何让led闪烁起来了,如何闪烁呢,你肯定想到了,给他不断地赋值0和1,它就闪起来了,你想的一点都没错,那么例程一来了
你观察一下,你的肉眼能区分到它的闪烁嘛? 答案是不行 为啥呢,因为闪的太快了,肉眼无法观察到,那么,接下来要做的就是对它进行延时,你给暗下去的那个过程延时,它自然就能观察到明显的明暗现象了。
延时的奥义就是给一个循环,给他进行无意义计算,拖慢进程,所以,那个分号别忘记写哦。 关于延时函数在此不予赘述,嗯,留一个可调用的函数就欧克,
如何使用延时对它进行流水灯的点亮呢
就像这样,是不是很繁琐,ok,下面说不繁琐的,先上代码
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 9:59:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |