标题: PROTEUS仿真:动态驱动显示1-99(汇编程序) [打印本页]

作者: 多喝点    时间: 2020-1-30 14:53
标题: PROTEUS仿真:动态驱动显示1-99(汇编程序)


仿真电路图




仿真汇编程序:

  1. A_Bit EQU 20H
  2. B_Bit EQU  21h  ;十位数存放处
  3. TEMP  EQU 22h

  4. STAR:  MOV  TEMP, #0 ;初始化计数器

  5. STLOP:  
  6. ACALL  DISPLAY
  7. INC  TEMP
  8. MOV  A,TEMP
  9. CJNE  A,#100,NEXT ;=100重来
  10. MOV  TEMP,#0

  11. NEXT:
  12. LJMP  STLOP

  13. ;显示子程序
  14. DISPLAY:
  15.       MOV A, TEMP ;将temp中 的数转换成10进制
  16.       MOV B,#10;
  17.       DIV AB;
  18.       MOV B_Bit,A ;十位在A
  19.       MOV A_Bit,B;个位在B
  20.       MOV DPTR,#TAB;指定查表启始地址
  21.       MOV R0,#2;4

  22. DPL1:  MOV  R1,#100;250 ;显示1000次
  23. DPLOP: MOV A,A_Bit;取个位数
  24.       MOVC A,@A+DPTR;查个位数的7段代码
  25.       ;CPL A;
  26.       MOV  P1 ,A;送出个位的7段代码
  27.       CLR  P2.7;
  28.       ACALL D1MS;延时显示1ms
  29.       SETB P2.7;
  30.       MOV  A,B_Bit  ;取十位数
  31.       MOVC A, @A+DPTR ;查十位数的7 段代码
  32.       ;CPL A;
  33.       MOV  P1 ,A;送出十位的7段代码
  34.       CLR  P2.6;
  35.       ACALL D1MS;
  36.       SETB P2.6;
  37.       DJNZ  R1,DPLOP  ;100次没完循环
  38.       DJNZ  R0,DPL1  ;2个100次没完循环RET
  39.       ;延时4毫秒即2微秒* R7*R6(按12MHZ算)


  40. D1MS: MOV  R7 ,#5;10
  41.       D1:  MOV  R6,#50;
  42.            DJNZ R6,$;
  43.            DJNZ R7,D1;
  44.            RET;

  45. ;7段数码管各划的数字排列表,共阳的七段花数
  46. TAB:
  47. DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h;
  48. END;

复制代码








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1