51单片机I/O口使用经验】的更多相关文章

按常规,在51端口(P1.P2.P3)某位用作输入时,必须先向对应的锁存器写入1,使FET截止.一般情况是这样,也有例外.所谓IO口内部与电源相连的上拉电阻而非一常规线性电阻,实质上,该电阻是由两个场效应管并联在一起:一个FET为负载管,其阻值固定:另一个FET可工作在导通或截止两种状态(姑且叫可变FET).使其总电阻值变化近似为0或阻值较大(20千欧--40千欧)两种情况.当和端口锁存器相连的FET由导通至截止时,该阻值近似为0,可将引脚快速上拉至高电平:当和锁存器相连的FET由截止至导通时,…
嵌入式开发PCB设计几点体会(转载):http://bbs.ednchina.com/BLOG_ARTICLE_3021801.HTMCollector-Emitter Saturation Voltage:集电极-发射极饱和电压 PCB常见封装(转载):http://blog.163.com/w_m314@126/blog/static/67849299201092211745865/?latestBlog 51单片机的IO口驱动能力.灌电流.拉电流.上拉电阻的选择:http://bbs.el…
51单片机P0/P1/P2/P3口的区别: P0口要作为低8位地址总线和8位数据总线用,这种情况下P0口不能用作I/O,要先作为地址总线对外传送低8位的地址,然后作为数据总线对外交换数据: P1口只能作为I/O口(P1.0.P1.1以外): P2口除了作为普通I/O口之外,在扩展外围设备时,要用作高8位地址线: P3口除了作为普通I/O口之外,其每个引脚都有第二功能. I/O端口具有以下特性: ① 端口自动识别:无论是P0 P2口的总线复用还是P3口的功能复用,内部资源会自动选择,不需要通过指令…
51单片机P0/P1/P2/P3口的区别: P0口要作为低8位地址总线和8位数据总线用,这种情况下P0口不能用作I/O,要先作为地址总线对外传送低8位的地址,然后作为数据总线对外交换数据: P1口只能作为I/O口(P1.0.P1.1以外): P2口除了作为普通I/O口之外,在扩展外围设备时,要用作高8位地址线: P3口除了作为普通I/O口之外,其每个引脚都有第二功能. I/O端口具有以下特性: ① 端口自动识别:无论是P0 P2口的总线复用还是P3口的功能复用,内部资源会自动选择,不需要通过指令…
IO口扩展芯片,主要是解决单片机IO口太少. 74HC165:数据从并转串 74HC595:数据从串转并 两种芯片,都是通过时序电路,加上移位功能,进行数据传输 74HC165:数据从并转串.以下实例,实现8个独立按键,控制数码管的8段 #include <reg52.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u16; void delay( u16 i ){ while( i--…
关于STM32GPIO口的8种工作模式,我们先引出一些问题? STM32GPIO口如果既要输入又要输出怎么办? 1.浮空输入模式 上图红色的表示便是浮空输入的过程,外部输入时0读出的就是0,外部输入时1读出的就是1,外部没有输入IO处于阻塞读不出电平状态. 用处:感觉在信号处理方面用的比较好,比如在读取一段一段的波形,可以清晰的知道什么时候是0信号,什么时候是1信号,什么时候是没有信号的. 类比:51单片机找不到类似的输入模式   2.上拉输入 上拉输入和浮空输入的区别是,上拉电阻的开关关闭了,…
我们即将进入51单片机的编程学习,咱们今天就来讲解一下单片机中的C语言(你可以称作C51) 在说编程之前,要先说一些别的东西: 二进制,八进制,十六进制 二进制中只有数字0和1,在二进制中1+1为10,我们常说十进制逢十进一,那二进制就是逢二进一,那为什么我会在这里说二进制呢,因为我们的51单片机的io口是可以接受发送低电平和高电平的,意思就是输入输出的口只有0和1两个状态,所以如果我们理解了二进制,那么对于单片机的输入和输出就会十分明了了 八进制,学过C语言,咱们都知道,在C语言中其实是不能直…
推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止. 开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内). 我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为"0"时,输出也为"0").对于图1,当…
1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构.高电平时,V1打开,V2截止:低电平时,V1截止,V2打开.这种情况下不用外接上拉电阻.而且,当V1打开,V2截止,输出高电平的时候,因为内部电源直接通过V1输出到P0口线上,因此驱动能力(电流)可以很大,这就是为什么教科书上说可以"驱动8个TTL负载"的原因. 2.P0作为一般端口时,V1就永远的截止,V2根据输出数据0导通和1截止,导通时拉地,当然是输出低电平:截止时,P0口就没有输出了,(注意,这种情况就是所谓的高…
51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于:   分类: 深入C语言(20) 作者同类文章X #include "reg52.h" #include "intrins.h" #include "math.h" #include "stdio.h" sbit BT_SND =P1^; sbit BT_REC =P1…
并行I/O口扩展实例 //<51单片机原理及应用(第二版)——基于Keil C与Proteus>第四章例4.4 I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0.P2口用作地址总线和数据总线,此时能用的I/O口就只有P1和P3口,如果再使用串行通信,I/O口就不够使用了,需要扩展I/O口 两种方式: ① 采用普通锁存器.三态门等芯片来进行简单的扩展(如74LS373或74LS244等) ② 采用可编程的I/O芯片来扩展(如8255或8155等) - - - - - - - -…
51单片机I/O引脚IO口工作原理 一.51单片机管脚p0.p1.p2.p3口区别如下: 1.意思不同P0口作输出口用时,需加上拉电阻.P0口有复用功能.当对外部存储器进行读写操作时,P0口先是提供外部存储器的低8位地址,供外部存储器地址锁存器锁存,然后充当数据线,用于写出或读入数据.P1口.P2口…
目录: 单片机的大致介绍         1-1.通俗定义         1-2.51系列产品         1-3.标号意思         1-4.引脚介绍         1-5.用C语言开发的部分信息 1.单片机的大致介绍    1-1.通俗定义    1-2.51系列产品    1-3.标号意思 附加关键字:芯片上标号对应温度范围.芯片封装(DIP\PLCC\QFP\PGA\BGA\CBGA\)    1-4.引脚介绍 通用的为40引脚的,但是也有其他数量引脚的. >_<&quo…
很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这个是在头文件中用sfr定义的,现在定义好了的是这样的 sfr P1  = 0x90; 也就是说,到底大写,还是小写,就是在这里面决定的.这就说明,如果你要用小写,就得在头文件中改为小写.其实它都是为了编程序方便才这样写的,在程序编译时,就会变成相应的地址(如P1就变成了0x90). 下面是一个标准的C51头文件REG52.H: (此文件一般在C:\KEIL\C51…
51单片机的4个控制引脚,其中一个引脚是复位引脚(RST/Vpd),RST是复位引脚,当RST输入端保持2个机器周期以上高电平时,就实现复位. ALE/PROG是地址锁存允许信号输出端,在读写外部存储器时,用于锁存低8位地址信号.当单片机正常工作后,ALE以时钟振荡频率的1/6输出固定的脉冲信号.第二功能PROG是对片内带有4K EPROM的8751固化程序时,作为编程脉冲输入端. PSEN 是片外程序存储器的读选通信号,低电平有效,CPU从外部程序存储器取指令时,PSEN信号会自动产生负脉冲,…
//************************************************************************************* //**程序名称:51单片机实现对24C02进行页写.顺序读取并显示验证 //**编写人:**** //**修改人:**** //**程序目的:熟悉I2C总线协议,实现51模拟I2C时序和24C02通信 //**功能描述:51单片机将8个字节数据写入24C02的一页中,然后顺序读出,每隔1秒送P0口LED显示 //**其他…
引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接至I2C总线而不需要额外硬件.PCF8591由于其使用的简单方便和集成度高,在单片机应用系统中得到了广泛的应用,这篇文章是介绍IIC通信在ADDA转换芯片PCF8591中的应用. 关于IIC IIC总线通信协议的介绍在"基于51单片机IIC通信的AT24C02学习笔记"有详细的介绍. 关于…
一.C语言相关 Q1:sbit与sfr代表是什么?有什么作用? Q2:#define OSC_FREQ  22118400L这句宏命令里的“L”是什么意思? Q3:我粘贴了别人的代码,怎么发现没有unit这个类型? Q4:为什么好多变量都是char类型?它不是字符类型吗?怎么可以用来计数? Q4.1:51单片机中的char,int,long,float,double各占多少个字节,取值范围多大? Q5:unsigned char data是什么数据类型? Q6:void timer() inte…
​大部分朋友可能都知道51单片机和stm32单片机也知道一般入门会先学习51单片机在学习stm32单片机会简单一些,但是对于51单片机和stm32单片机的具体区别却不知道了,有些人觉得没必要,但是我个人认为只有在你搞懂了其中的差异之后对于其自身学习是有莫大的好处的. 下面我们就来进入今天的主题 单片机简介 单片微型计算机简称单片机,简单来说就是集CPU(运算.控制).RAM(数据存储-内存).ROM(程序存储).输入输出设备(串口.并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,C…
In Doing We Learning 在操作中学习.如果只是光看教程,没有实际的操作,对编程语言的理解很空泛,所以决定从单片机中学习C语言. #include<reg52.h>                 //包含的头文件. sbit LED = P0^0;                         //这里就是对P0寄存器进行位操作.相当于对P0^0位赋予了一个新的名字,LED.实际上这一块可以包含在头文件中.避免重复操作.sbit ADDR0 = P1^0;sbit ADDR…
关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储空间的大小,2*4K=8K 40:晶振最高频率40MHZ,单片机工作的速度 C(commercial):商业级.(还有I(industry):工业级)区别在于温度可用范围,商业级:0~85℃,工业级:-40~125℃,还有军品级:-55~160℃(这个不确定). PDIP:封装形式,双列直插式 07…
1.什么是源型 漏型?什么是上拉电阻?下拉电阻?什么是 线驱动输出 集电极开路输出,推挽式输出? 我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”).对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极c跟发射极e之间相当于断开),所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合):当左端的输入为“1”时,前面的三极管导通,而后…
1.21个寄存器介绍        51系列单片机内部主要有四大功能模块,分别是I/O口模块.中断模块.定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图: 图1 51单片机结构和功能图 51单片机掌握的好坏,其实就是能否正确操作这四个功能模块,而其操作的实质则又是能否对每个模块所对应寄存器的正确操纵.所以下面重点介绍一下51系列单片机内部的特殊功能寄存器(简称SFR,以下说明以此代替).(关于什么叫特殊功能寄存器,这里先不作介绍,不懂的请查阅51单片机相关资料.) 51单片机内部共…
#include <AT89X51.H> #include <intrins.h> // 函数原形定义 #define uchar unsigned char #define uint unsigned int void main (void); // 主函数 void LED_OUT(uchar X); // LED单字节串行移位函数 void LED_print (uchar p, uchar x) ; unsigned char code LED_0F[]; // LED字模…
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h>  void main(void)  {   EA=1;      //开放总中断   EX0=1;     //允许使用外中断   IT0=1;    //选择负跳变来触发外中断    P0=0xff;         //关闭所有P0口的LED灯        while(1); //无限循环,}void it0(void) interrupt 0 using 0 //外中断0的中断编号为0{…
1.    串口也可以有多根线的,但是各线之间没有协调同步发送,而是各自是独自发送的.并口是同步发送,同步一次8位同时成功同时失败,类比事务. 2.    ASCII码的前32位是通讯预留的编码即使现在也用途广泛,但是在高级语言里,因为不直接和二进制打交道往往都是从新定义了一个新的通讯方式,而在单片机领域则是用ascii码方便大家通讯. 3.    单片机有很多的引脚,同样笔记本的主板也有很多的插槽,这点和笔记本的主板是相同的. 4.    ===================51单片机部分=…
单片机 / AVR / PIC / STM32 / 8051803189C5189S51 6905 单片机简介 单片微型计算机简称单片机,简单来说就是集CPU(运算.控制).RAM(数据存储-内存).ROM(程序存储).输入输出设备(串口.并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU.RAM.ROM.I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已. 51单片机和STM32单…
单片机的引脚,可以用程序来控制,输出高.低电平,这些可算是单片机的输出电压.但是,程序控制不了单片机的输出电流. 单片机的输出电流,很大程度上是取决于引脚上的外接器件. 单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”:单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”. 这些电流一般是多少?最大限度是多少? 这就是常见的单片机输出驱动能力的问题. 早期的 51 系列单…
小白 第一次跟新博客 基于51单片机和LCD1602的万年历程序 可实现走时和调时功能 有简单的1602菜单制作 欢迎大家交流 LCD1602和51单片机的连接方法 RS = P3^5; //数据/命令选择端(H/L)RW = P3^4; //数/写选择端(H/L)EN = P3^3; //使能信号P0 //LCD1602的数据口D0-D7 #include<reg52.h> typedef unsigned char uChar8;typedef unsigned int uInt16; u…
51单片机点亮一个小灯 #include <rge52.h> sbit LED = P0^ void main(void) { P0 = 0XFE; // 总线操作 sfr P0 0X80 LED = ; // 位操作 } STM32中 STM32通过一个寄存器控制电平的输出ODR  :CRL CRH实现在端口的配置(用绝地地址,目前我们没有寄存器映射,上篇文章有写.) 配置PC2使LED点亮  下图为GPIOX_CRL的配置说明          (四位控制一个GPIOx的端口我们要控制PC…