单片机及开发板介绍(学习笔记)

STC89C52单片机

所属系列: 51单片机系列公司:STC公司
位数: 8位

RAM: 512字节
ROM: 8K (Flash)

工作频率: 11.0592MHz(本开发板使用)

单片机及开发板介绍(学习笔记)_第1张图片

芯片电路图电源部分的电容起滤波作用,防止外接的电源电流时大时小,保证流入芯片的是稳定的电流

开发板AD/DA部分从左到右是光敏电阻,热敏电阻,电位器,单片机只能处理数字信号,要么5v要么0v,模拟信号不一定是这两个值,有高有低,所以要经过模数转换才能给单片机处理

74HC595芯片用于扩展单片机的I/O口

EEPROM部分的24C02芯片是用来实现单片机程序中数据掉电不丢失的功能,单片机内部的Flash是实现程序掉电不丢失,而一些数据就要写到24C02芯片中存储,上电再读取

LED灯的排阻作用是:限流

CPU控制I/O口输出高低电平实际是CPU往对应IO口的寄存器写值,寄存器就通过中间的驱动器,增大驱动能力,往IO口输出电平,写1就输出5v,写0就输出0v

//三个函数都在头文件中
_nop()_	//空语句
_crol_ 	//循环左移函数,第一个参数是需要左移的地址,第二个参数是左移的位数,最高位移出后会回到最低位,如0x80 -> 0x01	
_cror_ 	//循环右移函数,第一个参数是需要右移的地址,第二个参数是右移的位数

//使用
for(i = 0;i < 7;i++)		//连续移动的话要使用循环
{
	LED = _crol_(LED,1);	//1111 1101 -> 1111 1011 -> 1111 0111 -> 1110 1111
	Delay(50000);
}

设计精准延时:

用STC-ISP的延时功能,设置延时1000ms,即1秒,在使用时,传入一个参数,将延时函数的主语句放到while循环中,参数则控制循环多少次,就是多少秒

void Delay1000ms(u_int n)		//延时1000ms,即延时1s
{
	unsigned char i, j, k;
	while(n)		//自己加上一个循环
	{
		_nop_();
		i = 8;
		j = 154;
		k = 122;
		do
		{
			do
			{
				while (--k);
			} while (--j);
		} while (--i);
		n--;
	}
}
//在使用时就可以传入多大参数定时几秒

按键抖动

对于机械开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动

单片机及开发板介绍(学习笔记)_第2张图片

该单片机高电平驱动比较弱,低电平驱动比较强

74HC245芯片:

驱动4位一体数码管时,如果单片机直接驱动数码管段选,因为是高电平驱动,能力较弱,所以灯光较暗;通过74HC245芯片,将单片机的高电平当作信号,一点信号也能被芯片接收,然后芯片通过自己接VCC高电平增强驱动信号给数码管,从而驱动数码管发光

74HC138译码器:

p22、p23、p24的二进制组合转为十进制后,就是对应右边Y几,p22口是低地址,p24是高地址,如001,对应Y1

数码管显示问题

数码管显示多个位数字,因为执行过程是不断扫描:

位选 段选 位选 段选 位选 段选

如果不加延时的话,就会造成段选之后紧接着位选,造成数据串位,所以要进行消影操作,就是在每一次的位选、段选之后,将该位所有数据清零,即:

位选 段选(清零) 位选 段选(清零) 位选 段选(清零)

清零前要给个延时,让数码管显示一会

数码管驱动方式

单片机直接扫描:硬件设备简单,但会耗费大量的单片机CPU时间

专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉它显示什么即可,如TM1640

IO口驱动

单片机的IO口是弱上拉,其IO口内部会有VCC加上一个电阻,整体上拉,中间会有个开关,开关下面就是GND接地,开关接到上面VCC就输出高电平1,接到下面GND就输出低电平0,因为是准双向IO口,可以输出,也可以输入,端口处还有个输入信号检测的,如果输出高电平,此时外部接收到低电平,那低电平会拉低信号,最后芯片接收到的也是低电平

高电平驱动能力弱,低电平驱动能力强

寻址

可位寻址:说明该寄存器除了可以整体赋值,也可以按位赋值,如IO口P2 = 0x01,P2_1 = 1;

不可位寻址:说明该寄存器只能整体赋值

keil中寄存器不能直接用二进制赋值

void main()
{
	P3 = 00001111;	//这里赋的值是八进制的,并不是二进制,也不是整型,所以结果是八进制的二进制,一般使用十六进制
}

你可能感兴趣的:(51单片机,单片机,学习,stm32,51单片机,c语言)