单片机
文章平均质量分 69
root_robot
这个作者很懒,什么都没留下…
展开
-
单片机最小系统版
1、主控电路2、晶振电路3、阻容复位电路4、电容接口电路5、滤波电路6、独立按键7、LED电路8、电源指示灯原创 2016-09-09 22:09:40 · 713 阅读 · 0 评论 -
时钟七:在LCD1602上显示时钟,并且用按键修改时间
主函数文件:#include #include "./delay/delay.h"sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;sbit beem = P3^2;#define LCDPORT P0#define KEYPORT P1#define LCD_WRITE_DATA 1#define LCD_WRITE_COM 0原创 2016-09-20 20:52:12 · 15232 阅读 · 3 评论 -
在LCD1602上面制作显示一个简易的电池并带百分比
主函数文件:#include #include #include "./delay/delay.h"sbit SCL = P1^0;sbit SDA = P1^1;bit ack = 0;sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;#define SUCC 1#define ERR 0#define LCDPORT原创 2016-09-24 21:22:52 · 4998 阅读 · 1 评论 -
IIC的应用
主函数文件:#include #include "./delay/delay.h"sbit SCL = P2^1;sbit SDA = P2^2;bit ack = 0;#define SUCC 1#define ERR 0void iic_start(){ SDA = 1; SCL = 1; delay_us(1); SDA = 0;原创 2016-09-21 17:34:17 · 728 阅读 · 0 评论 -
串行通信接口小结
处理器与外部设备通信的两种方式:并行通信传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多 串行通信传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢 串行通信按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输半双工:允许数据在两个方向上传输,但是,在某一时转载 2016-10-11 20:26:07 · 368 阅读 · 0 评论 -
USB协议架构及驱动架构
1. USB协议1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、软件和固件一部分。1.2 USB设备系统 USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。1.转载 2016-11-03 22:21:37 · 395 阅读 · 0 评论 -
用ds18b20测试温度并且显示在LCD1602上
主函数文件:#include #include #include #include "./delay/delay.h"sbit ds = P1^0;bit ack = 0;sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;#define LCDPORT P0#define LCD_WRITE_DATA 1#define LCD原创 2016-09-27 21:07:02 · 23904 阅读 · 4 评论 -
DS1302测出时间并且在LCD1602上面显示
主函数文件:#include #include "./delay/delay.h"#define ds1302_sec_add 0x80#define ds1302_min_add 0x82 #define ds1302_hr_add 0x84 #define ds1302_date_add 0x86 #define ds1302_month_add 0x88原创 2016-09-25 21:03:49 · 6377 阅读 · 1 评论 -
在LCD1602上面显示DS1302掉电时钟和日期
主函数文件:#include #include "./delay/delay.h"#define ds1302_sec_add 0x80#define ds1302_min_add 0x82 #define ds1302_hr_add 0x84 #define ds1302_date_add 0x86 #define ds1302_month_add 0x88原创 2016-09-26 21:07:48 · 2337 阅读 · 0 评论 -
时钟、日期、温度
主函数文件:#include #include #include #include "./delay/delay.h"#define ds1302_sec_add 0x80#define ds1302_min_add 0x82 #define ds1302_hr_add 0x84 #define ds1302_date_add 0x86 #define ds原创 2016-09-28 21:03:32 · 588 阅读 · 0 评论 -
PCB设计技巧一百问
1、如何选择PCB板材? 选择PCB板材必须在满足设计需求和可量产性及成本中间取得平衡点。设计需求包含电气和机构这两部分。通常在设计非常高速的PCB板子(大于GHz的频率)时这材质问题会比较重要。例如,现在常用的FR-4材质,在几个GHz的频率时的介质损(dielectric loss)会对信号衰减有很大的影响,可能就不合用。就电气而言,要注意介电常数(dielectric const转载 2016-11-13 21:05:58 · 1359 阅读 · 0 评论 -
IIC_AD/DA
主函数文件:#include #include #include "./delay/delay.h"sbit SCL = P1^0;sbit SDA = P1^1;bit ack = 0;sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;#define SUCC 1#define ERR 0#define LCDPORT原创 2016-09-23 21:07:30 · 598 阅读 · 0 评论 -
单片机按键去抖原理
按键去抖由上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。/* 软转载 2016-10-09 21:08:34 · 1972 阅读 · 0 评论 -
时钟八:用IIC和EEPROM实现时钟
主函数文件:#include #include "./delay/delay.h"sbit SCL = P1^0;sbit SDA = P1^1;sbit RS = P2^4;sbit RW = P2^5;sbit E = P2^6;bit ack = 0;#define SUCC 1#define ERR 0#define LCDPORT P0#define原创 2016-09-22 21:03:53 · 940 阅读 · 0 评论 -
时钟一:51单片机用替换的方法在数码管上显示时钟
主文件clock.c:#include #include "./delay/delay.h"#define PORTLEN P0sbit bit_select = P2^0;sbit seg_select = P2^1;unsigned char src[8] = {0x3f,0x3f,0x40,0x3f,0x3f,0x40,0x3f,0x3f};unsigned char qrc[8] =原创 2016-09-10 16:00:01 · 1597 阅读 · 0 评论 -
时钟二:定时器时钟
主文件函数:#include #define PORTLEN P0sbit bit_select = P2^0;sbit seg_select = P2^1;unsigned char src[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsig原创 2016-09-11 15:54:41 · 477 阅读 · 0 评论 -
用独立键盘来实现8音符,手动演奏音乐
#include #include "./delay/delay.h"#define KEYPORT P0sbit beem = P3^0;unsigned char code freq[][2]={ 0xD8,0xF7,//00440HZ 1 0xBD,0xF8,//00494HZ 2 0x87,0xF9,//00554HZ 3 0xE4,0xF9,/原创 2016-09-12 21:10:16 · 1329 阅读 · 1 评论 -
矩阵键盘在数码管上显示1-16
#include #include "./delay/delay.h"#define PORTLEN P0#define KEYPORT P1sbit bit_select = P2^0;sbit seg_select = P2^1;unsigned char duanma[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,原创 2016-09-13 22:11:31 · 10602 阅读 · 0 评论 -
时钟三:用内部中断实现时钟
主文件:#include #include "./delay/delay.h"#define PORTLEN P0sbit key1 = P3^2;sbit key2 = P2^3;sbit bit_select = P2^0;sbit seg_select = P2^1;unsigned char duanma[16] = {0x3f,0x06,0x5b,0x4f,0x6原创 2016-09-14 19:39:25 · 646 阅读 · 0 评论 -
时钟四:实现闹钟
延时函数:void delay_us(unsigned char t){ while(--t);}void delay_ms(unsigned char t){ while(t--) { delay_us(245); delay_us(245); }}void delay_s(unsigned char t){ w原创 2016-09-15 22:24:14 · 638 阅读 · 0 评论 -
串口的简单应用
主函数文件:#include #include #include "./delay/delay.h"void uart_init(){ SCON = 0x50; TMOD |= 0x20; TH1 = 0xfd; TR1 = 1;}void uart_send_byte(unsigned char byte){ SBUF = byte;原创 2016-09-16 23:42:55 · 469 阅读 · 0 评论 -
时钟五:用串口发送时间,实现闹钟
主文件函数:#include #include "./delay/delay.h"#define PORTLEN P0#define KEYPORT P1sbit bit_select = P2^0;sbit seg_select = P2^1;sbit beem = P3^2;unsigned char code SONG_TONE[]={239,239,212,189原创 2016-09-17 21:05:29 · 3669 阅读 · 1 评论 -
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 lcd1602_write(unsigned char by原创 2016-09-18 19:36:33 · 1125 阅读 · 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 0unsigned char shi = 0;unsigned cha原创 2016-09-19 21:05:45 · 3551 阅读 · 3 评论 -
零欧电阻及其作用
我们经常在电路中见到0欧的电阻,对于新手来说,往往会很迷惑:既然是0欧的电阻,那就是导线,为何要装上它呢?还有这样的电阻市场上有卖吗?其实0欧的电阻还是蛮有用的。 零欧姆电阻又称为跨接电阻器,是一种特殊用途的电阻,0欧姆电阻的并非真正的阻值为零(那是超导体干的事情),正因为有阻值,也就和常规贴片电阻一样有误差精度这个指标。 以下总结了零欧姆电阻的一系列用法。 1.在电原创 2016-12-02 21:10:04 · 675 阅读 · 0 评论