对于单片机初学者而言,从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的简要介绍详细情况请参考芯片手册。
1、8051-based core、5V供电电压;
2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序;
3、16位8通道Σ-ΔADC,片内有1.25V参考电压、buffer和PGA;
4、12位电压输出DAC、Dual 16-BIT Σ-Δ DAC;
5、32kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte);
6、PLL(12.58 MHz max)(片外只需接32.768kHz晶振);
7、3×16位定时/计数器、看门狗定时器;
8、11中断源(2优先级)、11位堆栈指针;
9、24I/O+8模拟或数字输入;
10、UART、 SPI和I2C、高速115200波特率发生;
11、Power 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--); }
相关推荐
51单片机入门详细教程 郭天祥完整单片机入门教程 使使用者一周能 入门
通过这个【C51单片机入门教程】,初学者可以逐步掌握51单片机的编程和应用,为后续的嵌入式系统学习打下坚实的基础。同时,由于描述中提到教程内容简洁明了,非常适合自学,有助于提高学习效率。
【51单片机基础知识】 51系列单片机是微控制器领域中极其经典的一款,源于Intel公司的MCS-51系列。这个系列的特点在于其广泛的兼容性,使得许多厂商如Atmel、Silicon Laboratories和STC等都有生产与之兼容的产品。...
这个压缩包名为"51单片机入门小程序集锦",显然包含了一系列针对新手的实践教程,通过这些小程序,学习者可以更好地理解和掌握51单片机的基本操作。 首先,让我们来看看LED控制。LED(Light Emitting Diode)是发光...
"51单片机从入门到精通.pdf" 这本书是针对初学者设计的,旨在引导读者逐步掌握单片机的基本概念、操作和应用。51系列单片机,特别是MCS-51,是学习单片机的常用平台,因为其结构简单、资源丰富,适合初学者进行实践...
标题“51单片机入门学习”暗示了我们要探讨的是51系列单片机的基础知识,主要包括硬件结构、编程语言、基本操作以及应用实例。51单片机基于Intel的8051微处理器,采用C51或汇编语言进行编程。对于新手来说,理解...
51单片机入门级别常用函数,主要包括I/O口、定时器、计数器、中断、通信等。
51单片机是嵌入式系统中的一种经典微控制器,因其硬件结构简单、功能实用且性价比高,常被用于初学者的入门教学。本文将深入探讨51单片机与C语言结合进行下位机开发的相关知识点,帮助读者从零开始掌握单片机编程。 ...
【51单片机入门教程】是一份专为初学者设计的资源,旨在帮助那些希望踏入单片机编程领域的朋友们快速上手。51单片机是微控制器领域中的经典型号,广泛应用于各种电子设备中,是学习嵌入式系统的基础。 这份教程可能...
【51单片机入门程序全集】是一个适合初学者学习51单片机编程的资源集合,其中包含了各种基础的程序示例,帮助新手掌握单片机的基本操作和编程技巧。 51单片机是一种广泛应用的微控制器,基于Intel 8051内核,具有8...
《51单片机入门C语言程序:从零开始的探索之旅》 51单片机,作为微控制器领域的一款经典设备,以其丰富的资源、易学易用的特点,深受电子爱好者和初学者的喜爱。本教程将围绕“51单片机入门C语言程序”这一主题,带...
C51单片机入门教程是一份针对初学者设计的教育资源,由大虾电子出品,旨在帮助新手快速理解和掌握C51单片机的基本概念、编程及应用。这份教程共包含30个章节,涵盖了从基础到进阶的多个主题,以PDF格式呈现,易于...
1. **51单片机架构**:了解51单片机的基本结构,包括CPU、内存(RAM和ROM)、输入/输出端口、定时器/计数器、中断系统等,理解它们的工作原理和功能。 2. **STC15W4K系列特性**:深入学习STC15W4K系列的特点,如...
本教程“51单片机C语言入门简单30例”旨在帮助初学者快速掌握51单片机的C语言编程技巧,通过实际的例程来提升理解和应用能力。 首先,我们要了解51单片机的基本结构,它包含中央处理器(CPU)、存储器(包括ROM和...
这个“51单片机入门级程序”是一个适合初学者的项目,它涉及到LED(发光二极管)的控制以及51单片机的基本操作。下面我们将深入探讨相关的知识点。 首先,我们要了解51单片机的基本结构。51单片机主要包括CPU(中央...
51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程51单片机c语言简单入门教程...