一、LED指示灯
74HC138:三八译码器。
74HC573:锁存器。
非反转:左边输入什么,右边对应输出什么。
互斥的低有效输出:只有一路是低电平,其余七路是高电平。
LE(使能端)为高电平时D端和Q端连接。LE为低电平时输出端原有的数据会保留,此时D端和Q端不连接,左边数据的改变不影响右边。
74HC02:或非门。若选择WR和P36则是存储器映射的模式,若是WR和GND模式则是IO口开发模式。
或门:只要输入中有一个为高电平时(逻辑1),输出就为高电平(逻辑1);只有当所有的输入全为低电平时,输出才为低电平。
与门:当所有的输入同时为高电平(逻辑1)时,输出才为高电平,否则输出为低电平(逻辑0)。
非门:当其输入端为高电平(逻辑1)时输出端为低电平(逻辑0),当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。
或非门是或门与非门的结合,及都为0则输出1,有一个及以上的1则输出0。
二、蜂鸣器和继电器电路
ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成,每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。 里面含有非门。
A0对应A,A1对应B,A2对应C。CBA控制Y0到Y1输出低电平。CBA对应的Y管脚为低电平。只是那一个为低电平,其余为高电平。
三、共阳数码管
com是公共端,是段选(即一次可控制所有)。 及根据数码管共阳还是共阴来给com口高还是低电频。共阳给高电频。
a~dp端是位选,一次只能影响一个。
四、独立按键
按键按下后与地相接此时P30~P33口是低电频。
五、矩阵键盘
如上图,其中管脚改变P37-->P44,P36-->P42。
弱上拉。 按键未按下时,接到VCC,按键按下后接到地,由于接地时的低电频能力比较强,VCC由于接到电阻能力较弱,所以IO口是低电频。
行输出电频,列读取电频。若按下按键,则读取到的就是输出对应的电频。
六、中断系统
中断对应入口地址
中断函数的特殊要求
1.中断函数没有返回值,也不能带参数。
2.函数名后面要跟一个关键字interrupt,说明这是一个中断函数。
3.在关键字interrupt后面要跟上中断号,说明这个中断函数是为哪个中断服务的。
七、 定时器和计数器
本质是计数器。
TH0=(65535-i)/256
TL0=(65535-i)%256
八、 PWM脉宽调制信号
脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。广泛应用在从测量、通信到功率控制与变换的许多领域中。
九、串行通信
单工:只能接或发。
半双工:可接可发,但一次只能进行一个。
全双工:可同时接和发。
波特率:串口每秒钟传输的位数。
在51单片机中需要使用定时器1来产生波特率,因此,如果使用串口通信,则定时器1就不能做其他用途,在初始化串行接口模块的时候,除了要配置SCON寄存器之外,还有根据波特率参数设置定时器1的技术初值。
TL1溢出后,TL1会自动重装,重装的值是TH1中的值。
TI置1后要置0,才能重新发送,发送数据只要在发送模式下将数据赋给SBUF即可。
接收数据成功后RI会置1,要重新置0才可继续接收,读取数据要先读取RI,若他置1,就令某一变量=SBUF,就可接收数据。
在比赛或者应用中使用的是STC15F2K602单片机,你还需要对新增的辅助寄存器AUXR进行设置,否则是无法进行串口数据收发的。如果不配置AUXR定时器1溢出后就进不了串口中断。
数据的发送通常采用查询的方式,而数据的接收则采用中断。
串口接收数据的代码是在串口中断函数中,它是实时存在的,只要定时器1溢出,就会执行,不需要在main函数中引用。开机就可以直接用。(中断函数和主函数是相对独立的,同时执行,互不干扰 ,所以在这里,执行接收数据函数不必在main中引用)