ZKX's LAB

求51单片机的C程序,就是键盘控制这个一位七段数码管,按键按1按下数码管上能够显示1,按2就能从1变到2。 单片机仿真按键控制7段数码管码管

2020-07-20知识20

要求用单片机控制数码管显示0-f。按一下按键,数码管的显示数字加一。需要keil的程序和proteus的仿真图,谢谢了 请你参考: 代码如下: include sbit Button=P3^0;。求51单片机的C程序,就是键盘控制这个一位七段数码管,按键按1按下数码管上能够显示1,按2就能从1变到2。 51单片机的C程序,4*4键盘控制这个八位七段数码管。可以参考一下includedefine uchar unsigned charuchar temp;int key1,key,disbuf;此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e funsigned char code LED7Code[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};unsigned char ledx[8];bit s0,s1;void delay(uchar z){uchar i,j;for(i=0;i;i+)for(j=0;j;j+);}void scan()/要是按键了,扫描键盘编码值{P1=0xF0;delay(1);temp=P1;switch(temp){case 0xe0:key1=0;break;case 0xd0:key1=1;break;case 0xb0:key1=2;break;case 0x70:key1=3;break;}P1=0x0f;delay(1);temp=P1;switch(temp){case 0x0E:key=key1+0;break;case 0x0D:key=key1+4;break;case 0x0B:key=key1+8;break;case 0x07:key=key1+12;break;default:key=-1;}if((key1+1)&(key+1))disbuf=key;}void ejjc()/判断是否按键{P1=0xF0;if(P1。0xF0){ scan();s0=1;}else { s0=0;s1=1;}}void main(){uchar i;while(1){ejjc();if(s0=1&s1=1){s0=0;s1=0;for(i=0;i;i+){ ledx[i]=ledx[i+1];ledx[8]=disbuf;}}P0=0xff;P2=LED7Code[ledx[0]];P0=。AT89S51单片机的P1口接有1个7段LED数码管,初始显示0。外部中断输入引脚INTO接有一 P3.2的按键作为外部中断了,实2113现计5261数功能,所以,那个延时子程序没有用了。4102关键问题是1653,凡是中断程序中所用的变量,要定义为全局变量。修改的程序如下。includedefine uint unsigned intdefine uchar unsigned charuchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};你0的段码错误了uchar i=0;凡是中断程序用到的变量,一律定义为全局变量,而且不用定义成 unsigned int 型的变量。void delay()/延时子程序没有用,注释掉{uchar i,j;for(i=0;i;i-)for(j=0;j;j-);}void main(void){uint i;删掉while(1){EA=1;EX0=1;IT0=1;P1=seg[i];}}void int0()interrupt 0 using 1{/uint i;删掉i+;if(i=10)i=0;}仿真结果如下51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示 1、首先,要把代码写好,点亮 数码管。2、代码写完后,要确认原先写好的代码是不是正确的。3、确认代码无误后,进入下一步,就是在这一行代码(箭头所指)的地方,将这四个。单片机键盘扫描程序仿真的时候怎样把结果输出到七段数码管啊?也就是按键的时怎样 MOV P2,#FFH;关闭七节显示器,并将P2.4至P2.7设定为输入模式MOV A,#0;八灯初始值LOOP:MOV P0,A;输出到LEDCALL DELAY;呼叫延迟副程序CPL A;将A的内容反相JMP LOOP;跳至LOOP形成一个回圈KEYBOARD中断副程序=开始=KEYBOARD:PUSH PSW;将PSW存入堆叠PUSH A;将ACC存入堆叠SETB RS0;切换到RB1MOV P2,#FFH;关闭七节显示器,并将P2.4至P2.7设定为输入模式MOV A,P2;读入键盘资料SWAP A;将ACC的高四位元与低四位元互换ORL A,#F0H;遮盖高四位元MOV P2,A;显示键盘资料POP A;取回ACC内容POP PSW;取回PSW内容RETI;返回主程序0.1秒DELAY副程序=开始=DELAY:MOV R7,#200D1:MOV R6,#250DJNZ R6,$DJNZ R7,D1RETEND这是一个红外接收遥控开关的仿真图,有8个按键,由数码管显示个数。 两个数码管,怎么不一样?一个共阳,一个共阴。接数码管是的是译码器吗?是什么?接8个按键的,那是什么单片机吗,字太小了,看不清楚。按键不用加上拉电阻,可以简化。。急急急急急………………求一个单片机做一个四个按键控制四个七段数码管显示的程序 网上很多,找一个电子钟程序把时间改成逢10进1就是你要的了

随机阅读

qrcode
访问手机版