C语言课设项目-51单片机-51单片机介绍

简介: C语言课设项目-51单片机-51单片机介绍

  (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

学单片机需要什么基础?

什么是单片机?

单板机:

单片机:

单片机能做什么?

单片机的预备知识

电平特性

2进制与16进制的表示及转换

二进制

十六进制

二进制数的逻辑运算

“与”运算

“或”运算

“非”运算

“异或”运算

8051单片机介绍

80C51系列介绍

80C51的引脚封装

P3口第二功能各引脚功能定义:

C51基础知识

单片机工作的基本时序

机器周期和指令周期  

学单片机到底学什么

单片机IO口的结构

上下拉电阻

上下拉电阻的选取原则


单片机需要什么基础?

1.单片机与以前所学的知识关联很少;

2.只需要掌握很基本的数电模电知识,如二进制、十进制、十六进制之间的转换,与、或、非逻辑关系等;

3.对各种器件的概念基本上是从0开始;

4.如果要用C语言编程,需具备简单的C语言基础;

什么是单片机?

单板机:

将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配在一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。 如下图所示:

单片机:

在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 Intel公司推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器                                              

单片机能做什么?

工业自动化:数据采集、测控技术。

智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。

消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。

通讯方面:调制解调器、程控交换技术、手机、小灵通等。

武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。

等等…

凡是与控制或简单计算有关的电子设备都可以用单片机来实现,根据具体实际情况还可以选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等

单片机的预备知识

电平特性

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

高电平:5V或者3.3V,取决单片机电源。

低电平:0V

RS232电平:计算机串口的电平

高电平:-12V

低电平:+12V

所以当我们用单片机跟电脑通信的时候,我们要通过各种元器件将单片机的电平转换为计算机可识别的电平才能跟电脑进行通信。

2进制与16进制的表示及转换

二进制

由于数字电路中的只有两种电平的特性,计算机中使用的数字采用都是二进制的。

二进制是使用0和1两个数码来表示的数,它的基数是2,进位规则是“逢二进一”。

十六进制

十六进制的基数是F,进位规则是“逢十六进一”。

屏幕截图 2023-07-30 095332.png

二进制数的逻辑运算

“与”运算

有0得0

1&1=1 ;    1&0=0 ;    0&0=0 ;

“或”运算

有1得1

1|1=1 ;    1|0=1 ;    0|0=0;

“非”运算

1的非得0,0的非得1。

~1=0;    ~0=1;

“异或”运算

必须不同,否则没有(0)

1^1=0;1^0=1;0^0=0;

8051单片机介绍

80C51系列介绍

80C51是MCS-51系列中的一个典型品种; 其它厂商以8051为基核开发出的CMOS工艺 单片机产品统称为80C51系列。当前常用的 80C51系列单片机主要产品有: ﹡ Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; ﹡ ATMEL的:89C51、89C52、89C2051等; ﹡ Philips、华邦、Dallas 、STC    Siemens(Infineon)等公司的许多产品 。  

80C51的引脚封装

P3口第二功能各引脚功能定义:

P3.0:RXD串行口输入

P3.1:TXD串行口输出

P3.2:INT0外部中断0输入

P3.3:INT1外部中断1输入

P3.4:T0定时器0外部输入

P3.5:T1定时器1外部输入

P3.6:WR外部写控制

P3.7:RD外部读控制

总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其它部件之间的连线。 外部总线有三种: 数据总线DB(Data  Bus), 地址总线 AB(Address  Bus)和控制总线 CBControl   Bus)。

C51基础知识

CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

ROM:用以存放程序、一些原始数据和表格;

I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

五个中断源的中断控制系统;

一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;

片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。  

单片机工作的基本时序

机器周期和指令周期  

(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,我们开发板上为12MHZ。    

(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。  

(3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。    

(4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。

学单片机到底学什么

1.对I/O口的控制,无论单片机对外界进行何种控制,都是通过I/O口进行的。

2.接受外部的控制,通过I/O来感受外部的电压。

3.51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用。

单片机IO口的结构

51单片机主要使用准双向IO和开漏输出,其中开漏输出针对的是51单片机的P0口

上下拉电阻

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻起到一个限流的作用,下拉就是下拉到低电平。

1、OC门要输出高电平,外部必须加上拉电阻。

2、加大普通IO口的驱动能力。

3、起到限流的作用。

4、抵抗电磁干扰。

上下拉电阻的选取原则

1、从降低功耗方面考虑应该足够大,因为电阻越大,电流越小。

2、从确保足够的引脚驱动能力考虑应该足够小,电阻越小,电流才能越大。

3、开漏输出时,过大的上拉电阻会导致信号上升沿变缓。

相关文章
|
1天前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
10 1
|
6月前
|
编译器 C语言
C语言进阶⑯(自定义类型)项目:静态通讯录,增删查改排序打印。
C语言进阶⑯(自定义类型)项目:静态通讯录,增删查改排序打印。
49 1
|
27天前
|
C语言
【总结】单片机重点知识总结记录之C语言条件编译(五)
【总结】单片机重点知识总结记录之C语言条件编译(五)
|
5月前
|
C语言
C语言实战项目——学生试卷分数统计
C语言实战项目——学生试卷分数统计
|
5月前
|
C语言
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
69 0
|
6月前
|
C语言 C++
C语言项目(1)----扫雷小游戏的实现
C语言项目(1)----扫雷小游戏的实现
50 0
|
6月前
|
消息中间件 NoSQL Redis
C语言开源项目分析
本文分析了C语言开源项目Redis,一个用ANSI C编写的高效数据结构服务器。Redis提供丰富数据类型和命令,广泛应用于缓存、消息队列等场景。文章详细介绍了Redis的代码结构,如src目录包含服务器核心代码,deps存储依赖库,tests包含测试用例。重点讨论了事件驱动模型和数据持久化机制,并概述了Redis的技术特点,包括高效的内存管理、灵活的扩展性、优秀的性能和广泛应用场景。通过研究Redis,读者能更好地理解C语言在实际项目中的应用。
|
30天前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
32 3
|
23小时前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
16 6