程序清单如下:include < reg51.h >// 51单片机头文件 define uchar unsigned char// 宏定义,用uchar替代无符号字符型 define uint unsigned int// 宏定义,用uint 替代无符号整数型 sbit Key = P2 ^ 7;uchar
0111第4位数码管显示,wk = 0;关闭位选。5、while(1) //死循环效果{} 。6、dk = 1;//打开段选,P0 = leddata[i];,dk = 0;//关闭段选,delay(100);//延时效果。7、选择效果,限制i值的循环范围。
建立一个数组,用于存放 0-9的段码。int Shuzu[]={---};如果会用指针 int *P;P=Shuzu; //指针指向数组!用外部中断,每中断一次,中断服务程序将数组元素加一P0=Shuzu[ax++](或指针加一:P0=*P++)以上
利用外部中断实现按键按一下数码管数字加1,实现00-99的循环,另一个按键实现清零,不管数码管数字是多少,该按键按下数码管显示00
这是四位数的秒计数器,用四位一体共阴数码管显示,P0口输出段码,P2口输出位码。用定时器定时器50ms,采用中断方式,中断20次为1秒,显示数字加1。
ORG 0000H LJMP MAIN ORG 0003H LJMP EX0 ORG 0030H MAIN:MOV SP,#5FH SETB EA SETB IT0 SET EX0 MOV DPTR,#LEDTAB1 MOV R2,#0 CLR A MOVC A,@A+DPTR MOV P2,A SJMP EX0:LCALL DELAY JB P3.2,EXRT
单片机 汇编语言 利用中断设计计数器 每按一次开关 LED显示加一 到九清零重新计数
数码管每一段相当于二极管,连接PLC输出点,要显示数字几,就将对应段点亮,几输入端有就输入。plc七段数码管显示梯形图是由人为规定的,都是这个规定。然后就好弄了,如果想显示零这个数那么就点亮A,B,C,D,E,F这几个
初始显示0,按一下X1变一次,0到9循环。软继电器 PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与
如图所示,一共4个图,按照从1到9,每隔1s,一个数字的循环变化。望采纳。。。
1、首先打开gx work2软件,左上方选择工程点开新建一个工程。2、接下来选择工程的种类和plc的cpu和你所要做的图。3、点开我们可以发现在上方的设计按钮,你可以在任意位置选择你要设计的按钮种类。4、也可以直接左键双击
PLC课程LED数码显示控制1-9梯形图
1、小建议,釆用STC的51芯片替代AT的,釆用595替代164。2、新建项目,做好准备。数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0xf7;11110111第4位数码管显示,wk=0;关闭位选。while(1)//死循环
;送P3口驱动7段数码管显示 INC R2 ;修改要显示的下一个数 LCALL DELAY ;调用延时子程序(稳定显示)DJNZ R5,MAIN ;循环显示次数减1 不等于0 继续显示 JMP START ;从新转主程序 开始新一轮的显示 DELAY:MOV R0,
你这是用于一位静态数码管的显示程序,P0口接有一位共阴数码管。程序中有不少的错误。修改如下,这是仿真测试通过的:include
1、新建项目,做好准备。2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) //死循环效果{} 。6、dk = 1;//打
单片机如何控制LED数码管循环显示数字0至9
LOP:LOOP0:MOV 20H,#9 MOV R0,#10 LOOP1:MOV A,20H; 9-0 MOVC A,@A+DPTR MOV P0,A DEC 20H CALL DELL;YANSHI DJNZ R0,LOOP1 MOV 20H,#0;0-9 MOV R0,#10 LOOP2:MOV A,20H; 0-9 MOVC A,@A+DPT
unsigned char yima[]={0xeb,0x88,0xb3,0xba,0xd8,0x7a,0x7b,0xa8,0xfb,0xfa};/*译码表,此表数据和硬件相关*/ unsigned int b=0;/*要显示的数据*/ unsigned int b_count=0;/*扫描次数*/ void delayms(u
DB 90H ;9 MAIN: MOV R0,#7FH ;CLR A ;CL MOV @R0,A ;DJNZ R0,$CL ;初始化 MOV SP,#60H ;初始化 MOV 20H,#00H ;最开始设定为0 MOV DPTR,#0024H ;指向数据表首地址 ;;0 JB KEY32,$0 MO
C0H ;0 ADRRESS 0024H DB F9H ;1 DB A4H ;2 DB B0H ;3 DB 99H ;4 DB 92H ;5 DB 82H ;6 DB F8H ;7 DB 80H ;8 DB 90H ;9 MAIN:MOV R0,#7FH ;CLR A ;CL MOV R0,A ;DJNZ R0,$CL ;初始
汇编语言问题 在单片机LED上显示数字(0~9)的源代码是什么啊?
//定义P1 0-7输出给七段显示器 LED //定义P2 0-7输入侦测1-8按键 1=没按 0=按 //定义8个 bit ,初值为0,有按键为1 //设定中断检测按键 中断1毫秒,10毫秒检测一次,检测到 //就将相应的bit 设定为1
;1 DB A4H ;2 DB B0H ;3 DB 99H ;4 DB 92H ;5 DB 82H ;6 DB F8H ;7 DB 80H ;8 DB 90H ;9 MAIN:MOV R0,#7FH ;CLR A ;CL MOV R0,A ;DJNZ R0,$CL ;初始化 MOV SP,#60H ;初始化 MOV 2
MOV A,R4 MOVC A,@A+DPTR ;找到相应位显示代码 MOV P2,A SJMP LOOP1 ;--- LEDTAB:DB 0C0H;"0"00H DB 0F9H;"1"01H DB 0A4H;"2"02H DB 0B0H;"3"03H DB 99H;"4"04H DB 92H;"5"05H
Key_Temp1 = Keyscan(); //先读入按键 if(Key_Temp1 == 16) return 16; //没有键按下,返回16 Display(sec); //用显示代替延时 Key_Temp2 = Keyscan(); //再读一次按键 if(Key_Temp1 != Key_
用汇编语言实现3*3键盘(1-9),当相应键按下时,LED上显示相应数值
LOOP1:MOV A,20H; 9-0 MOVC A,@A+DPTR MOV P0,A DEC 20H CALL DELL;YANSHI DJNZ R0,LOOP1 MOV 20H,#0;0-9 MOV R0,#10 LOOP2:MOV A,20H; 0-9 MOVC A,@A+DPTR MOV P0,A INC 20H CALL DELL;YANSHI
;0 ADRRESS 0024H DB F9H ;1 DB A4H ;2 DB B0H ;3 DB 99H ;4 DB 92H ;5 DB 82H ;6 DB F8H ;7 DB 80H ;8 DB 90H ;9 MAIN:MOV R0,#7FH ;CLR A ;CL MOV R0,A ;DJNZ R0,$CL ;初始化 M
程序如下:include
一、设置延时函数 延时函数在单片机中有着让现实延时的能力,本程序中可以通过采用for循环方式进行延时,具体代码如下:void delay(){ uinti,j;for(i=100;i>0;i--)for(j=1000;j>0;j--);} 二、设置数码管显
1、小建议,_用STC的51芯片替代AT的,_用595替代164。2、新建项目,做好准备。数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0xf7;11110111第4位数码管显示,wk=0;关闭位选。while(1)//死循环效果
单片机数字9到0显示程序代码?
江大的吧~我在帮别人做这个作业呢//定义P1 0-7输出给七段显示器 LED //定义P2 0-7输入侦测1-8按键 1=没按 0=按 //定义8个 bit ,初值为0,有按键为1 //设定中断检测按键 中断1毫秒,10毫秒检测一次,检测到 //就将相应的bit 设定为1 //主程序 处理按键,发现按键,就将相应的显示,显示到七段显示器 //大体如此,具体用那种汇编,LZ可是自己决定
如果用PLC来控制7段数码管,你的控制都是整数显示,那么每个数码管用7个PLC的DO来控制就可以,不需要考虑小数点。PLC里的程序很简单,做个3点数字量输入分别接SB1、SB2、SA2。做3个子程序SB1控制0--59显示;SB2控制0--23显示;SA2复位。做个1秒的计时器,再用个计数器,当计是器满的时候,给计数器累加。将累加的值0、1、2、3、。。。。。59。输出,做个对应的输出表,将1---59(或1--23)来控制每个数码管7个DO的输出就可以了。显示0---23的哪个类似,你的貌似要用PLC来显示时钟。
接线: Y0——A Y1——B Y2——C Y3——D Y4——E Y5——F Y6——G 初始显示0,按一下X1变一次,0到9循环。 软继电器 PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。该存储单元如果为“1”状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的“1”或“ON”状态。 以上内容参考:百度百科-梯形图
看看这个仿真实例,汇编51单片机接四个数码管从0000显示到9999,采用外部INT0中断一次加1,INT1中断清零,用汇编语言。
先说明一下: 数码管需要是共阳,并且公共端需要接VCC。看你的图是用的共阴的,这样仿真没问题,但实际是不能用的,因为51的I/O高电平的时候几乎不输出电流,是不能驱动LED的。一般认为51I/O在低电平的时候能够灌入20mA的电流,所以有开头之说。如果你要使用下面的程序,必须要这样接,同时数码管的a接点零口,b接点一口,如a接P1.0,b接P1.1。如此类推。如果你有别的接法,必须修改TAB: DB 之后的编码。程序如下: ORG 0000H SJMP MAIN ORG 0003H SJMP DVT0 ORG 0030H MAIN:MOV R0,#06H MOV R1,#09H MOV R2,#09H MOV P0, #0FFH MOV P1, #0FFH MOV P2, #0FFH MOV P3,#0FFH SETB IT0 SETB EX0 SETB EA REL01:MOV DPTR,#TAB MOV A,R0 MOVC A, @A+DPTR MOV P0,A MOV DPTR,#TAB MOV A,R1 MOVC A,@A+DPTR MOV P1,A MOV DPTR,#TAB MOV A,R2 MOVC A,@A+DPTR MOV P2,A JB P3.6,REL01 MOV R3,#0FFH REL02:DJNZ R3,REL02 JB P3.6,REL01 MOV R0,#00H MOV R1,#00H MOV R2,#00H SJMP REL01 DVT0:INC R0 CJNE R0,#0AH,EXIT MOV R0,#00H INC R1 CJNE R1,#0AH,EXIT MOV R1,#00H INC R2 CJNE R2,#0AH,EXIT MOV R0,#09H MOV R1,#09H MOV R2,#09H EXIT:NOP RETI TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H END