51单片机学习历程(二)快速入门51单片机
有些学生觉得单片机很难学其实掌握入门方法也不难
开发环境搭建,不用多说,看网上教程
拿到51单片机该如何做?
首先打开看51单片机的管脚分布,51单片机是8个引脚一组,为什么是8个一组呢?
因为它是8位单片机,正好一个字节8位可以控制它
51单片机有4组(P1,P2,P3,P4)通用管脚,所以51单片机有4*8=32个通用管脚
管脚有那么可怕吗?
其实通用管脚不就类似于开关,初学者先当开关用
点灯也不难
看下原理图,看开发板上的LED接到了哪个管脚,也就类似于接到了哪个开关
例如LED接到了P1.0脚
怎么点亮呢?
家里面点灯不就是把开关打上吗?
单片机也一样啊,给相应管脚输出高(1),或者(0)不就相当于把开关打上了吗
只是这里的开关打上是相对而言的,看自己的原理图上的LED灯是怎么接线的
如果LED灯一段接了正(VCC),那么另一端(管脚)输出(0)低电平,这样一高一低不就导通了吗
反之,管脚输出(1)导通
程序怎么写
如果按纯粹的c语言来写
#include "stdio.h"
void main() //void没有返回值 所以不用return
{int LED;LED=0; //假设(低电平)导通
}
以上程序看似正确,大家有没有想过LED代表什么?
有的人可能会不假思索的说,不就是开关嘛,(管脚)
的确没错,但是LED在这里只是一个普通变量哦
问题:怎么办呢?
答案 :这就是单片机c语言和普通c语言的不同,sbit 位定义
单片机c语言多了一个位定义:sbit LED=P1^0
这样LED不再是普通变量了,它就可以代表一个管脚
问题:P1^0哪里来的?
答案:P1^0来自一个头文件 reg51.h或者reg52.h(区别不大)
这样就出来了一个完整的LED单片机程序
#include "stdio.h"
#include "reg52.h"
sbit LED=p1^0;
void main() //void没有返回值 所以不用return
{LED=0; //假设(低电平)导通while(1);
}
问题:为什么要加while(1)?
答案:因为,我们是要灯一直点亮,所以要死循环,
有的会说:我不加死循环也是一直亮啊
答案:那是你的程序又再次重启了一遍,为了让程序一直执行就加上死循环
问题:如果我要点亮多个LED灯,一个一个定义那不要累死吗
答案:不会累死的,因为刚开始是一位一位操作,我们还可以用一个字节直接控制一组LED(8)个灯
因为单片机不是8位的吗,所以直接给LED=00000000; 这样就可以控制8个灯了,没有8个灯也没关系,只要找到对应的管脚(对应的位输出(0或者1))
#include "stdio.h"
#include "reg52.h"
#define LED p1 //这里不再是位定义 P1包含在了reg52.h里面,其实P1就是一个地址而已,以后对地址有概念了再去深究
void main() //void没有返回值 所以不用return
{LED=00000000; //假设(低电平)导通 如果8位二进制麻烦,可以把它转换成十六进制while(1);
}
如果要灯流动(花样流水)怎么办
答案:其实不就是把相应的灯打开关闭而已嘛
为了流水方便,程序好写一点,可以看看(逻辑运算)(例如:移位,按位与(或)) 等知识
最后建议:
1、先拿着例程烧录的开发板上去,建立自信
2、看接线原理图分析例程,不懂可以看 视频教程,
2、建议可以买一本郭天祥的51单片机书籍看看(视频别看,不咋地)
3、看懂之后修改例程,按字节理解的思路写程序,搞点与例程不同的
4、学了一段时期(两三周)后,制定小目标:做个小作品(交通路灯)啥的
5、多问个究竟(为什么是这样的),网上找原因,比如(csdn,电子发烧友,51黑电子什么的)
5、学会做笔记(写博客),把自己理解的写上去,便于以后查看
51单片机学习历程(二)快速入门51单片机相关推荐
- 51单片机学习历程——硬件准备&开发环境搭建
系列文章目录 第一章 51单片机学习历程(1)--开发环境搭建 第二章 51单片机学习历程(2)--建立新的工程 第三章 51单片机学习历程(3)--点亮一颗LED 第四章 51单片机学习历程(4)- ...
- 【小白】【大学】一名嵌入式软件开发小白的单片机学习历程、心路历程、经验分享
我的嵌入式学习之路 我为什么写这篇文章 先简单介绍一下我自己 与每一个技术小白共勉 这篇文章写给谁 我的学习经验分享 我的成长之路 我的单片机学习历程分享 51系列单片机学习历程 预备知识:(可以查百 ...
- notes-Java学习指南①(快速入门)(网易云课堂)
Java学习指南①(快速入门)(网易云课堂) 讲师:邵发(阿发你好) 章节1:第1章 Hello,World 课时1关于本篇11:55 编程语言的演化 机器码-汇编语言-C语言-C++ -java/C ...
- 5加载stm32 keil_快速入门STM32单片机-软件篇
关于这个STM32的编程开发环境Keil,网上有太多相关的资源了,而且大都讲解的非常详细.所以本篇文章无意于深入细节,只会提供我学习时候的一些体会,帮助你更好的掌握相关知识. 1.标准外设库(Stan ...
- 【完结】给新手的12大深度学习开源框架快速入门项目
文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作
大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作...
一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 ...
- JavaScript学习记录01快速入门、基本语法、严格检查模式
文章目录 JavaScript学习记录01快速入门.基本语法.严格检查模式 1.1什么是JavaScript 1.2认识JavaScript框架 1.3快速入门 1.4基本语法入门 1.5数据类型简介 ...
- isp串口下载 stm32_快速入门STM32单片机
我觉得想要学好STM32单片机,思路非常重要,我们不应该考虑如何快速入门,我们应该考虑的是我们可以用STM32实现什么? 32单片机有着更高的频率,更多的IO管脚数,我们可以使用32单片机的SPI.I ...
- 前端学习之CSS快速入门-2021-09-20~22
CSS快速入门 什么是CSS 如何学习 csst是什么 CSS怎么用(快速入门) CSS选择器(重点+难点) 美化网页(文字,阴影,超链接,列表,渐变-) 盒子模型 浮动 定位 网页动画(特效效果) ...
最新文章
- 21天搞定Python爬虫
- C++模板学习之函数对象之谓词
- C: Answers to “The C programming language, Edition 2”
- 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)
- 【CSS练习】常用的CSS字段
- html5 css3中的一些笔记
- WinCE6.0 修改开机Logo方法
- 技术公开课:SQL Server 索引优化原则与工具
- eclipse测试java程序_java-同一项目中的Eclipse junit测试
- 查看文件_如何在Mac上显示和查看隐藏的文件/文件夹
- AHK生成随机但不重复的数字
- Hadoop 与 HBase 版本对应
- 橙色——网页效果图设计之色彩索引
- flash游戏开发02_引入flixel框架的helloworld
- 学习编程,既要仰望星空,又要脚踏实地
- 一个啥也不是的鬼畜视频创作示例
- 团体程序设计天梯赛-习题集部分题解(大牛勿喷)
- 中国互联网金融举报信息平台将“代币发行融资”列入举报范围
- 关于咖啡,与咖啡无关
- java包(package)的声明与访问
热门文章
- 算法题解:旅行商(TSP)问题JAVA算法求解
- ios系统软件迁移到安卓_苹果系统怎么把文件转到安卓手机?
- Python 破解验证码
- Spire PDF转WORD (高效不失真)
- BinaryViewer(二进制查看器)使用教程(附下载)
- 三星固态速度测试软件,三星SSD固态硬盘优化工具Samsung Magician使用说明
- 项目管理知识体系指南(PMBOK 指南) 第6版——笔记
- 五道口男子计算机职业技术学院,哈哈!双鸭山大学、五道口男子职业技术学校…盘点高校那些“天雷滚滚”的绰号...
- c语言铺地板,【北理乐学】铺地板
- hive中操作hdfs命令