单片机的学习——入门篇(2)

原创 2013年12月05日 14:44:23

        昨天我给大家分享了一些基本的单片机的知识,那么今天我会说一些关于电平特征、二进制的逻辑运算和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的文件,这个文件就是下载到单片机的文件。



今天给大家分享了这些的知识,如果还敢兴趣的朋友可以继续关注我的博客。


在接下来的学习,我会以边焊接东西边教大家写代码的形式来分享。所以希望大家至少要准备一个自己好的最小系统。

单片机的学习——入门篇(1)

12月,我给大家会分享一下我学习的单片机的基础知识。 什么是单片机?用专业语言讲,单片机就是一块硅片上集成的微处理器、存储器及各种输入/输出接口的芯片,这样一块芯片就具有了计算机的属性,因此被称为...
  • insrat
  • insrat
  • 2013年12月04日 11:35
  • 544

单片机学习路线

单片机怎么学,学哪款单片机呢?(大一大二)入门级推荐学习51单片机。因为——51单片机简单易上手资料多,当然最最重要的是,本人发现了51单片机的一套秒杀本人接触过的所有教程的资料——金沙滩宋老师的手把...
  • qq_38374716
  • qq_38374716
  • 2017年06月15日 22:18
  • 254

单片机学习方法总结

从刚开始接触单片机,到现在已经有4年的时间了,在这期间学习和使用了51单片机、飞思卡尔单片机,LPC2138,PIC16F887等系列的单片机,每接触一款单片机,都会经历熟悉其基本开发,然后将其用于项...
  • xiaoweiboy
  • xiaoweiboy
  • 2011年07月25日 22:24
  • 3975

单片机学习资料整理

【单片机论坛】          21IC中国电子网:www.21ic.com    包括其论坛:bbs.21ic.com     中国电子开发网:http://www.amobbs.co...
  • u014303487
  • u014303487
  • 2015年05月18日 14:25
  • 160

很好的单片机学习心得,值得任何编程读完

一直想写一个帖子,将自己学习单片机的经历、经验和方法总结一下,今天终于动手写了,呵呵,这是我学习单片机的经验、心得、方法。希望对大家学习单片机有所帮助。 经常在群、论坛里看到有人问:怎么学单片机?也...
  • mingtianhaiyouwo
  • mingtianhaiyouwo
  • 2016年01月29日 00:12
  • 1380

如何学习单片机

还是有很多人问,怎样学单片机。 有的学校先教汇编,再教C,但我认为,先学C,再到汇编会比较好,因为汇编枯燥难学,导致单片机还没用起来,兴趣就消减一大半了。正如linus那句话,你得先学会使用它。 一、...
  • k331922164
  • k331922164
  • 2015年03月27日 19:35
  • 2156

C#做网站求教

C#做网站 选择了母版页之后的web窗体 想在设计视图里面添加设计,但是鼠标却无法点击,而且显示一个红颜色禁止的圈圈,想请教各位前辈是怎么回事,很急。...
  • qq_36500641
  • qq_36500641
  • 2018年01月09日 14:31
  • 18

ROS学习(二)ROS入门简介

(在ubuntu下编辑可能效果不太好) 构建一个包必须包含两个文件:    package.xml    CMakeLists.txt 步骤: cd ~/catkin_ws/src ...
  • zhangxiao93
  • zhangxiao93
  • 2015年07月17日 17:11
  • 704

单片机学习总结1

下面主要介绍一下如何运用已经存在的程序让单片机工作。   1、上图标注的为单片机的USB串口下载口,首先用数据线将单片机的串口和电脑相连。 2、打开光盘中的自带文件夹——找到应用驱动文件...
  • caomei_hbut
  • caomei_hbut
  • 2017年01月05日 10:28
  • 282

从单片机初学者迈向单片机工程师(对初学者非常有用)

出处:http://blog.csdn.net/supreme42/article/details/6771227 --------------------------cn-------------...
  • wuhenyouyuyouyu
  • wuhenyouyuyouyu
  • 2016年10月15日 18:13
  • 2570
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单片机的学习——入门篇(2)
举报原因:
原因补充:

(最多只允许输入30个字)