`
海王子1994
  • 浏览: 45200 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

51单片机入门(1)

 
阅读更多

         对于单片机初学者而言,从51单片机入手无非是最佳的选择。51单片机是对所有兼容Intel 8031指令系统的单片机的总称。关于51单片机的来历以及作用不作概述,下面就开始本次内容。

       首先,学习单片机要掌握以下知识:

       1)最小系统运行的必要条件:

           a.电源—— 一般采用+5V电压

           b.晶振—— 晶体振荡器,产生振荡频率

           c.复位电路——用来使电路恢复到起始状态的电路设备

        2)对任意I/O口的操作:

            a.输出控制电平的高低

            b.输入检测电平的高低

        3)定时器:一般采用方式2

        4)中断:掌握外部、定时器、串口中断几种常见类型中断

        5)通信:单片机之间、单片机与计算机之间

 

此外,我们知道51单片机的编程语言有两种,汇编语言与C语言。由于常用C语言,所以下面代码都是用C语言编写。值得说的是,单片机里用的C语言与我们平时学的C语言还是有些差别的。

 

1、声明

           sfr  特殊功能寄存器声明       例:sfr SCON=0x98;

           sfr16  sfr的16位数据声明

           sbit 特殊功能位声明             例:sbit OV=PSW^2;

 

2、赋值

     单片机里赋值是针对端口的,但是其中要通过一个变量才能实现 。

    如:     sbit  LED=P0^0;   //P0^0代表P0口的第一位,有8位,0~7

                LED=0;

 

   要通过创建LED变量,才能间接对PO口的位赋值。当然也可以整体赋值,如下:

                P0=0xfe;   //0x表示十六进制符号,这样相当于对P0口整体进行赋值

 

再谈下学习单片机所需要的开发板以及软件。一般推荐使用AduC848开发板,至于编程软件就是keil软件。

 

 

ADuC848的简要介绍详细情况请参考芯片手册。

18051-based core5V供电电压;

2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序;

3168通道Σ-ΔADC,片内有1.25V参考电压、bufferPGA

412位电压输出DACDual 16-BIT Σ-Δ DAC

532kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte)

6PLL(12.58 MHz max)(片外只需接32.768kHz晶振);

73×16位定时/计数器、看门狗定时器;

811中断源(2优先级)、11位堆栈指针;

924I/O+8模拟或数字输入;

10UARTSPII2C、高速115200波特率发生;

11Power supply monitor、上电复位、Dual 200μA激励电流源。

 

     至于keil软件的使用,附件中有word文档资料,大家可以下载浏览。

 

-----------------------------------------------------------------------------------------------------------------------------

 

     下面我讲下对于开发板与编程软件的结合学习。编程就是针对开发板上的端口位赋值,置1或者清零,从而对元器件进行控制,如控制二极管亮灭、数码管显示、蜂鸣器的鸣响。那么,你会问,我怎么知道哪些端口能控制这些器件呐?答案就是:看硬件原理图!!!!(附件里有完整学习板原理图)

 



 

   我们可以看到aduC848芯片的各个端口上标有字母,那些字母代表端口的引出部分,有些就是控制器件的电路。通过对原理图芯片的端口以及各个模块的熟悉,我们自然而然就能进行编程控制器件。

 

 

     下面,就开始谈编程部分~~

 

      同C语言一样,第一句也是先保护库文件:#include<aduc848.h>。大家都会写,那么这句到底有什么作用呢?

     我们可以选中这句话,然后单击右键再点击“open the document <aduc848.h>”,然后就会打开一个aduc848.h的文件。里面对端口赋了地址值而且对一些重要端口位赋给了变量。之后我们就可以赋值给这些变量进而赋给端口位,而不需要自己再另外设置变量。



    

   

 

接下来,再谈下一个重要的函数,延时函数,如字面意思,是用来延时的。这个函数是需要我们自己编写的,下面给出例子:

 

 

	//延时函数
void delay(uint z)
{
	   uint x,y;
	   for(x=z;x>0;x--)
	     for(y=150;y>0;y--);
}

   注意,前面其实有了定义#define uint  unsigned int,故这里用uint代替了数据类型unsigned int。函数里面的数据,我们可以通过设置断点进行测量,最终可以达到延时整值的效果。如 delay(5)就是延时5秒,这里“150”是我自己设的,大家要重新设才能达到上述效果。

 

下面就是控制二极管其中一位的反复亮灭的代码:

#include<aduc848.h>
 #define uchar unsigned char
 #define uint unsigned int
  sbit Led=P0^0;		  //设置变量,控制二极管灯的亮灭
  void delay(uint z);
  
void main()
{
	while(1)
	{
		delay(10);
		Led=0;	     //二极管灯亮
	    delay(10);
		Led=1;		 //二极管灯灭
	}
}

	//延时函数
void delay(uint z)
{
	   uint x,y;
	   for(x=z;x>0;x--)
	     for(y=150;y>0;y--);
}

 

 

 

 

 

 

 

  

 

 

 

 

 

    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 439.6 KB
  • 大小: 248.7 KB
  • 大小: 15.9 KB
1
0
分享到:
评论

相关推荐

    51单片机入门详细教程

    51单片机入门详细教程 郭天祥完整单片机入门教程 使使用者一周能 入门

    c51单片机入门教程

    通过这个【C51单片机入门教程】,初学者可以逐步掌握51单片机的编程和应用,为后续的嵌入式系统学习打下坚实的基础。同时,由于描述中提到教程内容简洁明了,非常适合自学,有助于提高学习效率。

    51单片机基础入门.pdf

    【51单片机基础知识】 51系列单片机是微控制器领域中极其经典的一款,源于Intel公司的MCS-51系列。这个系列的特点在于其广泛的兼容性,使得许多厂商如Atmel、Silicon Laboratories和STC等都有生产与之兼容的产品。...

    51单片机入门小程序集锦

    这个压缩包名为"51单片机入门小程序集锦",显然包含了一系列针对新手的实践教程,通过这些小程序,学习者可以更好地理解和掌握51单片机的基本操作。 首先,让我们来看看LED控制。LED(Light Emitting Diode)是发光...

    51单片机从入门到精通.pdf

    "51单片机从入门到精通.pdf" 这本书是针对初学者设计的,旨在引导读者逐步掌握单片机的基本概念、操作和应用。51系列单片机,特别是MCS-51,是学习单片机的常用平台,因为其结构简单、资源丰富,适合初学者进行实践...

    51单片机入门学习

    标题“51单片机入门学习”暗示了我们要探讨的是51系列单片机的基础知识,主要包括硬件结构、编程语言、基本操作以及应用实例。51单片机基于Intel的8051微处理器,采用C51或汇编语言进行编程。对于新手来说,理解...

    51单片机入门常用函数

    51单片机入门级别常用函数,主要包括I/O口、定时器、计数器、中断、通信等。

    51单片机及C语言入门_C语言_单片机_51单片机C语言_51单片机_

    51单片机是嵌入式系统中的一种经典微控制器,因其硬件结构简单、功能实用且性价比高,常被用于初学者的入门教学。本文将深入探讨51单片机与C语言结合进行下位机开发的相关知识点,帮助读者从零开始掌握单片机编程。 ...

    51单片机入门(一个还算可以的资源)

    【51单片机入门教程】是一份专为初学者设计的资源,旨在帮助那些希望踏入单片机编程领域的朋友们快速上手。51单片机是微控制器领域中的经典型号,广泛应用于各种电子设备中,是学习嵌入式系统的基础。 这份教程可能...

    51单片机入门程序全集

    【51单片机入门程序全集】是一个适合初学者学习51单片机编程的资源集合,其中包含了各种基础的程序示例,帮助新手掌握单片机的基本操作和编程技巧。 51单片机是一种广泛应用的微控制器,基于Intel 8051内核,具有8...

    51单片机入门C语言程序

    《51单片机入门C语言程序:从零开始的探索之旅》 51单片机,作为微控制器领域的一款经典设备,以其丰富的资源、易学易用的特点,深受电子爱好者和初学者的喜爱。本教程将围绕“51单片机入门C语言程序”这一主题,带...

    C51单片机入门教程

    C51单片机入门教程是一份针对初学者设计的教育资源,由大虾电子出品,旨在帮助新手快速理解和掌握C51单片机的基本概念、编程及应用。这份教程共包含30个章节,涵盖了从基础到进阶的多个主题,以PDF格式呈现,易于...

    51单片机轻松入门_基于STC15W4K系列(C语言版)

    1. **51单片机架构**:了解51单片机的基本结构,包括CPU、内存(RAM和ROM)、输入/输出端口、定时器/计数器、中断系统等,理解它们的工作原理和功能。 2. **STC15W4K系列特性**:深入学习STC15W4K系列的特点,如...

    51单片机C语言入门简单30例

    本教程“51单片机C语言入门简单30例”旨在帮助初学者快速掌握51单片机的C语言编程技巧,通过实际的例程来提升理解和应用能力。 首先,我们要了解51单片机的基本结构,它包含中央处理器(CPU)、存储器(包括ROM和...

    51单片机入门级程序

    这个“51单片机入门级程序”是一个适合初学者的项目,它涉及到LED(发光二极管)的控制以及51单片机的基本操作。下面我们将深入探讨相关的知识点。 首先,我们要了解51单片机的基本结构。51单片机主要包括CPU(中央...

    51单片机c语言简单入门教程

    51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程...

Global site tag (gtag.js) - Google Analytics