
物联网
KEEPMA
记录一下
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《初学者C51自学笔记》之点亮一个二极管
左边是芯片,然后是二极管和排阻。排阻:第一图有个1K,1K是每个电阻的阻值,也不一定是是1K,如何取?以P0^0那条为例,VCC接高电平也就是+5V,那P0^0一定要接低电平也就是0V(在数电中只有高低电平),一般情况下,发光二极管所用电压为1.6V~1.7V,流过电流为3mA~10mA;位方法点亮第一个发光二极管#include <reg52.h>sbit...原创 2018-08-02 18:28:48 · 889 阅读 · 0 评论 -
《初学者C51自学笔记》之中断(外部中断0)
概念: CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时...原创 2018-08-05 18:06:49 · 17501 阅读 · 0 评论 -
《初学者C51自学笔记》之定时器(一)
CPU时序部分知识:振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)。状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。 机器周期:1个机器周期含6个状态周期,12个振荡周期。指令周期:完成1条指令所占用的全部时间,它以机器周期为单位。定时器部分知识:51单片机有两组定时器/计数器,因为既可以定时, 又可以计数,故称之为定...原创 2018-08-06 10:27:27 · 548 阅读 · 0 评论 -
《初学者C51自学笔记》之定时器四种工作方式(二)
1、方式0 :方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。一共13位,空着的3位忽略不用管,TL0一直加1,直到为11111时再加1会溢出变为00000,则会进1到TH0,就像是满10进1一样,进到TH0为11111111时再加1就会发出请求;X=-N:N是...原创 2018-08-06 11:10:13 · 9036 阅读 · 1 评论 -
《初学者C51自学笔记》之定时器代码(三)
初始化程序:对TMOD赋值,以确定T0和T1的工作方式。计算初值,并将其写入TH0、TL0或TH1、TL1。中断方式时,则对EA赋值,开放定时器中断。使TR0或TR1置位,启动定时/计数器定时或计数。//实现功能:数码管一秒加一;#include<reg52.h>#define uchar unsigned char #define uint unsig...原创 2018-08-06 11:53:12 · 769 阅读 · 0 评论 -
《初学者C51自学笔记》之串口
并行通信:通常是将数据字节的各位用多条数据线同时进行传送 。控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。串行通信:将数据字节分成一位一位的形式在 一条传输线上逐个地传送。传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。异步通信:指通信的发送与接收设备使用各自的时钟控制 数据的...原创 2018-08-07 11:56:19 · 854 阅读 · 1 评论 -
《初学者C51自学笔记》之LED1602
上两图对应的;如想要在00位置上显示,则指令码为(0x80+0x00或0x80)#include<reg52.h>#define uchar unsigned char #define uint unsigned int sbit rs=P2^4;sbit rw=P2^5;sbit e=P2^6;uchar table1[...原创 2018-08-07 17:17:00 · 466 阅读 · 0 评论 -
《初学者C51自学笔记》之DAC0832转换器
T型电阻网络D/A转换器 :2R与2R并联,所以为1R再串联1R总是2R,所以所有总电阻为1R;把I7下的开关与1闭合,则I7=1/2 I,其余同理;#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit cs=P3^1;sbit wr=P3...原创 2018-08-07 18:54:46 · 1111 阅读 · 1 评论 -
《初学者C51自学笔记》之ADC0804
#include<reg52.h>#define uchar unsigned char #define uint unsigned int sbit rs=P2^4;sbit rw=P2^5;sbit e=P2^6;sbit adcs=P3^5;sbit adrd=P3^0;sbit adwr=P3^3;sbit P23=P2^3;uchar...原创 2018-08-08 13:47:20 · 899 阅读 · 0 评论 -
《初学者C51自学笔记》之PS/2
当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平。如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据。传输的每一帧数据由11位组成。主设备与从设备进行通信时,主设备首先将时钟线和数据线设置为“请求发送”状态,具体方式为:首先下拉时钟线至少100us抑制通信,然后下拉数据线“请求发送”,最后释放时钟线.在此过程中,从设备在不...原创 2018-08-08 14:41:07 · 336 阅读 · 0 评论 -
《初学者C51自学笔记》之8X8键盘(线与和线或)
在键盘的电路中,存在这线与这玩意,线与和线或:一条线和一个开关,一端是高电平另一端是低电平,开关闭合,整条线就会变为低电平,总的来说就是存在线与的关系,只要一端是低电平闭合开关后,整条线就会拉低,这就是线与;有一端是Z(高组态),闭合开关后,另一端是高电平整条线就是高低电平,反之亦然,这就是线或;如何编程:先P3=11110000(图中从下至上11110000),假设按下S1则其高四位...原创 2018-08-05 17:09:18 · 1518 阅读 · 1 评论 -
《初学者C51自学笔记》之89C51初步认识
左边是一个总线型的,为什么是总线型呢?它的引脚P1、P2、P3、P0都是有8位,而右边P3是没有P3.6的,所以它是非总线型的。51单片机内部集成8位CPU,4K字节的ROM,128字节RAM,4个8位并行I/O口,一个全双工串行口,2个16位定时器/计数器,5个中断源。 CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器 ...原创 2018-08-02 15:28:11 · 903 阅读 · 0 评论 -
《初学者C52自学笔记》之8X8点阵
点阵显示0#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit en1=P2^3;sbit en2=P2^0;sbit rs=P3^6;uchar table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar t...原创 2018-08-04 16:12:47 · 917 阅读 · 0 评论 -
《初学者C51自学笔记》之数码管
图(b)为数码管的解剖图,分别是共阴和共阳型;共阴为例,若想显示数字1,从a端到dp端接P0^0~~P0^7;所以P0=0x06(00000110{从高位到低位});显示方式:静态显示: 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CP...原创 2018-08-04 15:50:47 · 917 阅读 · 0 评论 -
《初学者C51自学笔记》之步进机
一般电机都是连续旋转的,而步进电机却是一步一步地转动,故称之为步进电机,每次能转动的最小角度称为步距角。每当步进电机的驱动器接收到一个驱动脉冲信号后,步进电机将会按照设定的方向转动一个固定的角度(有的步进电机可以直接输出线位移,称为直线电动机)。对于角位移步进电机,可以通过控制脉冲的个数来控制角位移量,从而达到准确定位的目的。可以通过控制脉冲频率来控制步进电机的转动的速度和加速度,从而...原创 2018-08-03 17:26:26 · 1195 阅读 · 2 评论 -
《初学者C51自学笔记》之蜂鸣器与继电器
一是单片机,而是ULN2003,用于驱动电平放大,单片机流过的电流非常小,不足以驱动蜂鸣器与继电器,三是拨码开关与蜂鸣器;依次对应连接(继电器同理)#include <reg52.h>sbit beep=P0^1;void main(){ beep=1;}小电流从引线流入,铁心产生磁力将衔铁吸到下边,从而端点也会随之而下;//反复吸合,听到d滴答滴...原创 2018-08-03 15:56:37 · 464 阅读 · 0 评论 -
《初学者C51自学笔记》之流水灯实现(移位操作二)
#include <reg52.h>#include <intrins.h>#define uchar unsigned char #define uint unsigned intvoid delay(void){ uchar a,b; for(a=0;a<200;a++) for(b=0;b<200;b++);}void main(...原创 2018-08-03 10:40:04 · 672 阅读 · 0 评论 -
《初学者C51自学笔记》之流水灯实现(移位操作)
#include <reg52.h>#define uchar unsigned char #define uint unsigned intvoid delay(void){ uchar a,b; for(a=0;a<200;a++) for(b=0;b<200;b++);}void main(){ uchar k,i; while(1) ...原创 2018-08-03 10:31:33 · 3569 阅读 · 2 评论 -
《初学者C51自学笔记》之流水灯实现(总线操作)
#include <reg52.h>#define uchar unsigned char //宏定义#define uint unsigned intunsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//11111110,11111101,11111011...../* 延时*/vo...原创 2018-08-03 10:20:43 · 793 阅读 · 0 评论 -
《初学者C51自学笔记》之流水灯实现(位操作)
#include <reg52.h>sbit led0=P0^0;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;sbit led4=P0^4;sbit led5=P0^5;sbit led6=P0^6;sbit led7=P0^7;void delay(void){ unsigned char a,b; for(a=...原创 2018-08-03 10:08:29 · 1417 阅读 · 0 评论 -
《初学者C51自学笔记》之74HC573芯片及发光二极管闪烁
当LE为高电平时,D与Q的状态一样,同高同低;LE为低电平时,D是任意的状态而Q保持原来的状态;OE是低电平有效。用总线方法使发光二极管闪烁#include <reg52.h>/* 不精确延时*/void delay(void){ unsigned int a; a=55400; while(a--); }void main(){ whil...原创 2018-08-02 20:19:30 · 931 阅读 · 0 评论 -
《初学者C51自学笔记》之数据类型与逻辑运算
位移:二进制数向左右移一位,如11111111>>=1,右移一位后是01111111,空出来的补0,左移同理;与运算:都为真才为真,如1111&1000,结果是1000;或运算:只要有真即为真,如1100 | 1011,结果是1111;异或运算:顾名思义只要有不同即为真,如1100 ^ 1010,结果是0110;反运算:如其名,0为1,1为0;...原创 2018-08-02 15:56:46 · 586 阅读 · 0 评论 -
《初学者C51自学笔记》之独立键盘
判断按键是否按下,当按下时I/O口电平为低,不按时为高。它的检查过程是:先给对应的I/O口置1,再读这个I/O口,若还是1,说明没按下,若是0说明按下了。左是软件消抖,右是硬件消抖;代码实现:按键按下数码管改变,二极管闪亮#include<reg52.h>#define uchar unsigned char #define uint unsigned i...原创 2018-08-05 10:16:54 · 529 阅读 · 0 评论