ZKX's LAB

使用8086汇编语言,在8255上设计一个7段数码管动态显示的程序 七段数码管动态显示控制

2020-07-21知识15

用plc控制一个七段数码管,分别按下四个按钮,数码管分别显示1234,但是其PLC输出口不能是七个, 完全可以用输出三位来实现,但是你要用一种芯片74LS47驱动七段数码管,这样PLC只要对应输出001,010,011,100,七段数码管就会显示1,2,3,4,而不需要去单独驱动七段中的每一段。当然市场上也有卖的七段数码管内部直接带驱动芯片的:常州半导体厂就生产,可以打电话问问。另外你的控制逻辑不是很难啊,没必要用PLC,通过卡诺图和语句表,用与非门电路完全也可以搭出来啊。或者是直接用用电子电路控制七段数码管每一段,四个按钮分别做电源开关控制四套电路,每套电路对应驱动实现七段数码管显示1,2,3,4,即可。很简单的,祝你好运。求单个按键控制数码管显示(动态)1234的程序,或者帮我改下下面这段数码管的代码程序 程序如下includesbit k1=P3^2;bit dis;显示标志位unsigned char code ledtab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};unsigned char ledbuf[]={1,2,3,4};void delay(unsigned char x){unsigned int j;while(x-)for(j=400;j>;0;j-);}void display(){unsigned char j,ledbit=1;for(j=0;j;j+){P0=ledbit;P2=ledtab[ledbuf[j]];delay(1);ledbit;}P0=0;关掉显示}void main(){while(1){if(dis=0)display();if(k1=0){delay(10);if(k1=0){dis=。dis;while(k1=0);}}}}仿真图单片机控制7段数码管都有哪些显示方法?他们的各自特点是什么? 有共阳显示法,有共阴显示法,共阳显示法一般配合oc输出,也可直连oc输出电路,阳压范围宽,逻辑控制为“0”有效;共阴显示法要求输出有足够带载能力,配合限流排组,逻辑控制为“1”有效。求单个开关按键控制数码管显示(动态)1234的程序,或者帮我改下下面这段数码管的代码程序 全灭时P2位控输出为全0才行。延时子程序延时过长了,显示就闪了,修改如下求西门子plc七段数码管显示梯形图和解释 数码管每一段相当于二极管,连接PLC输出点,要显示数字几,就将对应段点亮,几输入端有就输入。plc七段数码管显示梯形图是由人为规定的,都是这个规定。然后就好弄了,如果想显示零这个数那么就点亮A,B,C,D,E,F这几个灯管,灭掉G这个灯管,如果想显示1这个数那就点亮B和C这两个灯管其余的灭掉,别的数以此类推。对应图如下扩展资料:七段数码管的控制七段数码管分为共阳极及共阴极,共阳极的七段数码管的正极(或阳极)为八个发光二极管的共有正极,其他接点为独立发光二极管的负极(或阴极),使用者只需把正极接电,不同的负极接地就能控制七段数码管显示不同的数字。共阴极的七段数码管与共阳极的只是接驳方法相反而已。七段数码管已可以特定的集成电路控制,只要向集成电路输入4-bit的二进制数字讯号就能控制七段数码管显示;市面上更有 8421-BCD 代码直接转为七划管控制电平的 IC,方便配合单片机使用。参考资料:-七段数码管简述7段数码动态管动态显示方式的工作原理?与静态方式相比有哪些优缺点 (1)静态显示方式:静2113态显示方式是5261指当显示器显示某一4102字符时,发光二1653极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。(2)动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示。使用8086汇编语言,在8255上设计一个7段数码管动态显示的程序 正好我们做了这个实验你知道的,把数据段中的端口地址改为你的计算机可识别的8255A的端口地址从键盘接收数字,在七段数码管上显示data segmentioport equ 2400h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,'Input a num(0-9h):',0dh,0ah,'$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b;使8255的A口为输出方式mov ax,10000000b;80h,A组方式0,A口输出,B组方式0,B口输出,C口输出out dx,alsss:mov dx,offset mesg1;显示提示信息mov ah,09hint 21hmov ah,01;从键盘接收字符int 21hcmp al,'0';是否小于0jb sss;若是则退出cmp al,'9';是否大于9ja sss;若是则退出and al,0fh;将所得字符的ASCII码减30Hmov bx,offset led;bx为数码表的起始地址xlat;求出相应的段码mov dx,io8255a;从8255的A口输出out dx,aljmp sss;转SSSexit:mov ah,4ch;返回DOSint 21hcode endsend start关于7段数码管显示问题 7段数码管其实是八段,有时小数点没有使用,所以常说7段,显示原理是这样的数码管首先从上到右,到下到左,到中间,最后到小数点分百别标记为a b c d e f g dp八段其中小数点位DP为最高位,a段为最低位度,要想显示什么字符只需要使对应的段发光即可,一般的习惯是单片机的端口的最低位接a段,次低位接b段,.最高位(如p0.7)接dp,显示码从高往低表示为内容为 dp g f e d c b a如要显示“1”,只需要将b、c段点亮即可,若是共阴极,片选是低电平选中,某一段输出高电平点亮,即显示码为00000110 即0x06,其他的依照该方法类推你给的码表为共阴极的。共阳极的恰巧相反!数码管的示意图如下图所示51单片机如何利用4个七段数码管采用动态显示显示4位数字,如2035 /*显示函数 函数名:display56()变量定义:unsigned char qian,bai,shi,ge;定义显示缓冲区unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xa7};表:共阳数码管 0 1 2 3 4 5 6 7 8 9 c延时子函数,短暂延时void delay56(){unsigned char i56=210;while(i56-);}void display56(){P0=table[qian];查得千位,送P0SMG_q=0;打开千位数码管delay56();延时P0=255;防止数码管脏乱SMG_q=1;关闭数码管P0=table[bai];选择百位数码管SMG_b=0;delay56();延时P0=255;SMG_b=1;P0=table[shi];选择十位数码管SMG_s=0;delay56();P0=255;SMG_s=1;P0=table[ge];选择个位数码管,SMG_g=0;delay56();P0=255;SMG_g=1;}你想显示什么,分别为qian,bai,shi,ge

随机阅读

qrcode
访问手机版