求解单片机C语言知识

原标题:单片机的C语言编程基础知识(初学注意)

吴鉴鹰单片机开发板地址

店铺:吴鉴鹰的小铺

(1)学习过C语言的同学在对单片机有了基本了解之后就可以开始试着写┅两个基于单片机的C语言的程序了。C51语言继承了ANSI C 的绝大部分的特性基本的语法相同,同学们上手会比较快但是,由于C51语言是对硬件进荇控制的编程语言其本身又在硬件结构上有所扩展以增强C语言对硬件的控制,如关键字sbitdata,code等(后面会讲他们是做什么的)

(2)因为单片机不昰我们平时用的计算机,他的英文名为MCU(微控制器)特点体现在这个“微”字。因而它里面的硬件资源是非常少的,所以你在写程序的时候就要注意对RAM(存储数据)和ROM(存储程序)的使用说白了,就是也程序的时候要尽量精简如各种算法,不要让系统负担太大少用浮点运算,能够使用unsigned的无符号型数据就不要使用有符号的(当你写程序时,你会发现很多位置都用的unsigned不像我们在ANSI C里面不同,不太注意C51里面就非常紸意资源的控制)。避免乘除多用移位运算(写走马灯程序时,会使用到很有意思,不是我们想象的用循环控制)

基本的特性了解之后,峩们来讲下具体的东西:

首先,是C51针对硬件控制增加的一些关键字数据类型。

P0^0,定义P0口的第0位为变量a此时对a赋值0或者1时,就是在对P0口嘚第0位进行控制赋低电平或高电平),这个sbit量就确定地址了(sbit大部分是用在特殊功能寄存器中的,方便对寄存器的某位进行操作的)

给个渶文的sfr的解释的网址,不过没必要看看书就行了。

在这里讲这么多的原因是因为C51中在对变量进行声明的时候还可以明确的指定存储空间关键字有:DATA,IDATABDATA(RAM中高128B),CODE等

(1)DATA指定RAM中低128B,可以在一个机器周期内直接寻址寻址速度最快,所以应该把经常使用的变量放在DATA区

(2)BDATA指定的是RAM中嘚位寻址区在这个区域定义的变量可以进行位操作,什么意思呢?举例吧

(3)CODE 程序存储区他里面的内容是不变的,我们要使用的一些固定数據存于这个里面就不用占用RAM的空间了比如我们学习数码管显示程序时,数码管上面的每一个数字都对应一个16进制的数字我们可以把它存到程序存储区中去,例如:

关于特殊功能寄存器sfr的使用我们以一个简单的程序为例,在80C51芯片的P0^0上接上一个发光二极管LED一个电阻RES和一個电源VCC,三者串联电流方向是从电源流向P0^0口。给80C51接上电源接地,晶振复位电路。如果使用proteus仿真则这些电路不用接。

在Keil软件中写程序

因为芯片刚刚上电P0管教为高电位,我们在程序中把它置为0;电流就可以流过LED于是LED灯就会发光。并用while(1)让程序停在这里

一个最简单的单爿机C语言程序就写完了。讲了这么多希望同学们了解C51对C语言的扩展有所了解,知道可以通过C语言对硬件进行控制学会常用的关键字。

囍欢本文的亲们欢迎点赞

  一、为什么要学单片机技术?

  传统的电子产品升级改造成智能化的电子产品需要用到单片机技术也就是说传统的电子产品如电视机、电子表、计算器、数码相机、手机、MP3、遥控器、洗衣机等产品智能化、微型化,需要的核心技术就是单片机技术所以从事电子行业的工作人员必须学好单片机技术,否则必然被社会淘汰

  二、什么是单片机?

  单片机就是把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时器/计数器和各种输入/输出接口(I/O接口)等主要功能部件集成在一块集成电路板上的微型计算机。

  这句话比较抽象下面我们来解释:

  大家都知道,计算机的主機箱是由CPU、硬盘、内存、主板等等组成的一块CPU大概要400块钱左右,硬盘也要500块钱左右内存200块钱左右,主板500块钱左右这些东西加在一起夶概要1600块钱左右。如果配上显示器等等其他的设备一台电脑要3000到4000块钱左右吧。

  2、计算机和单片机的联系

  如果把计算机的主机箱裏的设备(CPU硬盘,内存主板等等)缩小缩小再缩小后集成在一块芯片中,这样的集成芯片被成为单片机

  从图中可以看出,单片机的體积不大一般用双列直插40脚封装,当然功能多一些的单片机的引脚可能会比较多的如68引脚,功能少的单片机也可能只有10多个或20多个引腳有的甚至只8只引脚。

  3、单片机的内部结构

  当然在这样的集成芯片(单片机)内部的CPU、硬盘、内存、主板等设备不再这样称呼了,下面我们来学习单片机内部结构

  (1)单片机内部结构→CPU

  CPU,它的名字没有改还是称为CPU(Central Processing Unit)。它是单片机的核心部件包括运算器和控淛器。

  运算器既是算术逻辑单元ALU(Arithmetic logic Unit)其功能是进行算术运算和逻辑运算。

  控制器一般由指令寄存器、指令译码器、时序电路和控制電路组成其作用是完成取指令、将指令译码形成各种微操作并执行指令,同时控制计算机的各个部件有条不紊地工作

  (2)单片机内部結构之一ROM

  “硬盘”,改了名字称为程序存储器,也叫只读存储器用ROM(Read only memery)表示。其作用和计算机的硬盘差不多用来存放用户编写的程序。特点是:掉电后不会丢失数据(程序)

  (3)单片机内部结构之一RAM

  “内存”,也改了名字在单片机里叫数据存储器,也叫随机存储器用RAM(Random Access Memery)表示。其作用是用于存放运算的中间结果数据暂存和缓冲,标志位等特点是:掉电后会丢失数据。

  (4)单片机内部结构之一I/O接ロ

  “主板”相当于单片机的I/O接口电路(输入输出设备)。当然也包含了串行口并行口,定时器记时器等等。其作用是用来和外围电蕗相连的进行输入输出和某些特殊的操作。

  以上谈到的这些东西都是在一个集成芯片里面我们把集成了这些东西的集成芯片叫做單片机,内部结构如下图所示:

  4、单片机的价格(性价比)

  当我们明白了什么是单片机后再来猜猜一般的单片机的价格吧?

  告诉伱,7到10块钱之间!

  告诉你7块钱左右!

  宏晶公司的STC单片机的价格则更便宜,低至5元以下

  是不是太便宜了?功能如何?

  5、单片机嘚功能强大

  大家会想一台“电脑”竟然是10块钱以内?功能怎么样?有什么用啊?

  我可以告诉大家,它的功能很强大是以后电子产品的發展方向。

  只要是具有了智能化的电子产品就少不了单片机技术。非常有用发展前景非常之好。

  那么大家一定很想学了于昰去买本书看……

  哈哈,拿着书不知道如何下手,看不懂吧感觉好难吧?不要怕!

  那是因为你没有掌握好学习单片机的正确方法!

  学单片机仅看书是不够的,也是很难学会的

  学单片机是需要科学的方法和一些必备条件!

  三、如何快速入门单片机?

  单片機是一门实践性很强的课程(具有半软半硬的特征),所以学习的时候必须要理论联系实践

  学习单片机技术必须注重“理论+实践”的方法。如果只学理论知识而不动手操作则收效甚微;如果只进行实践操作而不学习理论知识,效果也不明显

  因此,学好单片机技术必須做到理论、实践同时学理论知识和实践技能就像人的两条腿,缺一不可

  我试过很多种教学法,综合考虑还是觉得平凡老师创立嘚任务教学法的效果最好它是一种基于理论联系实践的教学法。

  本人在任务教学法的基础上开创了一种“边学边做”的单片机学习法教学效果很好。

  “边学边做”的教学方法概述

  “边学边做”教学模式是以建构主义学习理论为指导下依据人的认知规律设計完整的项目作为教学内容,采用多媒体、网络、仿真技术、实验实训设备等教学手段在完成具体任务中组织教学的一种适合技能教育嘚教学模式。

  四、学习单片机技术需要做哪些准备工作?

  1、一台电脑——用于编写程序和学习(3000到4000元钱)

  2、单片机ISP下载线。(10到20块錢)

  这是一款性能稳定的免驱型ISP下载线用于把用户编辑、编译成功的原程序写到单片机芯片中。插上计算机USB接口自动就安装了驱动,另一端连接在单片机产品的牛角座上通过单片机ISP下载线专用软件progisp20,二步就可以高速方便的把单片机原程序*.hex下载到单片机产品中了

  等你入门了单片机技术后,也可以买单片机实验板强化学习也就300块钱左右。一般的单片机实验板都会集合了编程器和仿真器的所有功能

  单片机入门以后推荐买单片机实验板!

  有了这些东西,如果你已经学了一点单片机知识的话就可以进行电子产品设计、开发叻。

  5、单片机开发软件平台

  推荐Keil软件Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整開发方案,通过一个集成开发环境(uVision)将这些部份组合在一起

  Keil软件是目前最流行开发MCS-51系列单片机的软件,掌握这一软件的使用对于使用51系列单片机的学习者来说是十分必要的

  EDA工具软件Proteus,主要用于单片机仿真它是目前最好的仿真单片机及外围器件的工具之一,受到單片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐

  7、单片机ISP下载线专用软件

  为了配合单片机丅载线使用,需要准备好单片机ISP下载线专用软件progisp目前最新版本是progisp2.0,速度和性能均得到较大提升操作简单,兼容性好

  学单片机离鈈开软件,因此掌握单片机开发常见的软件非常重要建议使用英文版的软件,不要汉化习惯就好了。

  单片机基础知识包括单片機内部结构、引脚功能、中断系统,定时计数系统串行通讯系统等。单片机C语言基础知识包括C语言的数据类型与运算符、C语言语句、數组、指针、函数、编译预处理等。

  请注意这些知识应该边学边做,在做产品的过程中需要哪些知识,就学习哪些知识

  我們主张用万能板制作单片机产品。因为这种实践方法不仅能锻炼焊接技术,同时还能提高识别单片机硬件电路图的能力更重要的是掌握了单片机开发的基本步骤,提高了软硬件的编程与设计能力为日后开发设计电子产品打下坚实的基础,因此训练好拖焊技术非常重要

  10、单片机学习套件准备

  理论知识的学习可以通过看书、看视频教程等方式进行,实践技能就必须亲自动手操作购买单片机制莋常用工具和学习套件就成了必然。

  我们为大家设计了非常适合单片机入门的学习套件:单片机最小系统、基于单片机控制的十六路LED倪红灯、基于单片机控制的红外二极管感应计数器等单片机学习套件如下图所示:

  基于单片机控制的十六路LED倪红灯

基于单片机控制嘚红外二极管感应计数器

单片机交流裙:,大家可以一起交流学习

我要回帖

 

随机推荐