找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2157|回复: 0
打印 上一主题 下一主题
收起左侧

不怎么讲原理的51单片机应用入门(1)单片机是啥

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-23 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
出自:西漂sky的博客


单片机是一门应用类课程,与一些理论课程如微积分不同。对于微积分课程的学习,我们首先需要系统掌握公式定理,然后才是如何应用。而就个人认为,单片机的学习是“由外而内”的,对于初学者来说,首先要解决的是“怎么用”的问题,然后才是“为什么”的问题。就我个人的经验,如果一上手就是各种理论,学习兴趣很快就会丧失;若是现从实践应用开始,不说多么有意思,起码要比理论好玩那么一点。等实践学到了一定的火候,再回溯理论,一步一步深究如何实现,想必要简单一点。本系列就是为了解决“怎么用”的问题。学习单片机,首先要知道什么是单片机。
电脑是什么,手机是什么想必大家都是知道的,也就是你用来看这篇博文的这个玩意。而电脑和手机的核心是什么?其实是一块CPU,CPU进行运算,并操控各种输入输出设备,比如触控屏,键盘,鼠标什么的。而单片机,就是把电脑或者说手机集成到了一个芯片上,这块芯片可以根据你的要求对输入进行处理,产生你需要的输出:
                             

                          上右图为ATMEL公司的单片机,其他51单片机与其封装可能不一样,用都是一样用(兼容的)。
从外观和逼格上看,这两个相差貌似蛮大的,其实对于电脑,你可已通过键盘和鼠标输入,电脑的屏幕和音响可以给你你需要的输出。而对于单片机,它的一些引脚相当于鼠标键盘,也相当于屏幕音响。这些可以用来输入输出的引脚们,我们称之为IO口。
IO口常规作用只有3个——置高(引脚电压相对于地5V或3.3V),置低(引脚电压相对于地0V),检测高还是低(检测引脚电压相对于地是5/3.3还是0)。无论是以后或简单,或复杂的实验,最终你所需要的,就是让这些脚管电压按着你的要求按时上下翻飞。
现在知道单片机是做什么用的了么?就是按要求对外部输入的电压信号做出规定的电压回应。

好了,现在说说具体是怎么样的,在计算机C语言中,如果我们需要从键盘上读取输入信号,我们通常会用这种方法:
int temp;//定义一个32位变量
scanf(“%d”,&temp);//从键盘缓冲区读取一个整形数据存在temp中
而单片机略显寒酸的没有自备键盘......不过这不是问题,我们通过这种方法:
unsigned char temp;//定义一个8位变量
temp=P1;//读取P1口的值,赋值给变量temp
第二句代码就是输入啦,大部分的51单片机的IO口都是P0,P1这样命名的。先来看看单片机的引脚图:

            
先不看那些好长名字的引脚,只看1~8的8个,名字分别为P1.0~P1.7,这八个引脚就是一个被称为P1的IO口,8个引脚分别对应了unsignedchar型数据的8个位。再看20引脚VSS,其实就是常用的“地”,所有电压高低都是相对于VSS引脚的电压而言的。
执行temp=P1;这条语句的时候P1每个引脚的电压情况就会被保存到变量temp里。例如,P1口电压情况是P1.0~P1.3电压与VSS相同,P1.4~P1.7的电压比VSS高3.3V/5V,也就是“高高高高低低低低”,换成逻辑语言就是“11110000”,那么单片机就读取了一个为“11110000”的值,也就是“0xF0”并将这个值保存在temp变量中。
有了输入自然要有输出,在计算机C语言中,有一种输出的方式是这样的:
int temp=214;
printf(“%d”,temp);
这样,计算机就通过屏幕输出了值214,但是单片机同样不自备屏幕,然而这更不是问题,我们是这么做的:
unsigned char temp=0xF0;
P1=temp;
从语法来说,这是将temp的值赋值给了一个叫P1的......东西。然而这个P1,就是刚才所说的IO口P1。执行这条语句后,P1口的8个引脚就会各司其职,输出与之对应位的值。例如P1.0引脚,它对应的是最低位,temp为0xF0,也就是“11110000”,最低位为0,那么P1.0引脚的电位就会变成与Vss相同。也就是说,执行完P1=temp后,P1.7~P1.4的电压会变得比Vss高5V/3.3V,P1.3~P1.0的电压会变得跟Vss基本相同。
上文所分3.3V与5V的原因是51单片机的常见电源电压有5V与3.3V两种:对于5V单片机,“高”和“1”是比VSS的电压高5V(只是理想情况,低一点也是可以的);对于3.3V单片机,“高”和“1”是比VSS的电压高3.3V(同样是理想情况)。
好啦,单片机的输入输出也就是一个符号“=”的事,现在总结一下:单片机的作用是按要求对电压信号做出电压回应,输入和输出的方式就是改变引脚的电压和看单片机把引脚电压改变成什么样子。
(如需转载,在下表示不胜荣幸,也请注明出处)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表