单片机驱动数码管电路用P0口驱动“共阳极数码管”需要上拉电阻吗

导读:3.系统单元电路的设计,组成:红外传感器组成由光学系统、检测设备和转换电路组成,分类:按结构的不同可分为光学系统的传输和反射两种类型,3.2LED显示器部分3.2.1MCS-51单片机和LED显示接口,经常使用的单片机应用系统,LED数码管作为显示输出设备,虽然LED显示屏显示信息简单,但它有显示清晰、高亮度、低电压、使用寿命长等特点,基本能够满足单片机应用系统的需求,3.2.2本次设计数码管
3.系统单元电路的设计
3.1 红外线检测电路
3.1.1 红外传感器的概念
红外传感器,在20世纪80年代兴起的一个新的,高度敏感的探测器元件。它是一种能够探测到由红外线发射出的信号并且转换成电信号的器件。红外又称红外光,它具有反射,折射,散射,干涉,吸收和其他属性。利用物体产生红外辐射特性,红外传感器可以实现自动检测。任何物质,只要有一定的温度(绝对零度以上),可以产生红外线辐射,就可以用红外传感器检测。红外传感器测量与被测对象无直接接触,从而具有无摩擦,灵敏度高,响应速度快的优势。
3.1.2红外传感器的组成和分类
组成:红外传感器组成由光学系统、检测设备和转换电路组成。 分类:按结构的不同可分为光学系统的传输和反射两种类型。检测元件根
据热检测设备和光学检测设备的原则,可以分为热敏监测和光电检测两部分。使用最广泛的热元件是热敏电阻。热敏电阻器是由红外辐射、温度、电阻改变成电信号输出的转换电路。
3.1.3红外传感器的特点与原理
特点:(1)具有信号输出指示
(2)单路信号输出
(3)输出为低电平有效
(4)灵敏度可调
(5)可用于工件计数、电机测速等
(6)电路板输出开关量
原理:红外模块有三个I/O口,两个口分别接电源正负极,另一个口则为输出口,当红外传感器没有检测到外部信号时该输出口处于高电平状态,当检测到外部物体时该输出口由高电平状态变为低电平状态,通过与单片机的I/O连接来检测高低电平变化。 原理图:
图3.1.3 原理图
LED显示器部分
3.2.1 MCS-51单片机和LED显示接口
经常使用的单片机应用系统,LED数码管作为显示输出设备。虽然LED显示屏显示信息简单,但它有显示清晰、高亮度、低电压、使用寿命长等特点。和单片机接口连接方便,基本能够满足单片机应用系统的需求,所以经常被用在单片机领域。
3.2.2 本次设计数码管显示部分
显示部分是通过三个数码管来完成,分别接到P0、P1、P2口上。然后再通过软件译码来完成,为了考虑到数码管在动态扫描时,每点亮一个数码管的时间很短暂,这样就会影响到数码管的亮度,故在此用共阳极数码管,用共阳极数码管可以不用加驱动,而且显示亮度非常好。
该设计中段码输出口是利用P0口作为输出口,而P0口是漏极开路,虽然有很强的灌电流能力,但拉电流能力很差,故在P0口上加一个10K的排阻作为上接电阻。上拉电阻的作用是,当单片机的P0口上输入为1时,上拉电阻上的电
流直接流入单片机中,使数码管的段码上保持低电平,因此码管在这时不发光;而当单片机的P0口输出为高电平时,这时上拉电阻使电流灌入单片机中,故排阻上的电流流入数码管中,因此这时数码管发光(这里用的是共阳极数码管)。 本次设计显示部分采用软件译码动态显示,所谓的软件译码动态显示是指字符段选择组织一个表来显示字符的第一次查表得到其选举的代码段,然后传送到显示段码。 3.2.3 本次设计次单片机与数码管连接仿真图
图3.2.3 仿真图
3.3 单片机计数及控制部分
3.3.1外部中断计数
完成技术功能的部分由单片机STC89C51控制,基本原理为当红外检测部分检测到光时,红外接收电路输出口将产生一个高电平信号,该信号将提供给单片机计数控制,P0、P1、P2三个端口负责实现显示的部分。
计数控制部分将计入脉冲的单片机STC89C51中断INT0的入口,计数编程构成中断信号后,内部的微控制器。 STC89C51的MCS-52指令集完全兼容。提供下列标准特性:4K字节的FLASH闪存,128字节内部RAM,32 I / O口线,3个16位定时器/计数器,一个五向量两个中断,片上振荡器和时钟电路。 STC89C51的两种省电模式具有下调至0Hz的静态的逻辑功能。在CPU、振荡器停止工作时,禁止其他部分工作,仍可继续正常运行的有RAM、定时器/计数器、中断系统,RAM中内容不会删除,复位时一切恢复正常。 总之,设计最合理的是外部中断计数,故本次设计采用外部中断计数。
3.3.2 本次设计中断仿真图
图3.3.2 中断仿真图
4. 系统流程图、程序设计
4.1 主程序流程图
图4.1 主程序流程图
4.2 脉冲中断流程图
图4.2 脉冲中断流程图
4.3 程序设计
STOREH EQU 20H计数高位暂存单元
STOREL EQU 21H计数低位暂存单元
FLAG BIT 22H显示定位标志
ORG 0003H外部中断0地址入口
ORG 000BH定时中断0地址入口
ORG 0030H ;**********************初始化********************** MAIN: MOV SP,#60H设堆栈栈底
MOV TMOD,#01H设为定时器0,模式1
MOV TH0,#0FCH1ms定时中断
MOV TL0,#18H
MOV R2,#0计数单元清0
CLR FLAG显示标志清0
MOV STOREH,#0初始化暂存单元清0
MOV STOREL,#0
SETB ET0打开定时器0中断
SETB TR0打开计数 包含总结汇报、外语学习、人文社科、经管营销、党团工作、IT计算机、专业文献、应用文书、考试资料、计划方案、行业论文、工作范文以及生产流水线产品产量显示系统等内容。本文共3页
相关内容搜索请问你一下我上拉电阻元器件应该买什么样的呢?我用的是AT89c51单片机 电压5v 用的共阳数码管_百度知道
请问你一下我上拉电阻元器件应该买什么样的呢?我用的是AT89c51单片机 电压5v 用的共阳数码管
请问你一下我上拉电阻元器件应该买什么样的呢?我用的是AT89c51单片机 电压5v 用的共阳数码管
我有更好的答案
330欧最佳!可以算出来的。可以买到330的排阻。祝你成功!
来自:求助得到的回答
要求不是很严格,一般的1K就可以了。
10k的和1k的都可以吗?还是一定是1k的?
万分感谢~~
直插式的一般用阻排,要不用贴片,阻值要求不严,1K左右
为您推荐:
其他类似问题
上拉电阻的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。可以的,段选要扩流否则不够亮2个74HC595能否直接驱动1个4位共阳极数码管,要不要在数码管段选上加限流电阻,是用5V驱动89c52单片机的它占用了P0口的一部分灌电流,你加了上拉电阻的话,只要限流电阻就可以了,P0口有低电平可以连到P0口。因为段选是低电平有效,只是没有高电平而已,数码会比以前暗,所以上拉电阻完全不用接,而且不需要上拉电阻想用8550驱动2个4位共阳数码管位选,那段选是不是连到P0口啊,连的话要多大上拉电阻??ULN2003A高压大电流达林顿晶体管 用法和锁存器相似 但没用过 有空可以好好研究一下:一个位选 一个段选。另外 一些功率驱动芯片都可以 因为数码管工作原理是不变的74HC573锁存器 共用两片。这个挺好使的还挺简单。CH452数码管显示驱动和键盘扫描控制芯片 它是专用芯片 不过用起来要麻烦些驱动4位共阳数码管段码的芯片有哪些?位选的呢?(除了74LS47,74LS138)方便C语言编程的。如果是高电平有效,就用PNP三极管这个问题取决于控制端(三极管基极)是高电平有效还是低电平有效;如果是低电平有效、用NPN三极管怎么用三极管驱动四位一体共阳数码管。用npn还是pnp。求助。delayms(10); //P2=0P0=mode_char[3];P0=mode_char[2];显示的数据并延迟一段时间P2=0P2=0xf7; /关位选P2=0/显示{P2=0/ delayms(10); delayms(10);P2=0P2=0P2=0开位选P0=mode_char[6]; / delayms(10);P0=mode_char[5]硬件没问题的话 是因为你软件上没关“位选” 简单的来说void display() //请问我用9015驱动四位共阳数码管时为什么会出现重影?9015C 极接数码管COM,E极接VCC,B极接MCU低位b=ReadOneChar();/reg52;}/////,/,int ge){x=get_temp();//写一个字节void WriteOneChar(uchar dat){uchar i=0.0625; //10;//#include显示十位ge=temp%10;/拉高总线delay(20); / /DATA = 1;显示百位shi=temp%100/。;//稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(30);=1;跳过读序号列号的操作WriteOneChar(0xBE);读温度bai=x%1000/P0=table[bai]; 给脉冲信号if(DATA)dat|=0x80;//读一个字节 从低位到高位ReadOneChar(void){uchar i=0;uchar dat = 0;一小段延时动态显示P2=0/显示千位delay(300); 跳过读序号列号的操作WriteOneChar(0x44);//,0x6d;显示十位ge=x%10;//DQ复位delay(10);=1;显示小数点delay(150);显示千位delay(100); ////显示百位delay(300);//Init_DS18B20();=8;/int t=0;for (i=8;/,0x40};DATA = 1;t=t|a;显示百位shi=x%100/100;P0=table[shi]|0x80; /#include i--){DATA = 0;P0=table[0];}delay(8);/读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();读温度bai=temp%1000//一小段延时动态显示P2=0/iP0=table[bai]; / /精确延时 大于 480us / /,0x66,/ /显示小数点P0=0X7f;0,0x06; //100;显示小数点P0=0X7f;显示个位display(///显示个位delay(300); /显示小数点delay(150),ge);显示小数点P2=0x7f;*延时子函数*/}/delay(8);void display(int bai,/////}/for (i=8;DATA = 1,int ge){P2=0X单片机将DQ拉低delay(80);P0=table[ge];/P2=0P0=table[shi]|0x80;P0=table[0];P2=0void Init_DS18B20(void) //读取温度int ReadTemperature(void){uchar a=0;/WriteOneChar(0xCC).h显示个位delay(100); //// ////DS18B20接入口uchar code table[]={0x3f;P2=0显示十位delay(300);delay(10);/P0=table[ge];××××××××××××××××××××××××××××××××××××××××××××/传感器初始化{显示百位delay(100);DATA = dat&0x01; /P2=00;10;char bai。给你一个参考一下void display(*************DS18b20温度传感器函数*********************//while(1){temp=ReadTemperature(); /,}不过你的程序真够麻烦,给你一个看看;i--){DATA = 0;}return(dat);t,0x5b;初始化WriteOneChar(0xCC)。/ / 启动温度转换Init_DS18B20().5;*显示子函数*/450DATA = 1;/稍做延时DATA = 0;/S18b20返回一个信号 DATAx=DATA; /}void main(){}///,0x6f; /t= tt*10+0; /,0x4f;float tt=0;/显示小数点P2=0x7f;dat,0x7d;//定义变量//}/显示十位delay(100);/,return(t);/ i 给脉冲信号dat/void delay(uint num){while(num--) ;#define uchar unsigned char#define uint unsigned intsbit DATA = P3^7;/ //tt=t*0;高位t=b,0x07;/uchar b=0,0x7f;//.h显示个位P2=0Xdf显示函数有问题;初始化成功的话?DS18B20 AT89S52单片机四位共阳数码管温度计怎么才能实现,各位大神下面是我的程序,主要显示函数不会弄/.5;/Delay_DS18B20(250); 给脉冲信号if(DQ)dat|=0x80; / ///0-9数字;100,p;跳过读序号列号的操作WriteOneChar(0xBE);/t= tt*10+0;=1; 给脉冲信号dat*****读取温度*****/.h定义控制数码管的管脚sbit L2=P2^6;Delay_DS18B20(250);for (i=8;/,0xa7};WriteOneChar(0xCC);启动温度转换Init_DS18B20();DQ = 1; / //,0x90;void Init_DS18B20(void){unsigned char x=0;i}/分离出个位p=j%10;P0=table[12];/,0//}void display()/定义DS18b20的管脚sbit L1=P2^7,0x92;DQ = 1; /数码管扫描函数{P0=table[m];P1=table[10];}/ /unsigned char dat = 0;L3=1,0x7f; /WriteOneChar(0xCC); //. - C" /10; i放大10倍输出并四舍五入return(t);*****延时子程序*****/=1;分离出十位n=(j%100)/*****读一个字节*****/DQ复位Delay_DS18B20(8),0xA4;tDQ = dat&0x01;单片机将DQ拉低Delay_DS18B20(80);t=t|a;/void Delay_DS18B20(int num){while(num--) ;//unsigned char b=0;/ //L2=1;0;/,x=1则初始化失败Delay_DS18B20(20);L1=0,0x80;P0=table[p];读取温度m=j////跳过读序号列号的操作WriteOneChar(0x44);读高8位t=b;}/float tt=0;读低8位b=ReadOneChar();unsigned char ReadOneChar(void){unsigned char i=0; /;sbit L4=P2^4; //}}/sbit DQ=P2^3,0xF8;while(1){j=ReadTemperature();拉高总线Delay_DS18B20(14),后面为"/L4=1;Delay_DS18B20(4);第二位后显示中间点L2=0;后关闭显示P0=table[n];//,0xF9;*****写一个字节*****/0;L1=1;//void main()/i--){DQ = 0;/}// i--){DQ = 0;精确延时;unsigned int t=0;P0=table[10];/,n;}return(dat);/*主函数部分程序*///Init_DS18B20();for (i=8;/,0x99;L2=0;void WriteOneChar(unsigned char dat){unsigned char i=0;暂未1;reg52,0xB0;Delay_DS18B20(250),大于480usDQ = 1;L2=1;读取温度寄存器a=ReadOneChar();=8;*****初始化DS18B20*****/L4=0;DQ = 1; //,如用三极管驱动要改为0Delay_DS18B20(250);主函数{/unsigned char table[]={0xC0;//稍做延时DQ = 0;小数部分L3=0; //sbit L3=P2^5;tt=t*0;dat/unsigned int ReadTemperature(void){unsigned char a=0;稍做延时后; /,如果x=0则初始化成功,0x82;分离出小数位display();/Delay_DS18B20(250)#include&lt.0625;x = DQ;///Delay_DS18B20(5)STC89C51与DS18B20加一个四位共阳数码管组成的测温显示,谁能告诉我程序的流程图,和子程序流程图,必有重4位共阳数码管,怎么用汇编语言让它显示16个数据?可以每组4个显示,刚好能驱动4个数码管,采用静态显示方式,P0-P3 分别接一个数码管的8段,亮度更低除非你把51单片机的32个IO口,全部用来驱动数码管,但驱动多个LED例如7段数码管则平均电流太小了,单片机单个IO口可以驱动一个发光二极管不成问题不采用三极管或芯片驱动数码管 亮度根本不行,若再动态扫描4位一体共阳数码管显示时间,不可采用三极管或芯片驱动数码管,单片机stc89c51,怎么点亮?速度去pudn找,这里不合适请问一下,用单片机C51控制4位的共阳数码管来实现频率计作用,能够显示频率,周期还有占空比怎么做?急!展开全部下一篇:九阳榨汁机作为榨汁机品牌中的驰名品牌,其产品质量好性能高,广受消费者的欢迎,其市场销售前景也很好。那么,九阳榨汁机哪款好用呢?榨汁机是每个家庭都会有的小家电,而且如果家中有人喜欢喝果汁的话,那么榨汁机就是很好的选择,对于榨汁机品牌方面的选择,想必大家都听过九阳这个品每个家庭都有榨汁机,我们可以把自己喜欢的水果或是蔬菜之类的食物放进榨汁机里面,瞬间就可以喝到顺口的饮品,而对于榨汁机品牌,我们可以参考九阳榨果汁是大多数人都很喜欢的饮品之一,但是市面上的果汁往往会有一些添加剂,经常饮用会对我们的身体造成危害,因此很多人会选择在家自制果汁。九阳豆浆机怎么用?九阳厨电是我们耳熟能详的品牌,相信很多人的家中都有它们的身影,那九阳豆浆机怎么用呢?接下来我们就一起来探究探究九阳豆浆机怎么用吧!有了豆浆机但是不会用该怎么办呢?在使用豆浆机的时候我们要知道豆浆机要怎么用才能更好的制作出营养丰富,美味可口的豆浆。一、相序表怎么用1接线:将相序表三根表笔线A(红,R)、B(兰,S)、C(黑,T)分别对应接到被测源的A(R)、B(S)、C(T)三根线上。怎么用料理机 ?料理机的用法 1.握住容器后转向右边料理机来分解; 2.把材料装在容器中; 3.按照材料安装十字形或一字形刀刃; 4.随着生活质量的提高,喝咖啡已经成为了人们日常爱好,很多人为了方便会购买咖啡机,其中西门子咖啡机是人们最常购买的,那么,西门子咖啡机怎么用呢,51单片机P0口驱动LED数码管的这个电路图对吗_百度知道
51单片机P0口驱动LED数码管的这个电路图对吗
html" target="_blank">http://www.wang1jin.wang1jin.com/n-94用加上拉电阻来驱动吗,单片机输出的电流能驱动数码管吗(资料来自<a href="http://www
我有更好的答案
这方法不好,单片机在输出1时输出的电流很小,所以最好改成共阳极数码管,这样只要单片机输出0来点亮笔画。
采纳率:46%
你如果使用的是AT89S51, P0有内部上拉电阻,不需加外部电阻。单片机输出的电流能驱动数码管。
能驱动,但是最好还是加上大于300欧姆-1K欧姆的电阻,来保护数码管的寿命 电阻大小计算方法,(5V-0.7V)/数码关耐流15mA(大约)=300欧姆
最好在P0口加上拉电阻(可以用220~240欧的阻排),LED阴极直接接地,这样LED每段亮度均匀。
很明显,不对!就算电压加到1000V,数码管也不会亮。哎 网上总是误导、、、使用的共阴极的数码管。加之单片机的P0口没有内部上拉,所以只有外部加上拉电阻了。电阻使用470欧的效果最好。阴极可以直接接地。不用再加限流了。建议使用共阳极的数码管。损耗较小。
采用共阳的八段数码管,使用灌入电流的方式,也就是P0 = 0x00的时候数码管显示8.。P0口是需要自己加上拉电阻的。总之:51系列的单片机P0口用作IO需要加上拉。
其他3条回答
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。两位八段共阳极数码管的每一段都要接上拉电阻吗?怎么控制他的位【单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:145,791贴子:
两位八段共阳极数码管的每一段都要接上拉电阻吗?怎么控制他的位收藏
中人教育设备有限公司专业生产单片机实验台实训设备,优秀的售后服务体系.咨询是生产单片机实验台实训设备的20年老企业,让客户对中人公司生产的单片机实验台实训设备放心.
如何你是直接接IO口的
一个数码管没什么问题 多了就好暗。。如何你用驱动芯片比如573就一定要在位选加限流电阻不加表示很暗的。
登录百度帐号推荐应用

我要回帖

更多关于 共阳极数码管编码 的文章

 

随机推荐