51单片机学习笔记(五)

51单片机简介 51单片机简介\\\插播一条:文章末尾有惊喜哟~///一、51单片机标识信息通常我们所说的51单片机是指以51内核扩展出的单片机。出产51单片机的厂商很多,51单片机的型号也很多。下表列出了一些51单片机的厂商和型号。以上提到的单片机都是51内核扩展出来的单片机,只有学会了51单片机的应用,这些单片机也就根本都能使用了。单片机都是相通的,不管是51单片机还是其它单片机,都是用户编程控制来实现一定的功能。接下来的一个系列的文章中以STC89C516RD+单片机为根底进行讲解。下面我们对这个单片机的标识进行解释 阅读详情

            已经很多天没有写程序了,原因很简单,竟是迷上了新版的西游记,连续看了几天,今天写的是续上以前的教材,“心率计数器”是继“电子时钟”的一个计算器/计时器的应用。

            对于计数器/计时器的应用,似乎就是熟练的问题,对计数器/计时器的使用很容易理解,但是要是不看书本,那编写出的程序多半是有错误的,因为对TMOD,TCON,IE,的控制方式,不看书是很难把它记住的,而应用起来却是十分简单。

           在这里要说一下在计数器模式下,t1计数的是p3.5的脉冲信号,t0计数的是来自p3.4的脉冲信号。因为我手头上没有心率传感器,所以就只用一根杜邦线接在p3.5口上,然后用手捏杜邦线的另一头,用这种方法给p3.5脉冲信号,挺有意思的。

           写这个程序似乎没有什么收获,就是了解了一下传感器的使用,接收脉冲信号的方法和对计数器的使用吧,不值得一说。

 

 

        

 

51单片机学习笔记(1) 单片机的基本概念 1.1单片机的组成* 由CPU、RAM(随机存储器)、ROM(只读存储器)、I/O接口、以及内部功能部件组成。 1.2单片机内部数据传输* 单片机内部数据传输通过总线完成,输入数据时会经过三态门,三态门挂在总线上,当需要作为输入时,保持为低电位,输出时为高电位。51单片机内部有16根地址总线,总线与单片机的寻址能力有关,其对应关系为:单片机能够寻找到的地址=2的总线个数的次方。 ... 阅读详情

相关推荐

51单片机学习笔记——基于汇编语言(1)

51单片机汇编语言学习日记(1) 阿婆主近期在疫情学校上网课期间里开始汇编语言的51单片机学习,由于博客与论坛上的单片机教程几乎都是基于C语言的,阿婆主打算将自己的学习记录连载在博客上。 该系列文章基于80C51单片机,Keil2(这个版本是比较古老,不过keil2和keil5其实区别不大) 1、80C51系列单片机硬件结构 在开始讲单片机之前,相信大家已经对进制转换与码值已经有了一定的了解,如果...

qq_43327300的博客 6666

51单片机学习笔记 ——(五)串口通信

UART是一种串行、异步、全双工的通信方式(下图来自江科大B站视频)此处出现了异步这一个概念,在通信过程中,两个设备之间必须约定好传输速率,即波特率,每秒传输bit的位数。否则会出现传输错误的现象。51单片机内部只设置了1个UART,具体位置可以参考原理图查找。同时设置了4种传输方式。

zeandon的博客 2683

51单片机基础知识

前言 周末闲着无聊,以后定时更新一期关于51单片机的学习案例,以供大家平时参考使用。至于单片机,你可以理解为人的大脑,而人各项身体器官的运作需要意识给到大脑,然后大脑再驱动我们的中枢神经进行相应的动作,这里的意识可以理解为我们要写的程序,而人的器官相当于各种输出设备,例如我们以后要学的LED、电机、各种传感器等等。学好单片机能让你找到一份相对不错的工作,当然越可观的东西也是要付出相应努力的。 一、51单片机是什么? 通常我们一说到 51 单片机,指的都是兼容IntelMCS-51体系架构的一系列单片机,而

qq_43537819的博客 6904

C51单片机学习笔记(五)——数码管的静态显示和动态显示

C51单片机学习笔记(五)——数码管的静态显示和动态显示 文章目录C51单片机学习笔记(五)——数码管的静态显示和动态显示1.数码管的显示原理 1.数码管的显示原理 数码管有一位和多位一体两类,它是由8个LED(a,b,c,d,e,f,g,dp)排列组成,任意一个LED叫作一个“段”。通过给a,b,c,d,e,f,g,dp各个脚加上不同的控制电压可以使不同的LED导通发亮,从而显示0~9各个数字...

WD 2万+

01-51单片机LED与独立按键

单片机,英文Micro Controller Unit,简称MCU。其内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能。我们可以依靠单片机的传感器采集相应的数据,可以通过 CPU 处理数据,还可以完成对硬件设备,如:LED,蜂鸣器,电机等的控制。单片机相当于一台微型计算机,相比于我们平时使用的电脑,有优势也有劣势:缺点:在性能上,与计算机相差甚远,处理数据的能力要远低于计算机;

qq_63958145的博客 2292

51单片机 | 如何学习单片机 | 开发板功能介绍 | 开发板使用方法 | 51单片机介绍

如何学习单片机 | 开发板功能介绍 | 开发板使用方法 | 51单片机介绍

F4_Family的博客 4067

C语言:51单片机看这一篇就够了

一、环境搭建 1、开发软件Keil5C51 2、烧录软件stc-isp 3、普中51单片机开发板 二、单片机介绍 1、单片机(Micro Controller Unit ,即MCU) 2、本篇所使用的单片机为STC89C52单片机 所属系列为8051,即51单片机。8051最开始指在80年代生产的8051内核的单片机。后延伸为只要是8051内核的单片机,都统称为51单片机。 3、51单片机命名规则 ...

weixin_43431593的博客 14万+

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

51单片机介绍

大家好,我是泽奀,这篇博客我将说说关于51单片机知识介绍。在第一篇的时候我概述过C语言,没看的可以去看看https://blog.youkuaiyun.com/weixin_52632755/article/details/119757327(1)https://blog.youkuaiyun.com/weixin_52632755/article/details/119791540(2),分别是《C语言概述1》《C语言概述2》。之所以要讲下51单片机介绍,是因为相信也有很多人对单片机感兴趣吧,当然也有很多是想学但是不清楚,或者.

"謓泽"正在路上朝着"攻城狮"方向"前进四"! 2万+

瑞萨RA6M5驱动ST7735屏幕避坑指南:从软件SPI到显示汉字与图形的完整流程

本文详细介绍了瑞萨RA6M5单片机驱动ST7735屏幕的完整流程,涵盖硬件连接、软件SPI控制、汉字显示及图形绘制优化等关键步骤。通过避坑指南和实用代码示例,帮助开发者解决屏幕初始化、时序控制、字库移植等常见问题,实现高效稳定的显示效果。

weixin_28705087的博客 275

VECTOR硬件VN1600系列对比:VN1610、VN1611、VN1630A、VN1640A、VN1630log、VN1670

VN16系列说不清道不明的区别和关系

AmorRun的博客 2万+

什么是单片机,什么是51单片机【51单片机介绍】

在目前,在电子界,如果想进入微控制器领域的学习,相信绝大多数的人会 认为要从 51 单片机开始。不错,在众多微控制器中,51 单片机确实是非常适 合初学者入门学习的,因此很有必要先认识和了解 51 单片机。本章将向大家介 绍 51 单片机,通过本章的学习,让大家对 51 单片机有一个深入的了解,为后面 51 单片机的学习做好铺垫。...

爱吃饼干的小白鼠的博客 1万+

4. PCIe 接口时序

在上一篇中,大致介绍IPcore接口。总的来说接口如下图数据的接收和发送通过transmitTLPinterface和ReceiveTLPinterface。收发数据的时序也只是描述这几个接口的关系。从手册上截取PCIex1的接口时序。

jjinl的专栏 6122

江科大51单片机学习笔记

1.单片机,英文Micro Controller Unit,简称MCU2.内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等系列电脑的常用硬件功能3.单片机的任务是信息采集 (依靠传感器)、处理(依靠CPU) 和硬件设备(例如电机,LED等) 的控制4.单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用5.同时,学习使用单片机是了解计算机原理与结构的最佳选择。

Conjurer_China的博客 4411

提取abaqus中节点集合的应力应变

节点是没有应力应变的,只有积分点才有,所以直接在odb文件里面用FieldOutput是整不出来的(结果是个空列表),只能用session这种让abaqus自己帮你处理。具体的代码需要根据自己操作的时候abaqus.rpy这个文件中代码的变化来更改。

蓝胖子的博客 4553

MCU 微控制器,在实际项目中如何选型(以 STM32为例)

1.MCU 选型需要考虑的一些因素 2.案例:传感器设备的 MCU 选型

创享 AIOT 的专栏 1万+

51单片机入门教程学习笔记

基于江科大自化协B站教学视频《51单片机入门教程-2020版 程序全程纯手打 从零开始入门》

王家寧的博客 6408

使用C++实现DNS欺骗攻击

其中,domain_name表示需要欺骗的域名,dns_server_ip表示实际DNS服务器的IP地址,fake_ip表示需要重定向到的IP地址。在DNS查询过程中,当客户端向DNS服务器请求解析某个域名时,DNS服务器会返回该域名对应的IP地址。DNS劫持是一种常见的网络攻击方式,通过篡改DNS响应数据,使得用户访问的网站被重定向到攻击者指定的恶意站点。我们使用C++编写一个简单的DNS欺骗程序,使得当客户端请求解析特定的域名时,我们可以将其重定向到指定的IP地址。使用C++实现DNS欺骗攻击。

TechGlide的博客 411

51单片机学习笔记

位数:8位RAM:512字节工作频率:12MHzTTL规范(I/O口工作模式:弱上拉强下拉:输出1驱动能力有限,输出0驱动能力较强。

2401_86645122的博客 2762

leaflet 综合教程170+ 【目录 】(已包含162篇文章)

vue+leaflet系列教程旨在为开发者提供简单快捷的,。在每一个示例中,解释相应的API知识点,做到。注意本示例目录中的内容可能加载是vue+openlayers的示例, 本目录是要加载vue+leaflet的示例,只是内容少,逐渐更新中。

大剑师兰特的GIS世界 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

51单片机学习笔记之点亮LED灯

51单片机点亮实验

Dg24682538000的博客 2828

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

51单片机学习笔记(2)——51单片机简介

1、单片机内部三大资源 Flash——程序存储空间,早期单片机是 OTPROM 在早期的单片机中,主要是用 OTPROM(One Time Programmable Read-Only Memory,即一次可编程只读存储器)来存储单片机的程序,程序只能写入一次。随着技术的发展, Flash 以其可重复擦写且容量大成本低的优点成为现在绝大多数单片机的程序存储器。对于单片机来说 Flash 最大的意义...

masudong的博客 7573

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

51单片机学习笔记-1简介及点灯

点灯、按键电灯

虎慕的博客 5897

c51单片机学习笔记一

单片机有关的基础知识,以及led,蜂鸣器,数码管等实验。

m0_70968573的博客 4189

【51单片机】51单片机学习笔记- 单片机及开发板介绍

本文系统介绍了51单片机的基础知识,重点阐述了STC89C52单片机的特性与应用。主要内容包括:单片机的基本组成(CPU、RAM、ROM等)及集成特性;51单片机的发展历程和主流厂商产品;STC89C52的具体参数(8位、512B RAM、8K Flash等);单片机的典型应用领域(智能仪表、工控系统等);以及单片机内部结构、管脚图、最小系统电路等硬件知识。文章还展示了开发板原理图,为初学者提供了全面的51单片机学习资料,适合作为嵌入式系统开发的入门参考。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 2515
上一篇: 51单片机学习笔记(四)
下一篇: 关于单片机上for循环中运用ACC的隐蔽错误
0木木0
博客等级 码龄17年 458粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值