ZKX's LAB

单片机控制七段数码管显示 如何由键盘控制单片机上的四位七段数码管显示温度值

2020-07-18知识5

单片机控制七段数码管显示,为什么要加三极管驱动啊? 数码管需要的工作电流大,单片机的驱动电流不够。一般的做法,就是利用单片机的输出,做三极管的基极驱动,然后让三极管的发射极做输出的驱动,输出更高的电压和大的电流。如何由键盘控制单片机上的四位七段数码管显示温度值 你先自己写点,会多少写多少,完事我给你改改不可能一个毕业设计你一点都不搞,全拿现成的学白上了。另外硬件电路描述的太简单,你4个按键究竟是高电平有效还是低电平数据口有没有锁存器数码管用的共阴还是共阳P2.3-P2.0 口线使用什么驱动部件控制数码管,如果是三极管PNP 还是 NPN先画个电路传上来吧QQ:58253625急急急急急………………求一个单片机做一个四个按键控制四个七段数码管显示的程序 网上很多,找一个电子钟程序把时间改成逢10进1就是你要的了单片机控制七段数码管显示,为什么要加三极管驱动啊? 数码管需要的工作电流大,单片机的驱动电流不够。一般的做法,就是利用单片机的输出,做三极管的基极驱动,然后让三极管的发射极做输出的驱动,输出更高的电压和大的电流。这样才能驱动数码管的显示。所以工作中,一般选择共阳的。一段接电源,负端接单片机,但是为了增加驱动,一般也把单片机的输出口经过一个非门后,接数码管的负极。这样电路的输出电流和电压才能达到要求。希望能对你 有用!单片机8255A控制6位7段数码管显示,proteus仿真无法显示求解释!! 这一段有点小问题disp0:mov r0,#70hmov a,@r0;应该跳转回到这里才对,不然只操作了70H,别的没变化。anl a,#0fhmov dptr,#tablemovc a,@a+dptrmov@r0,ainc r0cjne r0,#76h,disp0改成这样:mov r0,#70hdisp0:mov a,@r0anl a,#0fhmov dptr,#tablemovc a,@a+dptrmov@r0,ainc r0cjne r0,#76h,disp0求分51单片机控制七段数码管显示的时钟电路 和程序 KEYVAL EQU 30HKEYTM EQU 31HKEYSCAN EQU 32HDAT EQU 33HSCANLED EQU 39HCLK EQU 77HSEC EQU 78HMIN EQU 79HHOUR EQU 7AHPAUSE BIT 00HDOT BIT 01HORG 0000HLJMP MAINORG 000BHLJMP T0ISR;50ms定时ORG 001BHLJMP T1ISR;扫描显示ORG 0030HMAIN:MOV SP,#5FHMOV TMOD,#11HMOV TH0,#03CHMOV TL0,#0B0HMOV TH1,#0ECHMOV TL1,#078HMOV KEYVAL,#0MOV SCANLED,#0MOV 33H,#10HMOV 34H,#10HMOV 35H,#10HMOV 36H,#10HMOV 37H,#10HMOV 38H,#10HMOV SEC,#0MOV MIN,#0MOV HOUR,#0MOV CLK,#0CLR PAUSESETB EASETB ET1SETB TR1LOOP:LCALL KEYSELMOV A,KEYVALCJNE A,#0FFH,LOOP1SJMP LOOPLOOP1:CJNE A,#10,LOOP2;“ON”启动SETB TR0SETB ET0SETB PAUSESJMP LOOPLOOP2:CJNE A,#11,LOOP3;“=”清零MOV SEC,#0MOV MIN,#0MOV HOUR,#0LCALL DISCHGSJMP LOOPLOOP3:CJNE A,#15,LOOP4;“+”暂停CLR TR0CLR ET0CLR PAUSESJMP LOOPLOOP4:CJNE A,#14,LOOP5;“-”清显示暂停MOV 33H,#10HMOV 34H,#10HMOV 35H,#10HMOV 36H,#10HMOV 37H,#10HMOV 38H,#10HCLR TR0CLR ET0CLR PAUSESJMP LOOPLOOP5:CJNE A,#10,LOOP6;单片机控制7段数码管都有哪些显示方法?他们的各自特点是什么? 有共阳显示法,有共阴显示法,共阳显示法一般配合oc输出,也可直连oc输出电路,阳压范围宽,逻辑控制为“0”有效;共阴显示法要求输出有足够带载能力,配合限流排组,逻辑单片机控制7段数码管都有哪些显示方法?他们的各自特点是什么? 有共阳显示法,有共阴显示法,共阳显示法一般配合oc输出,也可直连oc输出电路,阳压范围宽,逻辑控制为“0”有效;共阴显示法要求输出有足够带载能力,配合限流排组,逻辑控制为“1”有效。51单片机中,用八个开关控制一个7段数码管,按一个开关显示一个数,用C语言怎么编程 sfr key=P1;定义八个开关接单片机的p1口的八个引脚,int suma[9]={0x3B,0x4D,};根据数码管的驱动芯片接入单片机接口,查表输出要显示的数字,其中第九个为不显示即清空显示。unsigned char Scankey(){int i,j;i=key;if(key!0xFF){keyflg=1;switch(~key){case 0x01:case 0x02:case 0x04:case 0x08:case 0x10:case 0x20:case 0x40:case 0x80:return(~key);default:keyflg=0;return(0xFF);}}return(key);}void delay(long i)/延时{while(i-);}void xianshi(unsigned char a){P2=suma[a];}void inti(){;xianshi(9);}int main(){unsigned char a,b;inti();单片机初始化b=Scankey();while(1){a=Scankey();扫描按键if(keyflg)/判断有键按下{if(a!b)/判断是否按键有改变{xianshi(9);关闭数码管delay(1000);延时xianshi(a);显示要显示的数码管}b=a;保存当前的按键值。}delay(1000);延时 自己调试要大于200 ms}}只能给你个大概的思路了。一般扫描按键,除非硬件使用中断的引脚可以中断设计,返回键值,或查值,判断是否显示,显示输出,中间要加些延时效果更好。设计到单片机就牵扯到硬件的定义,还有些外界干扰的情况要根据实际情况在完善用单片机控制一个7段共阳极数码管,循环显示数值“f~0”,显示变换时间为0.5秒, #includedefine uchar unsigned chardefine uint unsigned intuchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};void delay(uint x){uint t;while(x-)for(t=0;t;t+);}void main(){uchar num=0;P2=0xfe;while(1){for(num=0;num;num+){P0=tab[num];delay(500);}}}

#三极管#单片机#数码管#unsigned

随机阅读

qrcode
访问手机版