51单片机怎么调数码管

作者&投稿:栾雁 (若有异议请与网页底部的电邮联系)

51单片机怎么用按键控两个数码管,按一下改变两个数字的显示速度,速_百 ...
include<reg51.h> define uchar unsigned char;uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; \/\/0到f uchar number,dat,dattop=10,cnt=0;sbit keyu=P1^0;sbit keyd=P1^1;void t0isr() interrupt 1 { TH0...

请问怎么用单片机控制三位数码管,让它显示一个值?需要用到驱动吗...
用不着驱动,思路就是他们说的那样,先让一个数码管亮,可以让它延时5毫秒,然后让第二个数码管亮,依次进行。。。由于余辉的效果看起来是同时亮的

51单片机,利用0和1两个数字组成16种模式,并用四个开关控制数码显示一...
include <reg52.h> \/\/ 引入单片机寄存器定义头文件\/\/ 数码管显示的密码模式,共16种,每种模式使用4位二进制表示unsigned char password[16] = { 0x3F, \/\/ 0b00111111, 模式0 0x06, \/\/ 0b00000110, 模式1 0x5B, \/\/ 0b01011011, 模式2 0x4F, \/\/ 0b01001111, 模式3 0x66, \/\/ 0...

单片机是否能用一个按键控制数码管的显示图?
0x82,0xf8,0x80,0x90}; \/\/共阳数码管编码号 ucharnum;voidkeyscan();\/\/键扫描函数 voiddisplay();voiddelayms(uint);voidmain() \/\/主函数 { while(1)\/\/大循环 { \/\/\/display();\/\/显示函数 keyscan(); \/\/键扫描函数 display();\/\/显示函数 }} 单片机(Microcontrollers)是一种集成电路...

51单片机怎么用按键控制一个数码管,按一下显示一
\/*---名称:单个共阳数码管动态显示变化数字内容:通过循环检测P1口按键输入值,然后用数码管输出,没有按键按下时原值不变---*\/#include\/\/包

单片机开发板上的数码管不亮应该怎么调试
数码管不亮原因大概如下:1、软件问题,位码或段码有误;可能时序不对。2、硬件问题,可能驱动力不足;可能需要上拉电阻。调试是一个综合过程,要具体问题具体分析,泛泛而谈是无从谈起的。

...51单片机中数码管显示如何移位,比如说我按键1在第6个根数码管上显示...
void display(uchar firstbit,uchar Num) \/\/firstbit为要第一位显示数码管,NUM是要显示数的位数 { uchar s;for(s=0;s<Num;s++){ P0=0xff;duan=1;duan=0;P0=table2[s+firstbit];wei=1;wei=0;P0=tempdata[s];duan=1;duan=0;delay(1);} } ...

51单片机控制8个数码管并显示1-8
数码管段选连接到单片机P0口,位选连接到P2口 ORG 0000h MAIN:CALL DISPLAY AJMP MAIN DISPLAY:MOV R0,#0 MOV R1,#0x01 MOV DPTR,#TAB LOOP:INC R0 MOV A,R0 MOVC A,@A+DPTR MOV P0,#0 ;消隐 MOV P0,A ;送段码 CALL DELAY MOV A,R1 ;送位码 RL A ;移位 MOV P2,A MOV ...

51单片机怎么让数码管显示学号?用汇编语言
即每次只有一个数码管点亮,8个数码管是轮流被点亮的,轮流点亮的间隔时间很短(一般用延时程序延时几个毫秒),由于视觉的暂留现象,看到的却好象全都点亮着,这就是动态扫描。数码管显示数字的码型由数码管的数据脚a~dp决定,图2为数码管的笔段分布图,由于是共阴极的,所以当a~dp为高电平时...

51单片机数码管从1显示到12
这个很好整的啊.我试着编一下:ORG 0H MOV A,#0 MOV R3,#12 ;循环12次 MOV DPTR,#TABLE ;找1到12编码表地址,编码存在TABLE起始的地址 LOOP:MOVC A,@A+DPTR MOV R2,A ;取编码暂存R2 ANL A,#0FH ;取编码的低4位 MOV P2,A ;编码低4位为个位,送到P2 MOV A,R2 ;编码再次从暂存处...

诸葛步13139417069问: 51单片机怎样用按键实现数码管位切换 -
余杭区克塞回答: 这要写程序,也是稍麻烦一点的. 大概思路是这样的,用一个按键切换显示位,按一下,切换一位,是这样吧. 用一个变量计数,每按一次键加1,一共切换多少位,就计数到多少.计到最大再回到第一位计数.例,四位数码管,计数为0,1,2,3,超过3就回0. 好了,按键解决了,再解决显示的,计数值对的数码管,让它显示出小数点,就是要调整的位.按键切换数码管,就是显示小数点的位在切换. 最后是,变量值的修改,根据按 键计数值,来判断那个变量要调整修改,做相应的加1,或减1计算就行了.

诸葛步13139417069问: 51 单片机 怎么切换 程序显示 数码管 -
余杭区克塞回答: 数码管的显示一般是每隔一段时间显示一次.例如要显示4位,先送显示第一位,延时几mS显示第二位,再延时,接着显示第三位,然后延时显示第四位.延时时间很重要,不能太慢,太慢了闪烁,要小于视觉暂留时间.也不能太快,太快了也会闪烁,因为延时短,显示时间就短,时间都浪费在切换显示啦.延时可以用软件延时,简单.也可用中断延时.数码管驱动显示要估算除显示以外的程序时间,不能时间太长影响数码的显示.成败与否就在于您对时间的估算上. 祝您成功.

诸葛步13139417069问: 51单片机怎么按键切换数码管的位用来调时 -
余杭区克塞回答: 你先把你需要的功能描述清楚,然后再请人帮你写程序. 比如说,按键分几种动作(就点动/长按/连续点动?),每一种按键动作,触发什么功能(进入设置模式/加/减/移动/结束设置),显示的格式是 怎样,硬件原理图.

诸葛步13139417069问: 51单片机控制8个数码管并显示1 - 8 -
余杭区克塞回答: 数码管段选连接到单片机P0口,位选连接到P2口 ORG 0000h MAIN:CALL DISPLAYAJMP MAIN DISPLAY:MOV R0,#0MOV R1,#0x01MOV DPTR,#TABLOOP:INC R0MOV A,R0MOVC A,@A+DPTRMOV P0,#0 ;消隐MOV P0,A ;...

诸葛步13139417069问: 51单片机按键对数码管的控制 -
余杭区克塞回答: /*----------------------------------------------- 名称:单个共阳数码管动态显示变化数字 内容:通过循环检测P1口按键输入值,然后用数码管输出, 没有按键按下时原值不变 ------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不...

诸葛步13139417069问: 用51单片机怎么驱动12V共阳数码管? -
余杭区克塞回答: 用ULN2803接数码管的阴极.将PNP三极管8550接入阳极.--发射极接+12V,--集电极接数码管公共阳极,--基极用I/O口进行控制.但是,这时基极需要的控制电压,超出了单片机I/O口的输出能力.所以,基极和I/O口之间,还应该接入一个NPN型的三极管,或者用ULN2803也可.电路如下,本人已经使用多年,效果良好.

诸葛步13139417069问: 51单片机怎样设按键切换数码管显示时间和日期? -
余杭区克塞回答: 你要设置一个标志变量,如flag,在进入按键程序后,flag++; 然后加个控制判断语句 if(flag>3) flag=0; 这样,在显示模块中再加入开关语句; switch(flag) { case 0:...显示时间.. case 1:...显示日期... case 2:...显示温度... }

诸葛步13139417069问: 51单片机怎么点亮数码管? -
余杭区克塞回答: 单片机通过驱动电路给数码管中相应各段的发光二极管加正向电压,该段发光二极管就会被点亮.不同段的发光二极管加正向电压则亮,不加正向电压则灭,这样就可以通过各段的亮灭组合,来显示不同的数字和字符了. 单片机是通过向数码管送段形(即显示编码),来给数码管相应的各段加正向电压来实现的.

诸葛步13139417069问: 51单片机怎么控制四位数码管,有没有汇编程序?我只能控制两位!求详解! -
余杭区克塞回答: display:;显示子程序 mov dptr,#numtab;送数据表 mov a,a_bit;送个位 movc a,@a+dptr;查表 mov p1,a;送p0显示 30 setb p3.7;选中第一个数码管 lcall d1ms;显示1ms cpl p3.7;关显示 mov a,b_bit;送10位数据 35 movc a,@a+dptr;查...

诸葛步13139417069问: 利用51单片机控制一位七段数码管. -
余杭区克塞回答: void main() {uchar tab[]={}//定义数码管 EX0=1; EA=1; IT0=1; while(1) {P1=tab[m];} } void into()interrupt 0 {m++; while(INT0==0); if(m==10)m=0;} 程序大概是这样,因为使用手机,不方便输入!


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网