单片机AT89C51--2.单片机与C语言简介

最新更新时间:2022-09-29来源: csdn关键字:单片机  AT89C51  C语言 手机看文章 扫描二维码
随时随地手机看文章

1. 单片机概述

1.1 计算机的组成

在这里插入图片描述

电脑主机基本上就靠,CPU,内存条,还有你的总线控制器(主板)组成,主板通过自己的硬件接口,连接鼠标键盘等,连接外部这些硬件设备,Modem是网络


常用MCU表示单片机。


在一块集成电路芯片上集成中央处理器CPU和存储器,IO接口,构成了单片机


ROM:相当于硬盘

RAM:相当于内存条


1.2 单片机的内部结构

在这里插入图片描述

中间的线是数据总线


可编程的IO口:

input口:单片机会连接一些外部的传感器,比如温度传感器。会输入温度数据。通过IO口的Input功能将数据输入到单片机中去。

Output口:输出指令,给LED灯,液晶屏显示等。。。


判断是不是51单片机:不是看AT89C51,52。。。这些后面的数字,后面的数字只是表示ROM的大小,51是4kb,52是8kb。判断51单片机是看内核是不是intel公司的80c51内核


1.3 封装方式

双列直插式:方便拆卸,更换

在这里插入图片描述

四面往内弯:尺寸小

在这里插入图片描述

四面往外伸:尺寸小,一般直接焊接在pcb板上

在这里插入图片描述

2. C语言基础

2.1 进制转换

十进制: 0-9


二进制: 0,1


十六进制: 0-9,A-F


2.2 C语言简介

程序执行的实质:数据之间的交换与运算


在计算机中数据的最小单位是字位(bit),比字位更大的单位是字节(byte)


1B(byte ) = 8 bit

1KB = 1024B

1 MB =1024KB

1 GB = 1024KB

1 T = 1024 GB


2.3 基本数据类型

在这里插入图片描述

有符号位的最高位是 符号位。0表示正,1表示负


2.4 标识符与关键字

标识符:标识程序中某个对象的名称。

这些对象可以是变量,函数,数组。

标识符:由数字,字母,下划线组成。第一个字符必须是字母或下划线


C语言对大小写字母敏感。


关键字:具有关键名称和特殊含义的特殊标识符。


2.5 变量与常量

变量:程序执行过程中不断变化的量。

用一个标识符表示变量名,指出他的数据类型


注意C语言中每条语句都要用 “;” 结束


格式:

数据类型 变量名


unsigned char a;

a = 5 ;


常量:永恒不变的量


2.6 常用运算符

(1) 赋值运算符 ‘’=‘’


a = 2;


(2) 算术运算符

‘+’

‘-’

‘*’

‘/’ 结果是整数 5/3 结果是1

‘%’


(3) 增量和减量运算符

’++‘

’- -‘


(4) 位运算符

‘~’ 按位取反

‘<<’ 左移

‘>>’ 右移

‘&’ 按位与。 有0就是0

‘^’ 按位异或 只要这两个值不是相同的,就是1。

不同就1,相同就0

‘|’ 按位或,有1就是1

在这里插入图片描述

(5) 关系运算符

‘>’

‘<’

‘>=’

‘<=’

‘==’ 等于

‘!=’ 不等于


(6) 逻辑运算符

’&&‘ 全为真,才为真

’||‘ 一个为真,就是真

‘!’ 取反


2.7 C51常用控制语句

(1) 条件语句


if ( a > c)

{

c = a + b;

}

else

{

a++;

}


(2) while 语句


while (条件表达式)

{

语句;

}


(3) for语句

for (初值设定表达式;循环条件表达式;更新表达式)

{

语句

}


(4) 开关语句


switch (表达式)

{

case 表达式1:

语句1;

break;

}


2.8 C51程序基本结构

#include // 包含51单片机头文件


void main()  // 主函数

{


}


注意main函数是void类型(无返回值)


3. 电子电路基础

3.1 电平特性

数字电路只有2种电平: 高电平和低电平


高电平5v

低电平0v


TTL电平信号:采用二进制,5V等价于1,0V等价与0

高电平输出电压>2.4V

低电平输出电压<0.4V


计算机串口使用的是RS232

高电平:-12V

低电平:+12V


单片机和计算机进行串口通讯,需要电平转换芯片,把RS232电平转成TTL电平 才能识别。


3.2 单片机IO口介绍

在这里插入图片描述

Vcc 电源脚

Vss 接地脚


P1.0-P1.7 P开头的叫IO口


RST 复位脚


29-31 脚基本用不到,不做什么讲解,自行百度


一共有32个IO口


XTAL1,XTAL2。外部晶振脚

在这里插入图片描述

一般我们用不到外部数据储存器,一般用P3.6和P3.7使用


3.3 初识电容电阻

电阻:102 10*10^2 1K电阻


1F = 1000 000 uF 微法

1uF = 1000nF 纳法

1nF = 1000pF皮法


开发板中:电容作用储能,滤波


3.4 初识电路原理图

在这里插入图片描述

10X104pF


网络标号:电路原理图中网络标号相同的点表示实际连接

在这里插入图片描述

3.5 单片机最小系统结构

电源:给整个系统提供能量

单片机芯片:运行程序/处理数据

晶振电路:给单片机工作提供节拍

复位电路:单片机上电时需要复位使程序重新运行

在这里插入图片描述

VCC是个网络标号,相当于电源1,5直接连接。平时4,6相连,按下后5,6相连接。


E2 470UF/16V:储能。就像本来1个LED运行,突然间100个运行会造成电压波动


C1 104:尖峰电压和浪涌电流。0V突然间到5V有很高的电流


复位:

E1,一开始导通。VCC通到RST点。E1充电到5V的时候,自动断开。RST就会和地连接。


晶振:

2个C2协助晶振起振


3.6 单片机工作的基本时序

振荡周期:也称时钟周期,为单片机提供时钟脉冲信号的振荡周期


机械周期:1个机械周期包含12个时钟周期。在一个机械周期内,CPU可以完成一个独立的操作


外部晶振频率是11.0592MHZ,1个机械周期的时间


1/11.0592M x12 = 1.085uS

在这里插入图片描述

1.B

2.D


1.相连接

2.0.543

关键字:单片机  AT89C51  C语言 编辑:什么鱼 引用地址:单片机AT89C51--2.单片机与C语言简介

上一篇:单片机AT89C51--4.LED的闪烁
下一篇:单片机AT89C51--1.前期准备

推荐阅读

STM32入门系列-使用C语言封装寄存器
前面介绍了存储器映射、寄存器和寄存器映射,这些都是为了介绍使用 C语言封装寄存器做铺垫。这里我们通过一个实例来对 C 语言封装寄存器进行介绍。具体实例:控制 GPIOC 端口的第 0 管脚输出一个低电平。首先我们需要知道GPIOC 端口外设是挂接在哪个总线上的,然后根据总线基地址和本身的偏移地址得到 GPIOC 外设基地址,最后通过这个外设基地址得到里面各种寄存器基地址。总线和外设基地址封装根据寄存器的概念,我们可以使用 C 语言中的宏定义对寄存器进行定义。具体代码如下://定义外设基地址#define PERIPH_BASE ((unsigned int)0x40000000) 1)//定义 APB2 总线基地址#define A
发表于 2022-11-18
51单片机知识重点汇总一,学单片机必须要了解的知识。
主要性能:  与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器 、 32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针、掉电标识符 。一、STC89C51单片机外部引脚简介电源及时钟引脚:Vcc(40脚)、GND(20脚)、XTAL1(19脚)、XTAL2(18脚)。Vcc、GND——单片机电源引脚,不同的型号单片机接入对应电压电源,常压为+5V,低压为+3.3V。XTAL1、XTAL2——外接时钟引脚。XTAL1为片内震荡电路的输入端
发表于 2022-11-17
学习STM32单片机,从菜鸟到牛人就是这样简单
想说,为了学习单片机而去学习单片机的思路不对。你问,如何系统地入门学习STM32?本身就是一个错误的问题。假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习。你要考虑的是, 我可以用STM32实现什么?为什么使用STM32而不是8051? 是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO? 是51的功耗太大,电池挺不住?是51的功能太弱,而你要使用SPI、I2C、ADC、DMA? 是51的内存太小而你要存储的东西太多?当你需要使用STM32某些功能,而51实现不了的时候, 那STM32自然不需要学习,你会直接去寻找STM32某方面的使用方法。比如要用spi协议的网卡、要使用串口
发表于 2022-11-16
学习STM32<font color='red'>单片机</font>,从菜鸟到牛人就是这样简单
单片机led灯闪烁实验总结_玩转51单片机(1):点亮led灯
01新建工程与点亮LED小灯,LED小灯即发光二极管,它具有单向导电性,对于发光二极管而言,需要根据它的压降与额定电流来选择合适的限流电阻,打开Keil4软件,选择Project,New uVision Project选定工程的保存路径,并给工程命名,保存类型默认.uvproj,点击保存出现如下对话框,点击下拉按钮,选择STC MCU Database,点击OK选择STC89C52RC,点击OK选择否点击New,生成一个Text1文件点击 File, Save, 出现如下对话框,将文件命名为后缀为.c的文件,默认保存类型,点击保存点击Target 1前面的加号,在Source Group 1上右击,选择Add Files to Gr
发表于 2022-11-14
<font color='red'>单片机</font>led灯闪烁实验总结_玩转51<font color='red'>单片机</font>(1):点亮led灯
STC89C52单片机学习(一)----点亮LED
1.通过数组实现led流水灯#include <reg52.h>int m;unsigned char code leds[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};void delay(unsigned int i){ unsigned int j; unsigned char k; for(j=i; j>0; j--) for(k=125; k>0 ;k--);}int main(){ while(1) { for(m = 0; m < 8; m++) { P1 = leds[m]; delay(500); } } re
发表于 2022-11-14
【51单片机】1602自定义字符原理及示例(”汉“、爱心及摄氏度示例)
原理设置1602屏幕的对比度的时候我们能够看到5*8的点阵,其实液晶显示的都是字符的字模(下图),而CGROM里面都是已经定义好的,只能读不能写,而RAM是可以读写的所以我们只要将我们自定义的字符字模写入对应的CGRAM中就好,CGRAM一共有8个对应的地址分别为(0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78),因为每个字模对应8行所以每写完一个字模以后要加8,按照指令写入CGRAM时需要加0x40所以对应地址就如上了,然而其实CGRAM的实际地址是0x00-0x07所以在后面写入数据的时候需要按照实际地址来写入。CGROM中的字模也是同样的原理 字模代码:1602显示模式为5*7点阵型,字模代码
发表于 2022-11-12
【51<font color='red'>单片机</font>】1602自定义字符原理及示例(”汉“、爱心及摄氏度示例)
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved