
Private Sub Form_Click()
Dim a, b, c ,x As Integer
For a = 0 To 9
For b = 0 To 9
For c = 1 To 9
x=100 c + 10 b + a
If a ^ 3 + b ^ 3 + c ^ 3 = a + 10 b + 100 c Then print x;
Next c
Next b
Next a
这是用vb编的 我只学了这个
==================================
C语言的"水仙花数"代码
main(){
int i,j,k;
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if( (i100+j10+k)==((iii)+(jjj)+(kkk)))
printf("%d%d%d ",i,j,k);
getch();
}
C语言的"水仙花数"代码
main(){
int ge,shi,bai,number;
for(number=100;number<1000;number++){
bai=number/100;
shi=(number%100)/10;
ge=number%10;
if(number==baibaibai+shishishi+gegege)
printf("\nnumber=%d\n",number); }
getch();
}
这是c语言 从这里抄来的>
#include<reg51h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^0;
sbit key2=P3^1;
uchar tt0,pin,fen,miao,pin1,fen1,miao1,pin2,fen2,miao2;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint x)
{
uchar t;
while(x--) for(t=0;t<150;t++);
}
void timer0() interrupt 1
{
TH0=(65536-4900)/256;
TL0=(65536-4900)%256;
tt0++;
if(tt0==1)
{
tt0=0;
pin++;
if(pin==99)
{
pin=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
pin=0;
miao=0;
fen=0;
}
}
}
}
}
void display(uchar pin1,uchar pin2,uchar miao1,uchar miao2,uchar fen1,uchar fen2)
{
P0=0xff;
P0=table[pin1];
P2=0x80;
delay(2);
P0=0xff;
P0=table[pin2];
P2=0x40;
delay(2);
P0=0xff;
P0=0xbf;
P2=0x20;
delay(2);
P0=0xff;
P0=table[miao1];
P2=0x10;
delay(2);
P0=0xff;
P0=table[miao2];
P2=0x08;
delay(2);
P0=0xff;
P0=0xbf;
P2=0x04;
delay(2);
P0=0xff;
P0=table[fen1];
P2=0x02;
delay(2);
P0=0xff;
P0=table[fen2];
P2=0x01;
delay(2);
}
void keyscan()
{
if(key1==0)
delay(5);
if(key1==0)
{
while(key1==0);
TR0=~TR0;
}
if(key2==0)
{
delay(5);
if(key2==0)
{
while(key2==0);
pin=0;
miao=0;
fen=0;
}
}
}
void main()
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TMOD=0x01;
EA=1;
ET0=1;
TR0=0;
while(1)
{
pin1=pin%10;
pin2=pin/10;
miao1=miao%10;
miao2=miao/10;
fen1=fen%10;
fen2=fen/10;
keyscan();
display( pin1,pin2,miao1,miao2,fen1,fen2);
P0=0xff;
}
}
#include<reg52h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,miao,fen,shi;
sbit m=P3^0;
sbit n=P3^1;
uchar code table[]={ //数码管编码表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void display(uchar miao,uchar fen,uchar shi);
void delay(uint z);
void init();
void main()
{
init();//初始化子程序
miao=0;
shi=0;
fen=0;
while(1)
{
display(miao,fen,shi);
}
}void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void display(uchar miao,uchar fen,uchar shi) // 显示子函数
{
P0=0x00;
P0=table[miao%10];
P2=0x7f;
delay(1);
P0=0x00;
P0=table[miao/10];
P2=0xbf;
delay(1); P0=0x00;
P0=table[fen%10];
P2=0xdf;
delay(1);
P0=0x00;
P0=table[fen/10];
P2=0xef;
delay(1);
P0=0x00;
P0=table[shi%10];
P2=0xf7;
delay(1); P0=0x00;
P0=table[shi/10];
P2=0xfb;
delay(1);
}void init() // 初始化子函数
{
temp=0;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256; //定时器初值,定时50ms(12M晶振),由于考虑MCU指令处理时间,此处赋初值位45872
EA=1;
ET0=1;
TR0=1;
}void timer0() interrupt 1 //定时计数器中断
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256; 、
aa++;
if(aa==20) //中断2次位1S,秒加1
{
miao++;
aa=0;
if(miao==60)
{
fen++; // 满60S, 分加1,秒清0
miao=0;
if(fen==60)
{
shi++; // 小时加1
fen=0;
if(shi==24) shi=0; //小时满
}
}
}
if(m==0) // 调分
{
delay(2);
if(m==0) fen++;
if(fen==60) fen=0;
delay(2);
while(!m);
}
if(n==0) // 调小时
{
delay(2);
if(n==0) shi++;
if(shi==24) shi=0;
delay(2);
while(!n);
}
}
import javautil;
import javaawt;
import javaapplet;
import javatext;
import javaawtevent;
public class Alarm extends Applet implements Runnable
{
Thread timer=null; //创建线程timer
Image gif1; //clockp:闹钟的外壳,闹铃和报时物
boolean setflag=false,stopflag=false,cancelflag=false;
Panel setpanel;
//获取声音文件
AudioClip ring=getAudioClip(getCodeBase(), "1mid");
Button setbutton=new Button("SET");
Button cancelbutton=new Button("CANCEL");
Button stopbutton=new Button("STOP");
//响应按钮事件
private ActionListener setli=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setflag=true;
}
};
private ActionListener cancelli=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setflag=true;
}
};
private ActionListener stopli=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ringstop();
//清除的方法
//gclearRect(83,280,20,30);
}
};
Label note1=new Label("Alarm clock:");
//GregorianCalendar提供的是一个日历式的东东,上面又多了很多的参数,是方便 *** 作了不少。而Date类的功能远不及其,求个和日期有联系的还要自己计算。
GregorianCalendar cal=new GregorianCalendar();
GregorianCalendar cal2=new GregorianCalendar();
SimpleDateFormat df=new SimpleDateFormat("yyyy MM dd HH:mm:ss");//设置时间格式
Date dummy=new Date(); //生成Data对象
String lastdate=dfformat(dummy);
Font F=new Font("TimesRoman",FontPLAIN,14);//设置字体格式
Date dat=null;
Date timeNow;
Color fgcol=Colorblue;
Color fgcol2=ColordarkGray;
Color backcolor=Colorblue;
Label hlabel2,mlabel2,slabel2;//显示时间单位时所用的标签(时、分、秒)
int i;
int s,m,h;
TextField sethour,setmin,setsec;//显示当前时间文本框和定时文本框
//在Applet程序中,首先自动调用初始化完成必要的初始化工作,紧接着自动调用start,在进入执行程序和返回到该页面时被调用,而从该页面转到别的页面时,stop被调用,关闭浏览器时,执行destroy。
public void init()//初始化方法
{
int fieldx=50,fieldy1=120,fieldy2=220,fieldw=30,fieldh=20,space=50;//显示时间和定时文本框的定位参数
setLayout(null); //将布局管理器初始化为null
setpanel=new Panel();
setpanelsetLayout(null);
setpaneladd(note1);
note1setBounds(30,100,60,20);
note1setBackground(backcolor);
note1setForeground(Colorblack);
//定时用的文本框(时、分、秒)
sethour=new TextField("00",5);
setmin=new TextField("00",5);
setsec=new TextField("00",5);
hlabel2=new Label();
mlabel2=new Label();
slabel2=new Label();
//定时的小时文本框的位置、大小
setpaneladd(sethour);
sethoursetBounds(fieldx,fieldy2,fieldw,fieldh);
sethoursetBackground(Colorwhite);
//在文本框后加入单位“时”
setpaneladd(hlabel2);
hlabel2setText("h");
hlabel2setBackground(backcolor);
hlabel2setForeground(Colorblack);
hlabel2setBounds(fieldx+fieldw+3,fieldy2,14,20);
fieldx=fieldx+space;
//定时的分钟文本框的位置、大小
setpaneladd(setmin);
setminsetBounds(fieldx,fieldy2,fieldw,fieldh);
setminsetBackground(Colorwhite);
//在文本框后加入单位“分”
setpaneladd(mlabel2);
mlabel2setText("m");
mlabel2setBackground(backcolor);
mlabel2setForeground(Colorblack);
mlabel2setBounds(fieldx+fieldw+3,fieldy2,14,20);
fieldx=fieldx+space;
//定时的秒文本框的位置、大小
setpaneladd(setsec);
setsecsetBounds(fieldx,fieldy2,fieldw,fieldh);
setsecsetBackground(Colorwhite);
//在文本框后加入单位“秒”
setpaneladd(slabel2);
slabel2setText("s");
slabel2setBackground(backcolor);
slabel2setForeground(Colorblack);
slabel2setBounds(fieldx+fieldw+3,fieldy2,14,20);
//设置闹钟控制按钮(on,off)
setpaneladd(cancelbutton);
setpaneladd(setbutton);
setpaneladd(stopbutton);
cancelbuttonsetBounds(90,180,40,20);
setbuttonsetBounds(140,180,40,20);
stopbuttonsetBounds(522,180,40,20);
setbuttonaddActionListener(setli);
cancelbuttonaddActionListener(cancelli);
stopbuttonaddActionListener(stopli);
stopbuttonsetVisible(false);
//将面板加入当前容器中,并设置面板的大小和背景色
add(setpanel);
setpanelsetBounds(300,1,250,420);
setpanelsetBackground(backcolor);
/int xcenter,ycenter,s,m,h;
//闹钟中心点所在位置
xcenter=145;
ycenter=162;
s=(int)calget(CalendarSECOND);
m=(int)calget(CalendarMINUTE);
h=(int)calget(CalendarHOUR_OF_DAY);
//初始化指针位置
lastxs=(int)(Mathcos(s314f/30-314f/2)30+xcenter);
lastys=(int)(Mathsin(s314f/30-314f/2)30+ycenter);
lastxm=(int)(Mathcos(m314f/30-314f/2)25+xcenter);
lastym=(int)(Mathsin(m314f/30-314f/2)25+ycenter);
lastxh=(int)(Mathcos((h30+m/2)314f/180-314f/2)18+xcenter);
lastyh=(int)(Mathsin((h30+m/2)314f/180-314f/2)18+ycenter);
lasts=s; /
MediaTracker mt=new MediaTracker(this);//为给定组件创建一个跟踪媒体的MediaTracker对象,把添加到被跟踪的组
//Java允SappletHTML所在的位置(decument base)下dY料,也允Sapplet钠涑淌酱a所在的位置(code base)下dY料。藉由呼叫getDocumentBase()cgotCodeBase()可得到URL物件。@些函湍阏业侥阆胂螺d的n案的位置
//clockp=getImage(getDocumentBase(),"11png");
gif1=getImage(getCodeBase(),"2gif");
//i为id号
mtaddImage(gif1,i++);
try
{
mtwaitForAll();
}
catch(InterruptedException e)
{};//等待加载结束
resize(600,420);//设置窗口大小
}
//窗口显示有改变的时候调用paint
public void paint(Graphics g)
{//重写paint()方法
int xh,yh,xm,ym,xs,ys,strike_times;
int xcenter,ycenter;
String today;
xcenter=148;
ycenter=186;
dat=new Date();
//用当前时间初始化日历时间
calsetTime(dat);
//读取当前时间
s=(int)calget(CalendarSECOND);
m=(int)calget(CalendarMINUTE);
h=(int)calget(CalendarHOUR_OF_DAY);
//换一种时间表达形式
today=dfformat(dat);
//指针位置
xs=(int)(Mathcos(s314f/30-314f/2)30+xcenter);
ys=(int)(Mathsin(s314f/30-314f/2)30+ycenter);
xm=(int)(Mathcos(m314f/30-314f/2)25+xcenter);
ym=(int)(Mathsin(m314f/30-314f/2)25+ycenter);
xh=(int)(Mathcos((h30+m/2)314f/180-314f/2)12+xcenter);
yh=(int)(Mathsin((h30+m/2)314f/180-314f/2)12+ycenter);
//设置字体和颜色
gsetFont(F);
//前景色
gsetColor(getBackground()); //取背景色的
gdrawImage(gif1,75,110,this);
//以数字方式显示年、月、日和时间
gdrawString(today,55,415);
//画指针
gdrawLine(xcenter,ycenter,xs,ys);
gdrawLine(xcenter,ycenter-1,xm,ym); //(x1,y1,x2,y2)
gdrawLine(xcenter-1,ycenter,xm,ym);
gdrawLine(xcenter,ycenter-1,xh,yh);
gdrawLine(xcenter-1,ycenter,xh,yh);
int timedelta;//记录当前时间与闹铃定时的时差
Integer currh,currm,currs;//分别记录当前的时、分、秒
Date dat2=new Date();
cal2setTime(dat2);
//读取当前时间
currh=(int)cal2get(CalendarSECOND);
currm=(int)cal2get(CalendarMINUTE);
currs=(int)cal2get(CalendarHOUR_OF_DAY);
//这样做的话说我API已过时
//timeNow=new Date();
//currh=new Integer(timeNowgetHours());
//currm=new Integer(timeNowgetMinutes());
//currs=new Integer(timeNowgetSeconds());
if(setflag)
{ //判断是否设置了闹钟
//判断当前时间是否为闹钟所定的时间
if((currhintValue()==IntegervalueOf(sethourgetText())intValue())&&(currmintValue()==IntegervalueOf(setmingetText())intValue())&&(currsintValue()==IntegervalueOf(setsecgetText())intValue()))
{
ringplay();
gdrawImage(gif1,83,280,this);
stopbuttonsetVisible(true);
}
timedelta=currmintValue()60+currsintValue()-IntegervalueOf(setmingetText())intValue()60-IntegervalueOf(setsecgetText())intValue();
if((timedelta>=30))
{
//若当前时间与闹钟相差时间超过30秒,闹钟自动停
ringstop();
//清除的方法
gclearRect(83,280,20,30);
}
}
dat=null;
}
public void start()
{
if(timer==null)
{
timer=new Thread(this);//将timer实例化
timerstart();
}
}
public void stop()
{
timer=null;
}
//给创建线程后start之后自动执行的函数
public void run()
{
//在run()方法中,调用repaint()方法,以重绘小程序区,进行时钟显示的更新。接着调用sleep方法让当前线程(也就是我们创建的线程clockthread)睡眠1000毫秒,因为我们每秒钟要更新一下显示,所以让它睡眠1秒
while(timer!=null)
{
try
{
timersleep(1000);
}
catch(InterruptedException e)
{}
//调用repaint时,会首先清除掉paint方法之前的画的内容,再调用paint方法
repaint();//刷新画面
}
timer=null;
}
//当AWT接收到一个applet的重绘请求时,它就调用applet的 update(),默认地,update() 清除applet的背景,然后调用 paint()。重载 update(),将以前在paint()中的绘图代码包含在update()中,从而避免每次重绘时将整个区域清除
//有两种方法可以明显地减弱闪烁:重载 update()或使用双缓冲。
//使用双缓冲技术:另一种减小帧之间闪烁的方法是使用双缓冲,它在许多动画Applet中被使用。其主要原理是创建一个后台图像,将需要绘制的一帧画入图像,然后调用DrawImage()将整个图像一次画到屏幕上去;好处是大部分绘制是离屏的,将离屏图像一次绘至屏幕上比直接在屏幕上绘制要有效得多,大大提高做图的性能。
// 双缓冲可以使动画平滑,但有一个缺点,要分配一张后台图像,如果图像相当大,这将需要很大一块内存;当你使用双缓冲技术时,应重载 update()。
public void update(Graphics g)
{
Image offscreen_buf=null;
//采用双缓冲技术的update()方法
if(offscreen_buf==null)
offscreen_buf=createImage(600,420);
Graphics offg=offscreen_bufgetGraphics();
offgclipRect(1,1,599,419);
paint(offg);
Graphics ong=getGraphics();
ongclipRect(1,1,599,419);
ongdrawImage(offscreen_buf,0,0,this);
}
/ Creates a new instance of AlarmClock /
}
下面是一个自动以2递增显示的程序,你可以修改下,把最下面一行的定时器中断改为外部按键中断就行了,中断里加按键去抖动,三位数码管好像是接移位寄存器静态显示的。
#include<reg51h>
#define uint unsigned int
#define uchar unsigned char
sbit sda = P1^0;
sbit clk = P1^1;
sbit dig1 = P1^2;
sbit dig2 = P1^3;
sbit dig3 = P1^4;
sbit dig4 = P1^5;
uchar code table[]={0x7e,0x0c,0xb6,0x9e,0xcc,0xda,0xfa,0x0e,0xfe,0xde};
uchar times;
void init();
void delay(uchar);
void write(uchar);
void display(uchar);
void main()
{
uint i = 0;
init();
while(1)
{
i = 2;
display(i);
if(times>2)
{
times = 0;
i=i+2 ++;
if(i==998)
i = 2;
}
}
}
/ 显示一个3位的整数 /
void display(uchar num)
{
uchar bai,shi,ge;
bai = num/100;
shi = num%100/10;
ge = num%10;
/ 显示个位 /
dig4 = 0;
write(table[ge]);
delay(10);
dig4 = 1;
/ 显示十位 /
dig3 = 0;
write(table[shi]);
delay(10);
dig3 = 1;
/ 显示百位 /
dig2 = 0;
write(table[bai]);
delay(10);
dig2 = 1;
}
/ 程序初始化函数 /
void init()
{
clk = 0;
times = 0;
TMOD = 0x01; //定时器模式1
TH0 = (65536-50000)/256; //每500毫秒产生一次中断
TL0 = (65536-50000)%256;
TR0 = 1; //开始计时
EA = 1; //打开总中断开关
ET0 = 1;
}
/ 向数据码管写入一个字节数据 /
void write(uchar u)
{
uchar i;
for(i=0;i<8;i++)
{
clk = 1;
sda = u&0x80;
clk = 0;
u = u<<1;
}
}
/ 延迟函数 /
void delay(uchar t)
{
uchar x,y;
for(x=t;x>0;x--)
for(y=101;y>0;y--);
}
/ 1号中断 /
void timer0() interrupt 1
{
TH0 = (65536-50000)/256; //每500毫秒产生一次中断
TL0 = (65536-50000)%256;
times ++;
}
软件是要硬件支持的 下面有个图参考
程序可能要调试一下 你是 高手这个应该没什么问题吧。。。
LED BIT P37 ;指示灯
TT0 EQU 09H
TT1 EQU 0AH
TT2 EQU 0BH ;位定义
XIAN0 EQU 50H
XIAN1 EQU 51H
XIAN2 EQU 52H
XIAN3 EQU 53H ;显存定义
FEN EQU 54H ;分存定义
SHI EQU 55H ;时存定义
ZHI EQU 57H ;按钮暂存内容定义
FLASH BIT 30H ;闪烁标志位定义
SBIAO BIT 31H ;定时器工作两种状态的标志位
KEY BIT 32H ;正常工作时屏蔽“加键”标志位
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP NIEDS0
ORG 0050H
MAIN:
MOV SP,#60H
MOV ZHI,#00 ;按钮初始值
MOV R7,#10
MOV R6,#2
MOV R5,#10
MOV R4,#2
MOV XIAN0,#0
MOV XIAN1,#0
MOV XIAN2,#0
MOV XIAN3,#0
MOV R0,#FEN
MOV FEN,#0
MOV SHI,#0
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB FLASH ;开机显示不闪
SETB SBIAO ;开机定时器正常工作
SETB LED
CLR KEY ;初始屏蔽加键
SETB TR0
SETB ET0
SETB EA
NIEXQ:
LCALL DISP
LCALL KEYHAND
LJMP NIEXQ
NIEDS0:
PUSH ACC
PUSH PSW
JNB SBIAO,DSSS ;判断是正常工作还是闪烁标志位取反
DJNZ R5,NIEOUT
MOV R5,#10
CPL LED ;指示灯1S闪烁,因为是取反,所以要500MS取反一次
DJNZ R4,NIEOUT
MOV R4,#2
MOV A,FEN
INC A
MOV FEN,A
CJNE A,#60,NIEOUT
MOV FEN,#0
MOV A,SHI
INC A
MOV SHI,A
CJNE A,#24,NIEOUT
MOV SHI,#0
AJMP NIEOUT
DSSS:
DJNZ R7,NIEOUT
MOV R7,#10
CPL FLASH ;进入调整状态,标志位取反,显示中判断
CPL LED ;指示灯在调整时也闪烁
DJNZ R6,NIEOUT
MOV R6,#2
NIEOUT:
MOV TH0,#3CH
MOV TL0,#0B0H
POP PSW
POP ACC
RETI
DISP:
LCALL PAND ;判断子程序,为了达到调整时闪烁
CLR P33
SETB P32
SETB P31
SETB P30 ;直接对独立指定位CLR/SETB是为了不影响到P37指示灯的闪烁
MOV A,XIAN0
LCALL CHAB ;查段码
CLR P32
SETB P33
SETB P31
SETB P30 ;直接对独立指定位CLR/SETB是为了不影响到P37指示灯的闪烁
MOV A,XIAN1
LCALL CHAB ;查段码
CLR P31
SETB P32
SETB P33
SETB P30 ;直接对独立指定位CLR/SETB是为了不影响到P37指示灯的闪烁
MOV A,XIAN2
LCALL CHAB ;查段码
CLR P30
SETB P31
SETB P32
SETB P33 ;直接对独立指定位CLR/SETB是为了不影响到P37指示灯的闪烁
MOV A,XIAN3
LCALL CHAB ;查段码
RET
CHAB:
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P1,#0FFH
RET
PAND: ;判断是否闪烁???
MOV A,R0
CJNE A,#FEN,PPS
JNB FLASH,FFS
LCALL DIVDIV
RET
FFS:
MOV XIAN1,#10
MOV XIAN0,#10
RET
PPS:
JNB FLASH,SSS
LCALL DIVDIV
RET
SSS:
MOV XIAN2,#10
MOV XIAN3,#10
RET
DIVDIV: ;分``时分解
MOV A,FEN
MOV B,#10
DIV AB
MOV XIAN1,A
MOV XIAN0,B
MOV A,SHI
MOV B,#10
DIV AB
MOV XIAN3,A
MOV XIAN2,B
RET
KEYHAND: ;按键扫描子程序
LCALL KAP
JZ NOKEY
PUSH P1 ;暂存P1状态!!
LCALL DISP
POP P1
LCALL KAP
JZ NOKEY
MOV A,P1
JNB ACC0,K1
JNB ACC1,K2
NOKEY:
RET
KAP: ;通用型KAP
MOV A,P1
ORL A,#0FCH
CPL A
RET
DENDAI: ;等待键d起
PUSH P1
LCALL DISP
POP P1
LCALL KAP
JNZ DENDAI
RET
K1:
LCALL DENDAI
MOV A,ZHI
INC A
MOV ZHI,A
CJNE A,#1,KTF
CLR SBIAO ;按第一次时开启定时器中FLASH标志位取反``
SETB KEY ;取消屏蔽
RET
KTF:
CJNE A,#2,KKAI
MOV R0,#SHI ;按第二次属调时
RET
KKAI:
CJNE A,#3,K1OUT
MOV ZHI,#0
MOV R0,#FEN ;恢复初始状态``调分
SETB SBIAO ;开启定时1S工作
SETB FLASH ;判断PAND子程序中用到
CLR KEY ;屏蔽K2键
K1OUT :
RET
K2:
JNB KEY,K2OUT ;是否屏蔽
LCALL DENDAI
MOV A,R0
CJNE A,#FEN,KKS ;是否调分
MOV A,FEN
INC A
MOV FEN,A
CJNE A,#60,K2OUT
MOV FEN,#0
RET
KKS: ;不是调分``一定是调时
MOV A,SHI
INC A
MOV SHI,A
CJNE A,#24,K2OUT
MOV SHI,#0
K2OUT:
RET
DELAY:
MOV TT1,#02
DEE1:
MOV TT2,#0FFH
DJNZ TT2,$
DJNZ TT1,DEE1
RET
TAB:
DB 0FH,1FH,2FH,3FH,4FH,5FH,6FH,7FH,8FH,9FH,0FFH
END
以上就是关于水仙花数的程序怎么写啊全部的内容,包括:水仙花数的程序怎么写啊、用C51写程序 具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时-分-秒”、求程序用AT89C51单片机......用六位数码管实现数字时钟,显示时分秒,用两个按键可分别调整时、分。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)