数据类型 | 关键字 | 所占位数 | 表示数范围 |
无符号字符型 | unsigned char | 8 | 0~255 |
有符号字符型 | char | 8 | -128~127 |
无符号整型 | unsigned int | 16 | 0~65535 |
有符号整型 | int | 16 | -32768~32767 |
无符号长整型 | unsigned long | 32 | 0~2^32-1 |
有符号长整型 | long | 32 | -2^31~2^31-1 |
单精度实型 | float | 32 | 3.4e-38~3.4e38 |
双精度实型 | double | 64 | 1.7e-308~1.7e308 |
位类型 | bit | 1 | 0~1 |
2.C51数据类型扩充定义
单片机内部有很多特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般根据寄存器的功能不同赋予不同名称。操作时,需声明,即将地址编号赋给这个名称。(见reg52.h头文件)
sfr | 特殊功能寄存器的声明,声明一个8位的寄存器 |
sfr16 | 16位特殊功能寄存器的数据声明 |
sbit | 特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位 |
bit | 位声明变量,当定义一个位变量时可使用此符号 |
3.为什么发光二极管接1kΩ电阻
发光二极管,通过电流I为5mA时即可发光,一般控制在3~20mA,电流过大为烧毁。
而发光二极管的导通压降为1.7V,而供电为5V。 3.3 = 5 - 1.7。
3.3V / 1000Ω = 3.3mA
大约接1kΩ电阻时,二极管可正常发光,此电阻又称 限流电阻。
4.单片机晶振旁两个电容作用
①一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。(为满足谐振条件所以要对称)
它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。
从原理上讲直接将晶振接到单片机上,单片机就可以工作。但这样构成的振荡电路中会产生谐波(也就是不希望存在的其他频率的波),这个波对电路的影响不大,但会降低电路的时钟振
荡器的稳定性。即只有在外部所接电容为匹配电容的情况下,振荡频率才能保证在标称频率附近的误差范围内。电容在此起到了滤波(去杂波)的作用。
②由于单片机电源为开关电源,不稳定,两个去耦电容起到缓冲稳压的作用。
比较常用的为15p-30pf之间.两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。
5.锁存器
74HC573
OE(上划线) out Enable 使能端:低有效。这里直接接地,表示有效。若接高Q表现出高阻态,即其电平高低取决于与其相连的电路。
LE由单片机控制,LE高时,Q=D;可以实时控制LED灯的亮灭。LE低时,D=Q0,Q0为上一次的电平状态。
由于单片机引脚有限,同个IO口,用于控制不同电路。将LE置低,则LED不会随IO电平变化而变化,将其忽略,减少其影响。
6.点亮第一个LED
位操作法
#include <reg52.h>
sbit LED0 = P1^; int main()
{
LED0 = ;
return ;
}
总线法
#include <reg52.h> int main()
{
P1 = 0xFE; //由高到低P1^7 ……P1^0
return ;
}
7.单片机工作基本时序
模块说明:
采用贴片光耦隔离,驱动能力强,性能稳定;触发电流5mA。常开接口最大负载:交流250V/10A,直流30V/10A。
模块接口:
DC+:接电源正极(电压按继电器要求,有5V.9V.12V和24V选择)
DC-:接电源负极
IN:可以高或低电平控制继电器吸合
继电器输出端:
NO: 继电器常开接口,继电器吸合前悬空,吸合后与COM短接
COM:继电器公用接口
NC: 继电器常闭接口,继电器吸合前与COM短接,吸合后悬空
高低电平触发选择端:
跳线与LOW短接时为低电平触发;
跳线与high短接时为高电平触发。
12V延时继电器通断继电器模块
尺寸:6.8CM*2.1CM
主要芯片:NE555
工作电压:直流12伏
特点:
①接通电源继电器以1-10s的固定周期吸合和断开。具体为:给继电器供12v电源后,继电器会马上吸和,继电器输出端的状态为:常开与公共导通,常闭与公共断开;等到延时1- 10s(可以调节)后,继电器释放,此时,继电器输出端的状态为:常开与公共断开,常闭与公共导通;只要模块不断电,此状态会一直保持以1-10s的固定周期吸合和释放。
②延时时间可调,(0~10秒)
③增加电位器可以增加延时时间
④增大电容C1可以增大延时时间
⑤具有输入电源指示灯
⑥具有继电器吸合指示灯
⑦可控制交流220V/10A一下设备。(最大控制设备2000W)
⑧具有继电器续流保护。
⑨延时时间公式:T=1.1RC。例如:电容100uf电阻100K
T=1.1*100000*0.0001=11秒
十天学会单片机Day0点亮LED (锁存器、三极管、继电器)的更多相关文章
-
十天学会单片机Day1点亮数码管(数码管、外部中断、定时器中断)
1.引脚定义 P3口各引脚第二功能定义 标号 引脚 第二功能 说明 P3.0 10 RXD 串行输入口 P3.1 11 TXD 串行输出口 P3.2 12 INT0(上划线) 外部中断0 P3.3 1 ...
-
《十天学会单片机和C语言编程》
<十天学会单片机和C语言编程> 大家注意了这个文件只有最新版迅雷可以下载,下面的lesson几就是第几课.点击右键使用迅雷下载. ed2k://|file|[十天学会单片机和C语言编程]. ...
-
学习笔记——单片机简介 &; 点亮LED &; 流水灯 &; 电路基础【更新Ing】
视频地址:https://www.bilibili.com/video/av10765766 超详细!!!!!! 单片机内部三大资源 [资源:单片机可提供使用的东西] FLASH 可以重复擦写 断电后 ...
-
十天学会单片机Day3 D/A与A/D转换器
D/A转换器 1.二进制权电阻网络型D/A转换器 基准电压Vref 数据D(d3d2d1d0) 输出模拟电压V0 i0 = Vref/8R i1 = Vref/4R i2 = Vref/ ...
-
十天学会单片机Day4串行口通信
并行与串行基本通信方式 1.并行通信方式 通常是将数据字节的各位用多条数据线同时进行传送. 并行通信控制简单.传输速度快:由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难. 2.串行通 ...
-
十天学会单片机Day2键盘检测(独立键盘、矩阵键盘)
1.键盘的分类 编码键盘:键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘 非编码键盘:靠软件编程来识别的称为非编码键盘.独立键盘.矩阵键盘 2.按键消抖 ...
-
十天学会单片机Day5 IIC总线AT2402芯片(EEPROM)应用
1.采用串行总线技术可以使系统的硬件设计大大简化.系统的体积减小.可靠性提高.同时,系统的更改和扩充极为容易. 常用的串行扩展总线有: IIC (Inter IC BUS)总线.单总线(1-WIRE ...
-
十天学会单片机Day6 学会看数据手册 (IIC总线PCF859芯片( A/D D/A)应用)
1.实际电路 2.引脚图 3.地址 高四位为固定地址1001,A2A1A0可编程地址,通过观察实际电路,可知A2A1A0 为000.最低位为读写为,1为读,0为写. 4.控制字 控制寄存器的高半字节用 ...
-
51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯
关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...
随机推荐
-
webStorm快捷键总结
Ctrl+Shift+a:快速查找使用编辑器所有功能1.左侧栏目录显影:Ctrl+Shift+F122.文件模板配置:File>Settings>Editor>File and Co ...
-
Serialization performance analysis
Serialization performance analysis http://www.skyscanner.net/blogs/serialization-performance-analysi ...
-
1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统
1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: bootcmd=nan ...
-
html如何实现的
超文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的 ...
-
wordpress chronus主题 显示文章阅读数
wordpress chronus主题 显示文章阅读数 第一步:将下面的代码拷贝到文件 /wp-content/themes/chronus/inc/template-tags.php 中 funct ...
-
docker 部署nginx
# 下载镜像 docker pull nginx # 挂载 文件 和文件夹必须存在 docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $P ...
-
MapReduce(五)
MapReduce的(五) 1.MapReduce的多表关联查询. 根据文本数据格式.查询多个文本中的内容关联.查询. 2.MapReduce的多任务窜执行的使用 多任务的串联执行问题,主要是要建立c ...
-
oracle 年龄计算 岁 月 天
select trunc(months/12) || '岁' || trunc(mod(months, 12)) || '月' || trunc(sysdate - add_months( ...
-
public interface Sampler extends Serializable, TestElement
在看jmeter源码时看到的,当时就傻了,不能啊,java中只能是单继承啊,呃,其实是类只能是单继承,而接口可以多继承,不要以为extends后边跟的都是类 Serializable, TestEle ...
-
Python批量复制迁移文件夹
前言 Python可以利用shutil库进行对文件夹,文件的迁移.而在本次的实践当中,难点在于目标文件夹的名称和数据源文件夹的名称,需要利用 工作单位提供的中间数据去进行对比连接起来. 例如:目标源的 ...