单片机的学习
啊啊啊啊啊啊啊阿
hello world
展开
-
了解PCB
工业PCB与手工PCB的区别: 1.工业制作的PCB多了层铺油,起到绝缘作用,还能保护电路。 2.多了丝印,上面是板子的一些信息。 3.工业PCB做工精细,但是制作周期长;手工PCB制作周期短,做工不够精细。主流绘图软件:1.protel、protel 99se、protel DXP、Altium是一个公司发展、不断升级的软件2.原创 2016-07-27 19:31:51 · 591 阅读 · 0 评论 -
DS18B20
DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。汽车空调、冰箱、冷柜、以及中低温干燥箱等。供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。DS18B20的使用1.启动温度转化的步骤:复位、发出跳过RO原创 2016-09-23 22:37:17 · 281 阅读 · 0 评论 -
AD转换与DA转换的应用
AD转换就是模数转换,也可以是整流。顾名思义,就是把模拟信号转换成数字信号。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。A/D转换后,输出的数字信号可以有8位、10位、12位、14位和16位等。DA转换就是数模转换,就是将离散的数字量转换为连接变化的模拟量。与数模转换原创 2016-09-20 20:06:01 · 2581 阅读 · 1 评论 -
IIC&EEPROM总结
1.IIC 时序的重要特点是在时钟SCK为高电平期间SDA作出各种变化来表示起始,终止,应答,非应答,发送数据时是在时钟为高电平期间让SDA稳定,读数据是在SCK为高电平期间采样从设备的数据,所以起始,终止,应答,非应答,发送数据都要先操作SDA,再操作SCK,如果先操作SCK,则会导致起始,终止,应答,非应答,发送数有干扰。以START信号为例:写成这样是对的void IIC_STA原创 2016-09-21 20:49:42 · 1407 阅读 · 1 评论 -
小车循迹原理
DF2 为红外发射管(淡蓝色),DS2为红外接收管(黑色),DF2发射红外光经过反射后到达DS2接收端,反射信号强度不同,LM339的五脚会输出一个变化的电压量,当LM339的“+”输入端小于“-”端时,输出端输出饱和,输出低电平,通过调节RP2的值来改变门限电平值的大小来改变 检测距离。R4正反馈:当输入电压在门限电压就会有相应的抖动,这时候引入正反馈电路,加入R4电阻。当输出状态一旦转原创 2016-10-11 21:03:35 · 7428 阅读 · 0 评论 -
循迹小车
循迹小车需要的模块:驱动模块,循迹模块,稳压模块和最小系统。我制作的小车用到的模块有L298驱动模块,AMS1117稳压模块,4路红外循迹模块。L298驱动模块:该模块有OUT1,OUT2,OUT3,OUT4四个与直流电机相连的输出口,L298逻辑工作电压5V,12V和GND输出口,还有IN1,IN2,IN3,IN4,ENA,ENB六个与单片机I/O口相连的六个口。原创 2016-09-26 22:29:44 · 1418 阅读 · 1 评论 -
三路循迹的编程方法
如下图,LA/LB控制左侧轮子,RA/RB控制右侧轮子,LA/LB/RA/RB分别接单片机的P1.3-P1.0 P0.0-P0.2分别接三路红外传感器下面是循迹可能出现的情况:1.中间传感器在黑线上如左图,中间传感器位于黑线时,小车保持前行对应部分代码如下:if(P0 == oxfa){ P1 = 0x05; }默认P0.3-P0.7为高电平,所以当P0.1检测到原创 2016-10-12 22:00:58 · 4335 阅读 · 1 评论 -
循迹小车代码v1.0测试版本
#includesbit IN1 = P1^0;sbit IN2 = P1^1;sbit ENA = P1^2;sbit IN3 = P1^3;sbit IN4 = P1^4;sbit ENB = P1^5;sbit left1 = P0^0;sbit left2 = P0^1;sbit right1 = P0^2;sbit right2 = P0^3;unsigned原创 2016-10-13 23:02:58 · 488 阅读 · 0 评论 -
PCB新手使用中要注意的问题
PCB新手值得一看!一、如何将一个原理图中的一部分加到另一张原理图上? 答:利用块拷贝。首先将要拷贝的原理图的那部分做成块,用其他文件名存储,然后调入目标原理图利用块读命令。二、为何最后生成的制版图与原理图不相符,有一些网络没有连上?答:这种情况是很容易发生的,确实原理图上很明显是连上的,最后形成的制版图也与原理图生成的网络表对照过的,没有发现为连上的网络。转载 2016-11-05 00:25:23 · 491 阅读 · 0 评论 -
单排机循迹小车的最终代码
#include #include "./turn/turn.h"#define uint unsigned int #define uchar unsigned charsbit ENA = P1^5;//右驱动sbit ENB = P1^0; //左驱动sbit xj_l2 = P3^0;//左1循迹口sbit xj_l1 = P3^1;//左2循迹口sbit xj_r原创 2016-11-07 22:36:12 · 549 阅读 · 0 评论 -
四路红外循迹
四路红外循迹模块是为智能小车、机器人等自动化机械装置提供一种多用途的红外线探测系统的解决方案。使用红外线发射和接收管等分立元器件组成探头,并使用电压比较器获得输出信号,比较器之后加入一级迟滞电路,使输出信号更加干净,适合单片机的使用。黑线的检测原理是红外发射管发射光线到路面,红外光遇到白底则被反射,接收管接收到反射光,经施密特触发器整形后输出低电平;当红外光遇到黑线时则被吸收,接收管没有接原创 2016-10-06 21:47:38 · 21152 阅读 · 0 评论 -
DS1302
上面是ds1302的引脚功能图DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据原创 2016-09-22 22:06:42 · 2672 阅读 · 0 评论 -
I2C通信协议的时序
I2C总线是飞利浦公司推出的一种串行总线,只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。每个接到I2C总线上的器件地址是唯一的。主机与其他器件间的数据传送可以是由主机发送数据到其他器件,这时候主机即为发送器。由总线上接收数据的器件则为接收器。常用的串行扩展总线有:I2C总线单总线SPI总线I2C总线的通信协议需要掌握以下6点:1.起始信号2.终止信号原创 2016-09-18 22:19:20 · 832 阅读 · 0 评论 -
PCB布线规范
画功能稳定,美观的PCB1.走线最短原则:走线能多短就多短,最简单的原则,也是最重要的原则。这是你板子功能是否稳定的决定性因素。2.元器件布局,接插件一定要考虑好位置,所有人的DB9画在板子上都没考虑你的串口线能不能插进去。如果加了usb,也要考虑好位置,Pcb布局完成后可以1:1打印出来用原件摆好试试看。3.元器件布局,有电气连接的元器件尽量靠近,如max232的4个电容,需摆放原创 2016-08-15 15:08:47 · 483 阅读 · 0 评论 -
点亮单片机的第一盏灯
led灯在高电平下灭,低电平下亮。所以想亮哪一个灯,将那一位置0即可。八个灯均灭的情况下是0xff,均亮的情况下是0x0。下面是led流水灯的程序。#include #include #include "delay.h"#define LEDPORT P2void main(){ unsigned char temp = 0x7f; while(1) {原创 2016-09-09 22:41:33 · 710 阅读 · 0 评论 -
数码管的显示(共阳)
51单片机上9个数码管,一个是共阳的,其他全是共阴的。对于共阳数码管,如下图,八个灯组成字符,低电平有效,所以0xff的情况下数码管是不显示任何东西的。0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e分别是0~f的数码管显示,可以用数码管查询软件查到。下面是共阳数码管依次显示0~f原创 2016-09-10 10:20:31 · 5495 阅读 · 0 评论 -
数码管的显示(共阴)
51单片机上有八个共阴数码管,这时候想要亮某个位置的数码管就需要位码了,位码在低电平时有效,那么位码的数组如下:0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,分别代表了八个位置。共阴数码管的段码和共阳的不一样,0~f如下:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x原创 2016-09-11 11:12:02 · 9419 阅读 · 0 评论 -
独立按键的原理
独立按键式直接用I/O口线构成的单个按键电路,其特点式每个按键单独占用一根I/O口线,每个按键的工作不会影响其他I/O口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一个I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。独立按键的软件常采用查询式结构。先逐位查询没跟I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后原创 2016-09-12 21:50:59 · 40107 阅读 · 0 评论 -
矩阵键
矩阵键盘是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4*4个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。矩阵键盘,按键的位置由行号和列号唯一确定,因此可以分别对行号和列号进行二进制编码,然后两值合成一个字节,高4位是行号,低4位是列号。unsigned char key_scan(void) //物原创 2016-09-13 20:48:51 · 631 阅读 · 0 评论 -
80C51的串口原理
SBUF为两个物理上独立的接受、发送缓冲器,有相同的名字和地址空间,共用地址99H,但不会产生冲突;因为接收器只能被CPU读出数据;发送缓冲器只能被CPU写入数据,不会产生重叠错误80C51串口的控制寄存器:SCON。用于设定串口的工作方式,接受/发送控制以及设置状态标志,有8位,字节地址是98H,由高到低分别是SM0,SM1,SM2,REN,TB8,RB8,TI,RI。其中SM0原创 2016-09-14 20:35:31 · 610 阅读 · 0 评论 -
串口的使用步骤及例子
一、设置串口工作模式(方式1, 8位数据模式)二、打开接收使能三、设置发送、接收波特率(要求会计算)1.设置定时器1工作方式为8位自动重装方式2.填初值( TH1)3.打开定时器四、打开总中断五、打开串口中断六、编写串口中断函数下面是相关程序的举例:void uart_init(){ SCON = 0x50;//设置串口uart的工作方式 TM原创 2016-09-15 19:06:18 · 1115 阅读 · 0 评论 -
lcd1602
#include #include "./delay/delay.h"sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;#define LCDPORT P0#define LCD_WRITE_DATA 1#define LCD_WRITE_COM 0void lcd_write(unsigned char byte,unsigned ch原创 2016-09-17 21:48:34 · 417 阅读 · 0 评论 -
I2C总线的相关程序
sbit SCL = P2^0;sbit SDA = P2^1;sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;void iic_start()//起始信号{ SDA = 1; SCL = 1; delay_us(1); SDA = 0; delay_us(1); SCL = 0;//钳住总线}v原创 2016-09-19 19:10:21 · 230 阅读 · 0 评论 -
指令周期、机器周期、’时钟周期
指令周期 :取出并执行一条指令的时间。 机器周期 :又称CPU周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。//机器周期=1/12·振荡周期时钟周期: 通常称为节拍脉冲或T周期。处理操作的最基本单位,即CPU主频。 三者的关系:指令周期通常用若干个机器周期表示,而机器周期又包含若干个时钟周期。转载 2016-12-25 20:42:37 · 334 阅读 · 0 评论