单片机入门学习(二)
扫描二维码
随时随地手机看文章
昨天我给大家分享了一些基本的单片机的知识,那么今天我会说一些关于电平特征、二进制的逻辑运算和C51中的基础知识,在最后也会告诉大家怎么去使用单片机程序常用编译软件Keil。
这里提供一个Keil uVISION4下载地址:http://pan.baidu.com/share/link?shareid=4168108828&uk=3843120621&fid=3382752131
大家开始边下载边看这文章。
单片机是一种数字集成芯片,数字电路中只有两种电平:高电平和低电平。
常用的逻辑电平有:TTL、COMS、LVTTL、ECL、PECL、GTL、RS-232、RS-422、RS-485、LVDS等。
其中TTL和COMS的逻辑电平按典型电压可分为四类:5V类型,3.3V类型,2.5V类型和1.8V类型。
5V TTL 和 5V COMS是通用的逻辑电平;3.3V 、2.5V 和 1.8V 的逻辑电平被称为低电压逻辑电平,常用的为LVTTL电平;ECL/PECL 和 LVDS 是差分输入/输出;RS-422/485 和 RS-232 是串口的接口标准,RS-422/485 是差分输入/输出,RS-232是单端输入/输出。计算机的串口为RS-232C电平,其中高电平为-12V,低电平为+12V,为负逻辑电平。
TTL电平信号用的最多,数据表示通常采用二进制,+5V 等价于逻辑1,0V 等价于逻辑0,这被称为TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。CMOS电平Vcc可达12V,CMOS电路输出高电平约为0.9Vcc,而输出低电平约0.1Vcc。CMOS电路中不使用的输入端不能悬空,否则会造成逻辑混乱。
TTL和CMOS的逻辑电平转换:
这里要注意的是 CMOS电平能驱动TTL电平,但TTL电平不能驱动CMOS电平,需要上拉电阻。
常用逻辑芯片的特点如下:
74LS系列:TTL输入:TTL 输出:TTL
74HC系列:CMOS输入:CMOS输出:CMOS
74HCT系列:CMOS输入:TTL输出:CMOS
CD4000系列:CMOS输入:CMOS输出:CMOS
单片机、DSP、FPGA之间引脚能否直接相连可以参考一下这个方法:
一般来说,同电压的是可以相连的,不过最好还是好好查看芯片技术手册上的VIL(逻辑电平0的输入电压)、VIH(逻辑电平1的输入电压)、VOL(逻辑电平0的输出电压)、VOH(逻辑电平1的输出电压)的值,看是否能够匹配。
二进制的逻辑运算:与、或、非、同或和异或
与:运算符“&”,规则 0&0=0,0&1=0,1&0=0,1&1=1;
或:运算符“|”,规则 0&0=0,0&1=1,1&0=1,1&1=1;
非:运算符“!”,规则 !0=1,!1=0;
同或:运算符“⊙“,规则 0⊙0=1,0⊙1=0,1⊙0=0,1⊙1=1;
异或:运算符”⊕“,规则 0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0;
这些我想很多人都知道了,在这里我就不详细说。
那么接下来我们说一下C51中的基础知识,单片机开发大多都是用C语言编程的,我们需要知道一些关于C语言方面的知识,但是在单片机中的要求的C语言知识会比平时我们知道的C语言有所拓展,所以我们用C51来区分:
C51中的基本数据类型:
无符号字符型: unsigned char
有符号字符型: char
无符号整型: unsigned int
有符号整型: int
无符号长整型: unsigned long
有符号长整型: long
单精度实型: float
双精度实型: double
位类型: bit
C51数据类型扩充定义
单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的过程实际就是将这个寄存器在内存中的地址编号赋给这个名称,这样编译器在以后的程序中才可认知这些名称所对应的寄存器。而这些声明已经包括在一个叫”reg51.h“中了。
sfr——特殊功能寄存器的数据声明,声明一个8位的寄存器。
sfr16——16位特殊功能寄存器的数据声明。
sbit——特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位。
bit——位变量声明,当定义一个位变量时可使用此符号。
C51中常用的头文件
通常有reg51.h、reg52.h、math.h、ctype.h、stdio.h、stdlib.h、absacc.h、intrins.h
C51中的运算符
+ - * / ++ -- % > >= < <= == != && || ! & | ^ ~ >> <<
这些跟C语言里面的运算符是一样的。
C51中的基本语句
if 选择语句
while 循环语句
for 循环语句
switch/case 多分支选择语句
do-while 循环语句
关机C语言的语法细节,可以去找一本关于C语言的书籍去阅读。
学习单片机应该要掌握:
1)掌握单片机最小系统能够运行的必要条件。
①电源
②晶振
③复位电路
2)掌握对单片机任意I/O口的操作。
①输出控制电平高低
②输入检测电平高级
3)定时器:重点掌握最常用的方式2。
3)中断:掌握外部中断、定时器中断、串口中断。
4)串口通信:掌握单片机之间通信、单片机与计算机之间的通信。
接下来呢,我会以图文的方式告诉大家怎么用编译软件Keil。
首先我们先打开这一个软件。
选择 Project 菜单里面的 New uVision Project,出现一个保存的框,选择你要保存的位置和名称,然后确定。
确定后出现一个选择框,在这里我们选择 Atmel ,然后再选择里面的 AT89C52,选择OK。
这时我们选择File菜单下面的一个白色图标,新建一个文档。
然后选择File 菜单里面的 Save 按钮保存,记得保存为后缀为 .c 文件,且最好是保存到和工程的同一目录下。
保存完双击Source Group1,把保存的c源文件添加进来。
这样就添加完成了。
那么下面我会告诉大家怎么去编译c源文件。
我们选择 Target Options的按钮。
选择Output 选项,把 Create HEX File 选项的钩打上,按OK确定。
然后按 Rebuild 按钮,对源文件进行编译。
编译通过后会生成后缀为hex的文件,这个文件就是下载到单片机的文件。
今天给大家分享了这些的知识,如果还敢兴趣的朋友可以继续关注我的博客。
在接下来的学习,我会以边焊接东西边教大家写代码的形式来分享。所以希望大家至少要准备一个自己好的最小系统。