51单片机
单片机入门学习分享
南吕二七
这个作者很懒,什么都没留下…
展开
-
DS18B20温度传感器采集温度及其数码管显示
1.DS18B20简介DS18B20是DALLAS公司生产的一线式数字温度传感器,可直接将温度转化成串行数字信号给单片机处理,因而可省去传统的信号放大、A/D转换等外围电路。测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃。1.1 内部结构DS18B20的内部结构如图所示,主要由4部分组成:64位ROM、温度敏感元件、非易失性温度报警触发器TH和TL、配置寄存器。图中,DQ为数字信号输入/输出端;VDD为外接供电电源输入端。1)ROM(Read-Only Memory)原创 2020-06-27 14:56:18 · 13980 阅读 · 0 评论 -
IIC串行总线的组成及工作原理
1.基本组成IIC总线只有两根双向信号线:数据线SDA(serial data I/O),时钟线SCL(serial clock)。如图,IIC总线上可以挂多个器件,数据通讯方式采用主从方式,主机负责主动联系从机,而从机则被动回应数据。IIC总线通过上拉电阻接正电源,总线空闲时两根线均为高电平,连接到总线上任一器件输出低电平都会将总线信号拉低,即各器件的SDA和SCL都是线“与”关系。2.传输协议2.1 数据位的有效性规定SCL高电平期间SDA上的数据必须保持稳定;SCL为低电平期间SDA原创 2020-06-16 17:19:05 · 1614 阅读 · 0 评论 -
单片机学习之串行通信
1.串行通信口的结构51单片机有一个可编程的全双工串行通信接口,通过它可进行异步通信。其内部结构如图所示:1)两个数据缓冲器SBUF:发送数据缓冲寄存器SBUF和接收数据缓冲寄存器SBUF。前者用来发送串行数据,后者用来接收串行数据。两者物理上是不同的,只是共用一个地址99H。2)输入移位寄存器:在接收控制器的控制下,将输入的数据位逐位移入接收SBUF。3)串行控制寄存器SCON:控制串行通信的工作方式,并反映串行通信口的工作状态。4)定时器T1:作波特率发生器,控制传输数据的速度。2.串行通原创 2020-06-08 23:13:11 · 1909 阅读 · 0 评论 -
单片机入门学习记录001-控制LED灯闪烁
加粗样式@TOC控制LED灯闪烁本人小白,以下内容为自己学习过程的记录或心得,如有错误,请不吝赐教。以下为实现控制LED灯闪烁的具体步骤:一、基于Keil编写控制程序1.新建工程并选择合适的保存路径。2.新建一个文件, 建完之后将其保存为.c文件。3.将.c文件添加到工程中4.开始编写程序(控制目标为使第三个led灯始终点亮,其他灯间歇性闪烁),然后进行编译。注意:不要忘记创建HEX文件,否则后面烧录程序会找不到。二、通过STC-ISP将程序烧录到单片机中1.打开软件选原创 2020-05-20 13:41:54 · 2908 阅读 · 0 评论 -
单片机流水灯程序与Keil中Debug的使用
流水灯程序与Keil中Debug的使用一、流水灯代码二、debug的使用1.设置所用单片机外部晶振频率2.点击debug命令,。另外在Peripherals下打开port1可以看到p1口的状态。点击复位之后,m=254语句还未执行,此时显示的是???另外,此时运行时间处也为0s点击单步运行,可以看到黄色箭头指向17行,即16行语句被执行。此时,m被定义,监测的值为0;运行时间为0…00042233s,即16行语句时间耗费了这些时间。同理,再次单步运行可以看到m的变化和运行时间的变原创 2020-05-22 00:16:04 · 2886 阅读 · 0 评论 -
单片机学习#数码管的静态显示
数码管的静态显示今日任务—控制数码管显示6.6.6.6.1.所用单片机与数码管的连接原理2.如上图,如果要实现6.6.6.6.应该这么控制呢?首先,一共有8位数码管,我们只要让前四组点亮即可,那么位选锁存器应该为二进制的11110000(0XF0);然后,要让6.点亮的话,就是只有二极管b不亮(高电平)。3,不多扯,上代码今日份敷衍到此结束!等下放张数码管点亮后的图:...原创 2020-05-22 22:29:44 · 1118 阅读 · 0 评论 -
单片机学习##键盘按键与数码管显示
1.今日使用到的键盘与数码管和期望达到的控制目标:用到的键盘数目为3个,key1(与单片机P3.0口相接)、key2(与单片机P3.0口相接)、key3(与单片机P3.0口相接)。数码管1位:显示0-9的数据(初始值为0)。期望达到的控制目标:key1按下时数码管数码管显示数据加1;key2按下时数码管数码管显示数据减1;key3按下时数码管复位为初始状态0。2.程序分析:使第一位数码管显示为0–9,需要使位选锁存器的输出始终保持在0x01;段选锁存器输出依次应为:0X3F、0X06、0X5原创 2020-05-23 22:53:49 · 5093 阅读 · 1 评论 -
单片机学习##中断系统(2)--外部中断示例
中断系统(2)–外部中断示例1.想实现的目标2.分析3.代码#include<reg52.h>#include<intrins.h>sbit LED1=P1^0;sbit LED2=P1^1; //对两个led灯进行位定义void main(){EA=1; //CPU开中断EX1=1; //中断允许位置1IT1=1;//设为下降沿触发方式LED1=0;LED2=1;//打开LED灯1和2while(1);//一直循环等待中断}//外部中断1中断服务程原创 2020-06-02 14:23:27 · 567 阅读 · 0 评论 -
单片机学习#定时/计数器(1)
定时/计数器(1)1.什么是定时/计数器?51单片机中的定时器同时可以用作计数器,所以在此称为定时/计数器,即它有实现这两种功能的能力。定时/计数器的核心部件是一个加法(也有减法)计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,计数器的输入脉冲是由晶振12分频获得(此时为12T模式(单倍速模式)每12个时钟得到一个计数脉冲,6T时为双倍速模式,),也就是一个机器周期(12个时钟周期);如果计数脉冲来自于单片机外部引脚(T0接P3.4,P1接P3.5)则为计数原创 2020-06-03 00:01:58 · 1675 阅读 · 0 评论 -
单片机学习#定时器/计数器学习(2)之基础控制理论
定时器/计数器学习之基础控制理论定时器/计数器是在寄存器TCON和TMOD的控制下工作的,因此,对定时器/计数器的控制实际上是对寄存器TCON和TMOD的位进行设置。1.方式控制器TMODTMOD字节地址为89H,不能对它进行位操作,只能进行字节操作。 TMOD的格式如下表所示:位序B7B6B5B4B3B2B2B1位符号GATEC/TM1M0GATEC/TM1M0TMOD中高四位控制T1,低四位控制T0。1)GATE:启动模式控制,0时只要原创 2020-06-03 21:30:50 · 1089 阅读 · 0 评论 -
中断系统应用实例(1)用定时器T1工作方式1控制两个LED以不同周期闪烁
1.控制目标利用定时器T1工作方式1控制两个LED以不同周期闪烁,使得LED1每秒闪烁4次(即周期为250ms),LED2每秒闪烁1次(即周期为1s)。2.控制分析2.1 LED侧分析若要使LED1每秒闪烁4次(即周期为250ms),LED2每秒闪烁1次(即周期为1s),那么需要分别给P1.0和P1.2接口分别输出周期为250ms(高低电平分别125ms)和1000ms(高低电平分别500ms)的方波。2.2 程序分析因为LED1和LED2的周期刚好是倍数关系,因此可以考虑定时器设置为125ms原创 2020-06-05 13:53:38 · 9218 阅读 · 4 评论