注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
凔海的个人空间
https://home.eeworld.com.cn/space-uid-641902.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
凔海笔记之单片机(二):初识单片机
已有 1102 次阅读
2016-3-3 15:20
|
个人分类:
51单片机
何为单片机?网上有云:“单片机是在一片硅片上集成了CPU、存储器(RAM、ROM、EPROM)和各种I/O接口(定时器、计数器、并行I/O口等)具有一台计算机功能的设备,又称单板机、单片微型计算机、微控制器、嵌入式控制器”。我觉得这句话说得很好,不过在这里我更想说
不懂/(ㄒoㄒ)/~~
所以,先说一下单片机并记住一句话,单片机的引脚可以接收或发出高低电平。人家的原则貌似是“不求规模大,力求小而全”。n(*≧▽≦*)n
左图是51单片机实物图,右图是引脚图,引脚什么鬼?引脚,又叫管脚,英文叫Pin。就是从集成电路(芯片)内部电路引出与外围电路的接线。即左图白色的短小矩形,我们先要用意念控制住自己,不要想这黑块内部是什么,只需要知道这些引脚可以接收或发出高低电平,接收的电平或可影响着输出,输出的也可左右着输入,如要里二者的相互影响的奥秘,就是知道这个黑块的原理。对于刚接触单片机的在下来说,还是简单的认识一下能看得见的东西吧。
引脚。20接负极,40接正极,这家伙是供电, 5V电压最好。P1、P2口共16个,它们是一样的,都是输出或接收所谓的高低电平。P3脚比较勤劳,不仅有与P1、P2相同的功能,而且还兼职,也就是第二功能,这个先不说。P0口则有些先天不足,需要给它提供驱动力,才能与P1口一样,这个驱动力叫做上拉电阻。当然,这样的设计,是有人家的目的的,具体为什么,也先不说了吧。我们现在主要用的就是这些P口。
学习C语言Java什么的,第一件事是说“hello world”,那么,学习单片机首先要亮一个灯,我们初中就知道怎么亮了,拿一两块电池,把灯的一头接在负极,一头接在正极,他就亮了。就像这样
现在我们要用单片机来点亮一个灯,先说这个灯,我们管它叫led,即是发光二极管(我记得当初并不知道led就是发光二极管(⊙﹏⊙))。
二极管想必都知道,具有单项导通性,如下图
A接正极,B接负极,它是导通的,如果反过来就不管用了,当然,你可以暴力的击穿它,让它与世长辞。那么发光二极管呢?顾名思义,当A接正极,B接负极时,导通灯亮,反之不会亮。而在这里,我们又有了新的词汇来形容正极和负极。这就是高电平和低电平。物理解释中,正极指电源中电位(电势)较高的一端,负极与之相对。高电平对应正极,负极与低电平相对应。我们说的“水平”,词典中解释与水平面平行、或在某方面达到一定高度,引申指事物在同等条件下的比较结论。
看这幅图,水从高的地势下泄,水从高水平面向低水平面溜达。现在再想想高电平和低电平也就了然了,电荷从高电平溜达到低电平,就是从正极流窜到负极。就是这个道理。在数字系统中,我们用1来表示表示高电平,用0来表示低电平,为什么呢?用0表示高电平当然也可以,不过,0比1大有没有觉得很别扭,接下来就说说发光二极管,看下图
A高电平,B低电平就亮了。那么这和单片机有什么关系呢?还记得开头怎么说没?单片机的引脚可以接收或发出高低电平。所以,当把A接的高电平用单片机来提供,B接到负极,灯就亮了,若将A外接高电平,B接单片机发出的低电平,灯也亮了。其实这俩种接法又称共阳、共阴,这以后再谈。那么如何让单片机发出高低电平呢?这就需要软件来实现。我用的是在keil3,软件如何应用,就不赘述了~( ̄0 ̄)/。
我觉得不得不说一句,任何不看电路图所写的程序都是瞎扯淡,所以这里假设led连接在P1.1角上。
#include<reg52.h>
要想知道这个头文件干什么很简单,选中头文件,右键,选中open document #include<reg52.h>就可以看到一些内容。
document 是文件的意思。include是包含,reg52.h是针对51/52单片机定义的头文件,主要包括寄存器定义。所以也就大概理解了这个头文件的意思了。SFR = special funtion register //特殊功能寄存器。举例来说,如果你写P0=0x01烧写软件会给0x80这个地址赋0x01,就是这样,打起来了C语言与单片机的桥梁。如果学了汇编,相信会对这些内容很熟悉的。如果不太清楚我想也不必要纠结,写程序的时候写上这些也就可以了,以后会懂得。要知道,程序的本质是寄存器之间的数据传递。
#include<reg52.h>
sbit led = P1^1;// 定义特殊功能寄存器的位变量。在函数中不允许对P0~P3 //口进行为位操作的,故使用前要先进行位定义。
main()
{
while(1)
{
led=1;
}
}
那为什么写while(1)嘞?main是主程序, while(1)是无线循环的意思。学过C语言的知道,让led=1;一直保持下去。为什么非要加while(1)来保持下去呢?引脚输出1他不就亮了么?确实是这样,可是我们先要清楚一点,单片机是顺序执行,led=1;不是它的最后一句,如果不加while(1),led=1确实是最后一句啊,是的,对于C语言是这样,但汇编不是这样,对于单片机。并不是传递了led=1就停止工作了,这需要我们探索内部结构才能知晓,现在知道这样一个概念吧。再补充一句,忘了加限流电阻了 。
一节流水犹未尽,下节接着说废话,学识浅薄出拙文,如察错误望赐教,小弟在此感涕零。
本文来自论坛,点击查看完整帖子内容。
收藏
邀请
举报
全部
作者的其他最新日志
•
凔海笔记之FPGA(十一):SDRAM(づ。◕‿‿◕。)づ
•
凔海笔记之FPGA(九):玩一玩DS1302
•
凔海笔记之FPGA(十):Verilog描述IIC单字节读写协议
•
凔海笔记之FPGA(八):Verilog描述RS232 UART
•
凔海笔记之FPGA(七):触发器和锁存器
•
凔海笔记之FPGA(六):二进制的加法番外篇
评论 (
0
个评论)
涂鸦板
您需要登录后才可以评论
登录
|
注册
评论
凔海
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
新品 | 只需一对铜线,即可完成以太网传输的标准化建设
谷歌无人车离奇车祸曝光:人类安全员睡着后,误触关闭了自动驾驶
融合创新,推动中国集成电路产业供给侧改革 ——2017年中国半导体市场年会暨第六届中国集成电路产业创新大会今日于南京举行
学习、旅行、锻炼,人生不能俭省的三件事
莫大康:中国存储器梦初探
预告:银行业务光凭“刷脸”真的靠谱吗?
新增数据手册
AGLN030V2-ZQNG81PP
240-032-2-15SCF6J5-18H
EUGA18-FREQ5-I2
2402-32-CJ-B
MATP18DS-GK-BHT
C1206H101J2GAL7800
热搜器件
Y00751K80000B9L
DJT14F11-5AN
LM4890
MASMCG45CA
653P5005C3T
Motor Driver
推荐下载
数字电路课程设计教学大纲.doc
基于单片机交直流数字电压表的设计
自己制作的3D接插件库:Female-Header-2.00-Single-7
CD4023BC
GD32F170xx Datasheet Rev1.0
IEEE最新的100GHz压控振荡器设计让大家了解国
推荐关注
AXS4056:1000mA单节锂电池充电芯片参数资料、内置锂电池反接保护功能
《图解入门——功率半导体基础与工艺精讲(原书第3版)》阅读心得——碳化硅与氮化镓
ROS2 中 TF 变换发布与订阅:实现 base_link 和 test_link 实时可视化显示
《图解入门——功率半导体基础与工艺精讲(原书第3版)》阅读心得之一——一本好书
ROS2 应用:按键控制 MoveIt2 中 Panda 机械臂关节位置
对射传感器最大感应距离是多少米,最大感应距离的多种因素影响