水仙花数的程序怎么写啊

水仙花数的程序怎么写啊,第1张

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单片机......用六位数码管实现数字时钟,显示时分秒,用两个按键可分别调整时、分。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9577572.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存