51单片机学习:点亮一个LED灯

        我在大学专修的是软件设计,除了通过计算机组成原理系统的了解了下微机原理,以及做数学实验的时候接触过单片机实验板外,对单片机的认识非常少。最近因为公司需要,开始接触单片机。因为我参与的主要是51单片机的项目,因此我将把自己学习51单片机C语言编程的过程记录下来,方便以后查缺补漏以及作为单片机初学者的参考资料。

什么是单片机

        什么是单片机?单片机就是在一块硅片上集成了微处理器(CPU),存储器(RAM,ROM,E-PROM)和各种输入、输出接口(定时器/计数器,并行I/O口,串行口,A/D转换器以及脉冲调制器PWM等),这样一块芯片具有一台计算机的属性,因而被称为单片微型计算机,简称单片机。

        单片机主要应用于测控领域,用以实现各种测试和控制功能,为了强调其控制属性,在国际上,一般把单片机称为微控制器MCU(MicroController Unit)。而在我国则比较习惯于使用“单片机”这一名称。

        由于单片机应用时通常是处于被控制系统的核心地位并嵌入其中,为了强调其“嵌入”的特性,也常常把单片机称为嵌入式控制器EMCU(Embedded MicroController Unit)。

        单片机按照其用途可分为通用型和专用型两大类。

        通用型单片机具有比较丰富的内部资源,性能全面且适应性强,能覆盖多种应用需求。用户可以根据需要设计成各种不同应用的控制系统,即通用单片机有一个再设计的过程。通过用户的进一步设计,才能组建成一个以通用单片机芯片为核心再配以其它外围电路的应用控制系统。通常所说的单片机是指通用型单片机。

        然而在单片机的测试应用中,有许多时候是专门针对某个特定产品的,例如,打印机控制器和各种通讯设备和家用电器中的单片机等。这种“专用”单片机针对性强且用量大,为此,厂家常与芯片制造商合作,设计和生产专用的单片机芯片。由于专用的单片机芯片是针对一种产品或一种控制应用而专门设计的,设计时已经对系统结构的最简单化、软硬件资源利用的最优化、可靠性和成本的最佳化等方面都作了通盘的考虑和设计,所以专用的单片机具有十分明显的综合优势。

        今后,随着单片机应用的广泛和深入,各种专用单片机芯片将会越来越多,并且必将成为单片机发展的一个重要方向。但是,无论专用单片机在应用上有多么“专”,然而其原理和结构都是通用单片机为基础的。(摘自《新编MCS-51单片机应用设计》)

工具与参考资料

  1. C语言教材:很多人都推荐清华出版社的那本教材,但个人更倾向于《C语言程序设计-现代方法》,这本书不仅有C语言的基础特性,还介绍了C99的新特性以及函数库,尤其对许多C语言的一些机制进行了详细的讲解,如果不想局限于单片机C语言程序设计,还想涉猎嵌入式系统或者驱动程序开发,这本书非常适合;
  2. 单片机教材:《新概念51单片机C语言教程》,《新编MCS-51单片机应用设计》;
  3. 开发工具:Keil uVersion系列,Proteus系列
  4. 开发板:TX-1C开发板、TX-1C开发板仿真程序

        说明:以上除了TX-1C开发板外,其余都可以在网上找到,对于有经济实力的还是推荐支持正版。其次安装Proteus的时候请注意要将Program Path与Program Data的路径设成一致,如果想用Keil 与Proteus实现联机调试,网上有教程。最后,通篇我将采用TX-1C开发板仿真程序,省去了烧录步骤以及方便调试。

点亮LED灯

//点亮LED灯是拉高电平还是拉低电平是由具体的外围电路决定的,因此该程序只是作为参考
//用位设定点亮第一个LED灯
#include <reg52.h>

sbit firstLED=P1^0;

void main(void)
{
	firstLED=0;
}

//点亮LED灯是拉高电平还是拉低电平是由具体的外围电路决定的,因此该程序只是作为参考
//用设定总线的方式点亮2、4、6、8的LED灯
#include <reg52.h>

void main(void)
{
	P1=0x55;	//01010101
}



你可能感兴趣的:(单片机)