淘宝店
Google
      
 16 12
发新话题
打印

出个题目,希望能参与。BCD数码管递减显示(适应初学者)

本主题由 瑞新 于 2008-3-23 22:08 设置高亮
9楼的程序不能符合我出的题目。

TOP

是不是我出的题太简单
怎末没人参入

TOP

先来个汇编的,这是网上的。
MOV 20H, #99H
LOOP:  
    MOV A, 20H
   MOV P1,A
SUBB A, #01H
MOV B, #10H
DIV AB
XCH A, B
SUBB A, #0AH
JC L1
ADD A, #04H
JMP L2
L1: ADD A, #0AH
L2:
SWAP A
ORL A, B
SWAP A
MOV 20H, A
lcall Delay1S
CJNE A,#00H,LOOP
MOV 20H, #99H
JMP LOOP
      ; 1秒的延时程序
Delay1S:
  mov  r1,#48
  del0:
  mov r2,#100
  del1: mov r3,#100
  djnz r3,$
  djnz r2,del1
  djnz r1,del0
  Ret
END
//这个程序能实现100以内压缩BCD码的减法调整

TOP

再来个自己编的,刚学c语言编得不好,请各位置教。
/*修改成功与2008.03.20  2:13
山东人*/

#include <reg51.h>
#define  uint  unsigned        int
#define  uchar unsigned char
uchar  shi,ge,temp,temp1;         
void  delay(uint);
void  main()        
{        
        while(1)  //大循环
        {
           temp=99;
                for(temp1=100;temp1>0;temp1--)
                  {
                   shi=temp/10;
                   ge=temp%10;
                   shi<<=4;                  
                   P1=shi|ge;
                                             delay(620);
                   temp--;
                   }
        }        
}
void  delay(uint z)        
{
        uint x,y;        
        for(x=100;x>0;x--)
          for(y=z;y>0;y--);
}

[ 本帖最后由 山东人 于 2008-3-28 21:12 编辑 ]

TOP

我传的是4位的倒计时程序,供大家学习,呵呵

TOP

啊!谢谢楼上发的程序~~学习了!“山东人”老乡“突飞猛进”啊!恭喜恭喜!学习了!

TOP

 16 12
发新话题