编写一个程序让这个数码管从00显示到59,相当于一个秒表,最好使用TMOD=0x10的方式,这是模拟图? 用51单片机设计一个数码管计时器程序。从00~~59,增加一...

作者&投稿:冯容 (若有异议请与网页底部的电邮联系)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
char i;
char ctime=59;
uchar code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main()
{
TMOD=0X01; //设定定时器为工作方式1
TH0=(65536-45872)/256; //装初值,11.0592 MHZ晶振定时50MS,计数值为45872
TL0=(65536-45872)%256;
EA=1; //打开总中断
ET0=1; //打开定时器中断
TR0=1; //启动定时器0
while(1)
{
P0=led[ctime/10];
P2=led[ctime%10];

}

}
void time() interrupt //定时器0中断服务程序
{
TH0=(65536-45872)/256; //重装初值
TL0=(65536-45872)%256;
i++;
if(i==20) //如果i=20,说明1s时间到
{
i=0;
ctime--;
if(ctime<0)
{
ctime=59;
}
}
}

单片机程序 根据电路图,请编写程序,使前两个数码管实现00到59的秒表功能,希望大神用汇编和中断~

请设计一个2位静态数码管从00到59显示的程序
#include
unsigned char show[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int n, j;
qc()interrupt 1 using 3
{TH0=(65336-10000)/256;
TL0=(65336-10000)%256;
n++;
if (n>=100)
{n=0;
j++;
if (j>=60)
j=0;
}
}
main ()
{int gw,sw ;
ET0=1;
EA =1;
TMOD =0x01;
TH0=(65536-10000)/256;
TL0=(65336-10000)%256;
TR0=1;
while (1)
{ gw =j/10;
sw =j%10;
P0=show[gw];
P1=show[sw];
}
}

试着把P0=00放到jsq_s=1,后面,各位的也一样!!!

PLC如何控制数码管显示0~9???
答:如要易示数字0,则需要a、b、c、d、ef管亮,则对应的PLC的需驱动的输出点为Q0.0,Q0.1,Q0.2,Q0.3,Q0.4,Q0.5。I/O分配如下:启动按钮SB1,I0.0;停止按钮SB1,I0.1;Q0.0—Q0.6,数码管a—g。有时为了节约PLC的点位,或者是节省一个按钮,再或者其他应用场合非要用也是没...

用单片机汇编语言在八位数码管上显示0,就是同时显示一排0
答:ORG 00H LJMP MAIN ORG 30H MAIN:MOV DPTR, #TABLE MOV R7, #10 MOV A, #0 LOOP:LCALL DISPLAY LCALL DELAY INC A DJNZ R7, LOOP LJMP MAIN DISPLAY:PUSH ACC MOVC A, @A+DPTR MOV P1, A POP ACC RET DELAY:DL1:DJNZ R6, DL1 DL2:DJNZ R6,...

求问程序,如何用两位数码管显示从00开始,到03,06,09,12.
答:你要程序,也不给仿真图或原理图,只好画一个仿真图,采用两位静态显示数码管,按下面这个仿真图写的程序如下 include<reg51.h> unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void delay(unsigned char x)//延时子程序 { unsigned int j;while(x--)...

单片机用汇编写两个数码管显示0到99循环的程序
答:1、新建项目,做好准备。2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) //死循环效果{} 。6、dk = 1;//打开段选,P0 = leddata[i];,dk = 0;//关闭段选,delay(100);//延时...

单片机数字9到0显示程序代码?
答:for (int num = 9; num >= 0; num--) { //从数字9到0循环 for (int i = 0; i < 7; i++) { //依次点亮数字的7个LED digitalWrite(ledPins[i], numPins[num][i]); //控制LED引脚输出高低电平 } delay(1000); //延时1秒 } } 该程序利用数组存储数字09的LED点阵图形...

通过8051单片机,在p1口接一位数码管,让数码管从0显示到9,循环显示。试...
答:ORG 0030H START:MOV SP,#60H MOV TMOD,#01H MOV TH0,#4CH MOV TL0,#00H MOV R7,#00H MOV R6,#00H SETB ET0 SETB EA SETB TR0 MOV DPTR,#TAB MAIN:MOV A,R6 MOVC A,@A+DPTR MOV P1,A LJMP MAIN INTERRUPT_T0:MOV TH0,#4CH MOV TL0,#00H INC R7 CJNE R7,#20,LOOP1 ...

...让数码管自动显示0至9的C程序。有没有比这个更简单的???_百度知...
答:可以通过代码优化的方式来简化代码。一、设置延时函数 延时函数在单片机中有着让现实延时的能力,本程序中可以通过采用for循环方式进行延时,具体代码如下:void delay(){ uinti,j;for(i=100;i>0;i--)for(j=1000;j>0;j--);} 二、设置数码管显示数组 数组定义简单,而且访问很方便。所有...

写了个单片机矩阵按键控制数码管显示数字的程序,只需要显示0到9就好...
答:sbit wei=P1^0;void delay(uchar t)//毫秒延 { uint i,j;for(i=0; i<t; i++)for(j=0; j<110; j++);} void display(uchar d){ P1=0x00;wei=1; //第一个数码管点亮 P0=table[d];} void main(){ uchar v,temp;uchar key_l,key_h;// 定义列和行 uchar key;while(1)...

...8位数码管,想让数码管全部显示0,但是目前只能显示1个0.
答:哈哈 俺来帮你吧 SI EQU P0.2 RCK EQU P2.3 SCK EQU P0.4 ORG 0000H AJMP MAIN ORG 30H MAIN: ;---数码管段码数据--- MOV 30H, #01H MOV 31H, #02H MOV 32H, #03H MOV 33H, #04H MOV 34H, #05H ;MOV 35H, #06H MOV 36H, #07H MOV 37H, #08H...

单片机中二位数码管的显示,怎样用c语言写一段从0到99的程序啊?
答:公阳,P0.2,P0.3 分别通过PNP管接个位,十位数码管公共端,P1口输出数据,都是低电平有效 include <reg51.h> sbit shi=P0^3; //十位公共极 sbit ge=P0^2; //个位公共极 define Out P1 //数据输出端 unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,...