单片机基础知识介绍

第一节、机基础知识
一、单片机概念
1、单片机:在一片集成电路芯片上集成微处理器(cpu)、存储器(rom和ram)、i/o接口电路,从而构成了单芯片微型计算机,即单片机(single chip microcomputer)也叫微控制器(mcu)。
cpu( central processing unit ):由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
ram( random-access memory ):用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
rom (read-only memory):用以存放程序、一些原始数据和表格;
i/o(input/output)口:四个8位并行i/o口,既可用作输入,也可用作输出;
t/c (timer/counter):两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
intel公司1980年推出了mcs-51系列单片机:集成 8位cpu、4k字节rom、128字节ram、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64k,并有控制功能较强的布尔处理器。
80c51是mcs-51系列中的一个典型品种;其它厂商以8051为基核开发出的cmos工艺单片机产品统称为80c51系列。主要的80c51单片机
intel:80c31、80c51、80c32、80c52、87c52
atmel:at89c51、at89c52、at89c2051等;
stc:89c51、89c52、90c51、stc15w
philips:p80c54、p80c58、p87c54
华邦:w78c54、w78c58、w78e54
siemens:c501-1r、c513a-h
等公司的许多产品 。
芯片封装简介
单片机用途
凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80c51,arm等
工业自动化:数据采集、测控技术。
智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。
消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、ic卡、汽车电子设备等。
通讯方面:调制解调器、程控交换技术、手机、小灵通等。
武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。
学习51单片机c语言编程基本知识电平特性
数字电路中只有两种电平:高和低
单片机为ttl电平: 高 +5v 低 0v
rs232电平:计算机的串口 高 -12v 低+12v
所以计算机与单片机之间通讯时需要加电平转换芯片max232等其他芯片
二进制
数字电路中的两种电平特性决定了它使用二进制运算
十进制十六进制二进制十进制十六进制二进制
0 0x0 0000 1 0x1 0001
2 0x2 0010 3 0x3 0011
4 0x4 0100 5 0x5 0101
6 0x6 0110 7 0x7 0111
8 0x8 1000 9 0x9 1001
10 0xa 1010 11 0xb 1011
12 0xc 1100 13 0xd 1101
14 0xe 1110 15 0xf 1111
二进制逻辑运算
逻辑变量 : 只有两个:“0”(假)和“1”(真)。
逻辑“与”(逻辑乘)运算l=a·b 或者 l=a∧b
“与”的运算法则为:
0·0=0 , 0·1=0 ,
1·0=0 , 1·1=1
a·0=0,a·1=a,a·a=a
逻辑“或”(逻辑加)运算l=a+b 或者 l=a∨b
“或”的运算法则为:
0+0=0 , 0+1=1
1+0=1 , 1+1=1
a+0=a ,a+1=1 ,a+a=a
逻辑“非”(逻辑取反)运算l= a
“非”的运算法则为:
0 = 1 ,1 = 0
a + a = 1 ,
a·a = 0 ,a = a
“异或”
其运算规则是:
c语言基本数据类型
基本语法
变量定义
数据类型 变量名
int num1;
double num2 = 2;
unsigned short num3;
if()语句
if(条件){分支}
if(条件){分支1}else{分支2}
if(x>=0)
{
y=y/2;}
else
{
y=y*x;}
while()语句
while(条件){循环体}
while(i2.x v 低电平'0' -3v ~ -15v 低电平'0' < +3v~ +15v
usb转串口通信
串行通信的基本概念
异步通信与同步通信
1、异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。
异步通信的数据格式 :
异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。
串行通信的错误校验
1、奇偶校验
在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。
2、代码和校验
代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。
循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。
传输速率与传输距离
1、传输速率
比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位×240个/秒 = 2400 bps
2、传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。当传输线使用每0.3m(约1英尺)有50pf电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当比特率超过1000 bps 时,最大传输距离迅速下降,如9600 bps 时最大距离下降到只有76m(约250英尺)。
三种基本通信类型
单工通信:只允许一方向另外一方传送信息,另一方不能回传信息,比如电视遥控器、收音机广播等。
半双工通信:数据可以在双方之间传播,同一时刻只能其中一方发给另外一方,比如对讲机就是典型半双工。
全双工通信:发送数据的同时也能够接收数据,两者同步进行,比如我们的电话通信。
80c51的串行口
有两个物理上独立的接收、发送缓冲器sbuf,它们占用同一地址99h ;接收器是双缓冲结构 ;发送缓冲器,因为发送时cpu是主动的,不会产生重叠错误。
scon——串行控制寄存器的位分配(地址0x98、可位寻址)
scon——串行控制寄存器的位描述
sm0和sm1为工作方式选择位,可选择四种工作方式:
sm2,多机通信控制位,主要用于方式2和方式3。当接收机的sm2=1时可以利用收到的rb8来控制是否激活ri(rb8=0时不激活ri,收到的信息丢弃;rb8=1时收到的数据进入sbuf,并激活ri,进而在中断服务中将数据从sbuf读走)。当sm2=0时,不论收到的rb8为0和1,均可以使收到的数据进入sbuf,并激活ri(即此时rb8不具有控制ri激活的功能)。通过控制sm2,可以实现多机通信。
在方式0时,sm2必须是0。在方式1时,若sm2=1,则只有接收到有效停止位时,ri才置1。ren,允许串行接收位。由软件置ren=1,则启动串行口接收数据;若软件置ren=0,则禁止接收。
tb8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。
在方式0和方式1中,该位未用。
rb8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若sm2=0,则rb8是接收到的停止位。
ti,发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使ti置1,向cpu发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。
ri,接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使ri置1,向cpu发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。
pcon : 电源控制寄存器 (不可位寻址)
smod:波特率选择位。当用软件置位smod,即smod=1,则使串行通信方式1、2、3的波
特率加倍;smod=0,则各工作方式的波特率加倍。复位时smod=0。
smod0:帧错误检测有效 控制位。当smod0=1,scon寄存器中的sm0/fe位用于fe(帧错误检测)功能;当smod0=0,scon寄存器中的sm0/fe位用于sm0功能,和sm1一起指定串行口的工作方式。复位时smod0=0
串口通信程序的基本步骤
1、配置串口为模式1。
2、配置定时器t1为模式2,即自动重装模式。
3、根据波特率计算th1和tl1的初值,如果有需要可以使用pcon进行波特率加倍。
4、打开定时器控制寄存器tr1,让定时器跑起来。
80c51串行口的工作方式
方式0
方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由rxd(p3.0)引脚输入或输出,同步移位脉冲由txd(p3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。
1、方式0输出
2、方式0输入
方式1
方式1是10位数据的异步通信口。txd为数据发送引脚,rxd为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。
方式1输出
方式1输入
用软件置ren为1时,接收器以所选择波特率的16倍速率采样rxd引脚电平,检测到rxd引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当ri=0,且sm2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收sbuf,第9位(停止位)进入rb8,并置ri=1,向cpu请求中断。
方式2和方式3
方式2或方式3时为11位数据的异步通信口。txd为数据发送引脚,rxd为数据接收引脚 。
方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为scon中的tb8,接收时为rb8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器t1的溢出率决定。
波特率的计算
在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器t1的溢出率来决定。
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。
方式0的波特率 = fosc/12
方式2的波特率 =(2smod/64)· fosc
方式1的波特率 =(2smod/32)·(t1溢出率)
方式3的波特率 =(2smod/32)·(t1溢出率)
当t1作为波特率发生器时,最典型的用法是使t1工作在自动再装入的8位定时器方式(即方式2,且tcon的tr1=1,以启动定时器)。这时溢出率取决于th1中的计数值。
t1 溢出率 = fosc /{12×[256 -(th1)]} 在单片机的应用中,常用的晶振频率为:12mhz和11.0592mhz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。
串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:
确定t1的工作方式(编程tmod寄存器);
计算t1的初值,装载th1、tl1;
启动t1(编程tcon中的tr1位);
确定串行口控制(编程scon寄存器);
串行口在中断方式工作时,要进行中断设置(编程ie、ip寄存器)。
第六节、液晶显示
1602液晶
工业字符型液晶,能够同时显示16x02即32个字符。1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义cgram,显示效果也不好)。1602lcd是指显示的内容为16x2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于hd44780液晶芯片的,控制原理是完全相同的,因此基于hd44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
管脚功能
1602采用标准的16脚接口,其中:
第1脚:gnd为电源地
第2脚:vcc接5v电源正极
第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10k的电位器调整对比度)。
第4脚:rs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:rw为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:e(或en)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:d0~d7为8位双向数据端。第15~16脚:空脚或背灯电
源。15脚背光正极,16脚背光负极。
特性
3.3v或5v工作电压,对比度可调
内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器ddram,内建有192个5x7点阵的字型的字符发生器cgrom,8个可由用户自定义的5x7的字符发生器cgram,应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
操作控制
注:关于e=h脉冲——开始时初始化e为0,然后置e为1。
字符集
1602液晶模块内部的字符发生存储器(cgrom)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“a”的代码是01000001b(41h),显示时模块把地址41h中的点阵字符图形显示出来,我们就能看到字母“a”。在单片机编程中还可以用字符型常量或变量赋值,如'a’。因为cgrom储存的字符代码与我们pc中的字符代码是基本一致的,因此我们在向ddram写c51字符代码程序时甚至可以直接用p1=‘a’这样的方法。pc在编译时就把'a'先转换为41h代码了。
字符代码0x00~0x0f为用户自定义的字符图形ram(对于5x8点阵的字符,可以存放8组,5x10点阵的字符,存放4组),就是cgram了。
0x20~0x7f为标准的ascii码,0xa0~0xff为日文字符和希腊文字符,其余字符码(0x10~0x1f及0x80~0x9f)没有定义。
1602的16进制ascii码表地址:读的时候,先读上面那行,再读左边那列,如:感叹号!的ascii为0x21,字母b的ascii为0x42(前面加0x表示十六进制)。
8051模拟口接法
第七节、点阵led显示
8*8点阵外型和结构
8x8点阵led工作原理说明 :8x8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就 会点亮;因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,实现柱的亮的方法如下:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。
第八节、红外遥控
信号调制原理
基带信号:从信号源发出没有经过调制的原始信号,特点是频率较低,信号频率从0开始,频谱较宽。
调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个信号去装载另一个信号。
红外遥控发送接收原理图
nec协议红外遥控器
nec数据格式:引导码、用户码、用户码(或者用户码反码)、按键键码和键码反码,最后一个停止位。
引导码:9ms的载波+4.5ms的空闲。
比特值“0”:560us的载波+560us的空闲。
比特值“1”:560us的载波+1.68ms的空闲。
第九节、ad、da转化
a/d和d/a的基本概念
模拟量:任何两个数字之间都有无限个中间值,所以称之为连续变化的量,也就是模拟量。
数字量:数字间有一定的间隔,不是连续的,即离散的量称之为数字量。
a/d:analog to digital converter,用模数转换器实现模拟量到数字量的转换,简称adc。
d/a:digital to analog converter,用数模转换器实现数字量到模拟量的转换,简称dac。
a/d的主要指标
1、adc的位数:1个n位的adc表示这个adc共有2的n次方个刻度。
2、基准源:也叫做基准电压,是adc的参考基准。
3、分辨率:数字量变化一个最小刻度,模拟信号的变化量,定义为满刻度量程与2n-1的比值。
4、inl(积分非线性度)和dnl(差分非线性度)
inl是指adc器件在所有数值上对应的模拟值,和真实值之间误差最大的那个点的误差值,单位是lsb。lsb(least significant bit)是最低有效位的意思,它实际上对应的就是adc的分辨率。 dnl是指adc相邻两个刻度之间最大的差异,单位也是lsb。5、转换速率:是指adc每秒能进行采样转换的最大次数,单位是sps。
第十节 、实时时钟ds1302
ds1302实时时钟芯片
ds1302寄存器介绍
ds1302单字节写操作时序
ds1302单字节读操作时序

随着智能安防的发展 视频监控生态链也在不断完善和升级
区块链和人工智能对未来金融业会带来什么影响
减速机轴承座磨损原因及修复方法
软通动力荣登首届“蓝鲸50·全球大企业开放式创新50强”榜单
基于DSP TMS320LF2407控制芯片的不对称混合多电平逆变器
单片机基础知识介绍
动圈式话筒音头性能的简易判断
通过工业互联网平台实现设备到云端的数据通信和管理
恒温冷却台 TEC温度控制系统 ATTP1A
MAX 150KTL3-X LV工商业逆变器组串设计参考
嵌入式机器人是什么以及如何使用
如何保证PCB电路板铣加工的
物联网落地受益于芯片 谁将主宰半导体行业
什么是堆叠交换机
自制木质Hi-Fi耳机DIY图解
磐石测控:PS-2205S-RS螺丝扭力测试仪的参数情况?
Lytx增强型机器视觉与AI风险探测技术解决分心驾驶问题
智能控制系统的应用
ESD电流路径的分析
如何利用汽车防火墙来实现车载入侵防御