搜索
bottom↓
回复: 19

如何编写程序,通过数字键盘(0-9)将0x12改成0x36

[复制链接]

出0入0汤圆

发表于 2015-11-6 22:51:04 | 显示全部楼层 |阅读模式
如题,考虑了很久,还是不知如何搞,现在的问题是ds1302修改时间,
//顺序:秒,分,时,日,月,星期,年;格式:BCD
uchar times[7]={0x50,0x59,0x23,0x06,0x09,0x01,0x15};
定义了一个数组,想通过键盘(0-9)修改一下时间,例如把times[3]=0x06;修改为0x25,程序如何实现呢

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2015-11-7 00:06:50 | 显示全部楼层
temp=(read1302(reg)/16)*10+read1302(reg)%16读取转换成10进制
10进制转换成BCD写入write1302(reg,(temp/10)*16+temp%10)

出0入0汤圆

 楼主| 发表于 2015-11-7 11:09:32 | 显示全部楼层
little_Monkey 发表于 2015-11-7 00:06
temp=(read1302(reg)/16)*10+read1302(reg)%16读取转换成10进制
10进制转换成BCD写入write1302(reg,(temp/1 ...

你还,仔细想了你的回复,你是将10进制转化为BCD码格式,我想问是通过数字键盘改变的1302数据么

出0入0汤圆

发表于 2015-11-7 12:04:06 | 显示全部楼层
1178951695 发表于 2015-11-7 11:09
你还,仔细想了你的回复,你是将10进制转化为BCD码格式,我想问是通过数字键盘改变的1302数据么 ...

读取到键盘如何得到数据那是你程序需要处理的问题,很简单了,最简单的方法,上次的按键值×10+这次的按键值

出0入0汤圆

发表于 2015-11-7 12:25:13 | 显示全部楼层
你是新手吧,这都搞不定,还是转行吧

出0入0汤圆

 楼主| 发表于 2015-11-7 13:24:15 | 显示全部楼层
spring152 发表于 2015-11-7 12:25
你是新手吧,这都搞不定,还是转行吧

,发段程序来看看

出0入0汤圆

发表于 2015-11-7 16:51:04 | 显示全部楼层
#define  uchar unsigned char  
uchar times[7]={0x50,0x59,0x23,0x06,0x09,0x01,0x15};
uchar read_key(void)
{
                 
  // return key value

}
void chk_key(uchar key)
{
  switch( key )  
  {
    case 0:                 //key 0
        times[3]=0x25;   
    case 1:                 //key 1
    case 2:                 //key 2
    case 3:                                                                 //key 3
    case 4:                                                                 //key 4
    case 5:                                                                 //key 5
    case 6:                                                                 //key 6
    case 7:                                                                 //key 7
    case 8:                                                                 //key 8
    case 9:                                                                 //key 9
    default:
             break;
  }

}

void main(void)
{
     uchar i;
     i=read_key();
     chk_key(i);
}

出0入0汤圆

发表于 2015-11-7 16:57:31 | 显示全部楼层
楼主要的不是什么把什么改成什么的程序,而是要一个通过按键设置时间的程序吧。

出0入0汤圆

 楼主| 发表于 2015-11-7 17:27:00 | 显示全部楼层
hyz_avr 发表于 2015-11-7 16:57
楼主要的不是什么把什么改成什么的程序,而是要一个通过按键设置时间的程序吧。 ...

对啊,请问你有么?贴一段学习下

出0入0汤圆

 楼主| 发表于 2015-11-7 17:32:32 | 显示全部楼层
jxchen 发表于 2015-11-7 16:51
#define  uchar unsigned char  
uchar times[7]={0x50,0x59,0x23,0x06,0x09,0x01,0x15};
uchar read_key(v ...

谢谢,你这的确可以变成0x25,但我需要的是通过按键2和按键5实现它,而不是人为的定义一个0x25,请问你还有其他的方法么

出0入0汤圆

发表于 2015-11-7 18:03:34 | 显示全部楼层
本帖最后由 hyz_avr 于 2015-11-7 18:10 编辑
1178951695 发表于 2015-11-7 17:27
对啊,请问你有么?贴一段学习下


有,给你个十年前刚自学单片机时写的1602LCD电子钟程序。

  1. ORG 0000H;
  2. LJMP START;
  3. ORG 000BH;时间定时       
  4. AJMP TIME;
  5. ORG 001BH;调时闪烁定时
  6. LJMP SETTIME;
  7. ORG 0030H;
  8. START:
  9.    RS EQU P0.4   ;RS EQU P3.7
  10.    RW EQU P0.5   ;RW EQU P3.6
  11.    E EQU P0.6   ;E EQU P3.5
  12.         MOV p2,#01H;;清除屏幕
  13.         ACALL ENABLE
  14.         MOV p2,#38H;8位点阵方式
  15.         ACALL ENABLE
  16.         MOV p2,#0CH;开显示
  17.         ACALL ENABLE
  18.         MOV p2,#06H;移动光标
  19.         ACALL ENABLE

  20. MOV 2AH,#7FH;赋初值
  21. MOV 2CH,#00H;
  22. MOV 20H,#00H;
  23. MOV 21H,#00;
  24. MOV 22H,#00;
  25. MOV 23H,#00;
  26. MOV 24H,#20;
  27. MOV 25H,#01;
  28. MOV 26H,#06;
  29. MOV 43H,#08;
  30. MOV 46H,#00;
  31. MOV R5,#06H;

  32. SETB EA;
  33. SETB ET0;
  34. MOV TMOD,#11H;
  35. MOV TL0,#0B0H;
  36. MOV TH0,#3CH;

  37. MOV TL1,#0B0H;
  38. MOV TH1,#3CH;


  39. SETB TR0;
  40. MOV SP,#50H;

  41. MOV R2,#02H;
  42. MOV R1,#0C6H;
  43. MOV DPTR,#TABLE;
  44. YCL:MOV p2,R1;显示时间\日期的间隔符号
  45.     LCALL ENABLE;
  46.     MOV A,#3AH;
  47.     LCALL WRITE2;
  48.     MOV R1,#0C9H;
  49.     DJNZ R2,YCL;

  50. MOV R2,#02H;
  51. MOV R1,#87H;
  52. YCL2:MOV p2,R1;
  53.     LCALL ENABLE;
  54.          MOV A,#2dH;
  55.          LCALL WRITE2;
  56.          MOV R1,#8AH;
  57.          DJNZ R2,YCL2;
  58. MOV R2,#02H;
  59. MOV R1,#83H;
  60. MOV A,#'2';显示年的前两位
  61. YCL3:MOV p2,R1;
  62.      LCALL ENABLE;
  63.      LCALL WRITE2;
  64.      MOV A,#'0';
  65.      MOV R1,#84H;
  66.      DJNZ R2,YCL3;




  67. LOOP:LCALL DISP;
  68.      LCALL KEY;
  69.      
  70.           JZ LOOP;
  71.      LCALL ANKEY;
  72.           
  73.      AJMP LOOP;

  74. TIME:
  75.      PUSH ACC;
  76.      PUSH PSW;
  77.      MOV TL0,#0DCH;定时器初始值50ms(50000us)(可以自己更改)
  78.      MOV TH0,#37H;
  79.      INC 20H;
  80.      MOV A,20H;
  81.      CJNE A,#18,RETI1;
  82.     MOV 20H,#00H;

  83.    MOV A,21H;秒计数
  84.    INC A;
  85.    MOV 21H,A;
  86.         SETB 2AH.2;
  87.    CJNE A,#60,RETI1;
  88.    MOV 21H,#00H;
  89.    

  90.    MOV A,22H;分计数
  91.    INC A;
  92.    MOV 22H,A;
  93.         SETB 2AH.1;
  94.    CJNE A,#60,RETI1;
  95.    MOV 22H,#00H;
  96.    

  97.    MOV A,23H;时计数
  98.    INC A;
  99.    MOV 23H,A;
  100.         SETB 2AH.0;
  101.    CJNE A,#24,RETI1;
  102.    MOV 23H,#00H;


  103.    MOV A,24H;日计数
  104.    INC A;
  105.         MOV 24H,A;
  106.         SETB 2AH.3;
  107.         CJNE A,40H,RETI1;
  108.         MOV 24H,#01;

  109.         MOV A,25H;月计数
  110.         INC A;
  111.         MOV 25H,A;
  112.         SETB 2AH.4;
  113.         CJNE A,#13,RETI1;
  114.         MOV 25H,#01;

  115.         MOV A,26H;年计数
  116.         INC A;
  117.         MOV 26H,A;
  118.         SETB 2AH.5;
  119.         CJNE A,#99,RETI1;
  120.         MOV 26H,#00;

  121.    

  122. RETI1:
  123.    MOV 2CH,#00H;
  124.    POP PSW;
  125.    POP ACC;
  126.    RETI;
  127. NOP
  128. NOP
  129. NOP
  130. ;闪动调时程序
  131. SETTIME:PUSH ACC;
  132.         PUSH PSW;
  133.                  
  134.                   MOV TL1,#0B0H;定时器1赋初值
  135.                   MOV TH1,#3CH;
  136.                   DJNZ R5,OUTSET;0.3秒未到,退出
  137.         MOV R5,#06H;
  138.                   MOV A,2CH; ------------------放入相应的闪动熄灭符
  139.                   JB 2BH.0,SETN;
  140.                   JB 2BH.1,SETY;
  141.                   JB 2BH.2,SETR;
  142.                   JB 2BH.3,SETS;
  143.                   JB 2BH.4,SETF;
  144.                   JB 2BH.5,SETM;
  145.         AJMP SETOUT;

  146. OUTSET:LJMP SETOUT;

  147. SETN:
  148.      ANL A,#01H;
  149.      MOV 2CH,A;
  150.      CPL 2CH.0;     
  151.      SETB 2AH.5;
  152.      MOV 36H,#20H;
  153.      MOV 37H,#20H;
  154.      AJMP SETOUT;

  155. SETY:
  156.      ANL A,#02H;
  157.      MOV 2CH,A;
  158.      CPL 2CH.1;
  159.      SETB 2AH.5
  160.           SETB 2AH.4;
  161.      MOV 38H,#20H;
  162.      MOV 39H,#20H;
  163.      AJMP SETOUT;

  164. SETR:
  165.      ANL A,#04H;
  166.      MOV 2CH,A;
  167.      CPL 2CH.2;
  168.      SETB 2AH.4;
  169.           SETB 2AH.3;
  170.      MOV 4AH,#20H;
  171.      MOV 4BH,#20H;
  172.      AJMP SETOUT;

  173. SETS:
  174.      ANL A,#08H;
  175.      MOV 2CH,A;
  176.      CPL 2CH.3;
  177.      SETB 2AH.3;
  178.           SETB 2AH.0;
  179.      MOV 30H,#20H;
  180.      MOV 31H,#20H;
  181.      AJMP SETOUT;

  182. SETF:
  183.      ANL A,#16;
  184.      MOV 2CH,A;
  185.      CPL 2CH.4;
  186.      SETB 2AH.0;
  187.           SETB 2AH.1;
  188.      MOV 32H,#20H;
  189.      MOV 33H,#20H;
  190.      AJMP SETOUT;

  191. SETM:
  192.      ANL A,#32;
  193.      MOV 2CH,A;
  194.      CPL 2CH.5;
  195.      SETB 2AH.1;
  196.      SETB 2AH.2;
  197.      MOV 34H,#20H;
  198.      MOV 35H,#20H;
  199.      

  200. SETOUT:LCALL DISP;
  201.       
  202.        POP PSW;
  203.        POP ACC;
  204.                  
  205.                  RETI;

  206. NOP
  207. NOP
  208. NOP
  209. ;按键检测与处理
  210. KEY:MOV 46H,#00H;
  211.     MOV A,P3;           
  212.     CPL A;
  213.     ANL A,#3FH;
  214.          JZ KEYOUT1;
  215.          LCALL D20MS;
  216.          MOV A,P3;
  217.          CPL A;
  218.          ANL A,#3FH;

  219.          MOV 46H,A;

  220. KEEY22:
  221.      MOV A,P3;
  222.      CPL A;
  223.           ANL A,#3FH;
  224.      JNZ KEEY22;


  225. KEYOUT1:MOV A,46H;
  226.         RET;





  227. KEY2:MOV 46H,#00H;按键检测
  228.      MOV A,P3;
  229.      CPL A;
  230.      ANL A,#3FH;
  231.      JZ KEY2;
  232.      LCALL D20MS;消抖
  233.           
  234.      MOV A,P3;
  235.      CPL A;
  236.      ANL A,#3FH;
  237.           JZ KEY2;
  238.      MOV 46H,A;
  239. KEEY2:         ;-------等待按键释放
  240.      MOV A,P3;
  241.      CPL A;
  242.           ANL A,#3FH;
  243.      JNZ KEEY2;

  244. ANKEY:;    -------------------按键处理
  245.       MOV A,46H;
  246.       JB ACC.3,L2;-----------是加1键跳转到L2
  247.       JB ACC.1,L3;-----------减1键跳转到L3
  248.       JB ACC.4,GL_L;
  249.       AJMP KEY2;

  250. GL_L:LJMP GL;----------------功能键处理

  251. L2:JB 2BH.0,NJ1;-------------加1键处理
  252.    JB 2BH.1,YJ1;
  253.    JB 2BH.2,RJ1;
  254.    JB 2BH.3,SJ1;
  255.    JB 2BH.4,FJ1;
  256.    JB 2BH.5,MJ1;
  257.    AJMP KEY2;

  258. L3:JB 2BH.0,NJJ1;------------减1键处理
  259.    JB 2BH.1,YJJ1;
  260.    JB 2BH.2,RJJ10;
  261.    JB 2BH.3,SJJ10;
  262.    JB 2BH.4,FJJ10;
  263.    JB 2BH.5,MJJ10;
  264.    AJMP KEY2;

  265.    RJJ10:LJMP RJJ1;
  266.    SJJ10:LJMP SJJ1;
  267.    FJJ10:LJMP FJJ1;
  268.    MJJ10:LJMP MJJ1;

  269. NJ1:MOV A,26H;---------------年加1
  270.     INC A;
  271.     CJNE A,#100,NOUT;
  272.     MOV A,#00H;
  273. NOUT:
  274.     MOV 26H,A;
  275.     SETB 2AH.5;
  276.     AJMP KEY2;
  277.   

  278. YJ1:MOV A,25H;-------------- 月加1
  279.     INC A;
  280.     CJNE A,#13,YOUT;
  281.     MOV A,#01H;
  282. YOUT:
  283.      MOV 25H,A;
  284.      SETB 2AH.4;
  285.      AJMP KEY2;


  286. RJ1:MOV A,24H;----------------日加1
  287.     INC A;
  288.     CJNE A,40H,ROUT;
  289.     MOV A,#01H;
  290. ROUT:
  291.      MOV 24H,A;
  292.      SETB 2AH.3;
  293.      AJMP KEY2;

  294. SJ1:MOV A,23H;---------------时加1
  295.     INC A;
  296.     CJNE A,#24,SOUT;
  297.     MOV A,#00H;
  298. SOUT:         
  299.     MOV 23H,A;
  300.     SETB 2AH.0;
  301.     AJMP KEY2;


  302. FJ1:MOV A,22H;---------------分加1
  303.     INC A;
  304.     CJNE A,#60,FOUT;
  305.     MOV A,#00H;
  306. FOUT:
  307.     MOV 22H,A;
  308.     SETB 2AH.1;
  309.     AJMP KEY2;


  310. MJ1:MOV A,21H;--------------秒加1
  311.     INC A;
  312.     CJNE A,#60,MOUT;
  313.     MOV A,#00H;
  314. MOUT:
  315.     MOV 21H,A;
  316.     SETB 2AH.2;
  317.     AJMP KEY2;
  318.     NOP
  319.     NOP
  320. ;-----------------------------------------------------减1键处理----------------

  321. NJJ1:MOV A,26H;
  322.      DEC A;
  323.      CJNE A,#0FFH,NJJ;
  324.      MOV A,#99;
  325. NJJ:
  326.      MOV 26H,A;
  327.      SETB 2AH.5;
  328.      AJMP KEY2;


  329. YJJ1:MOV A,25H;
  330.      DEC A;
  331.      CJNE A,#00H,YJJ;
  332.      MOV A,#12;
  333. YJJ:
  334.      MOV 25H,A;
  335.      SETB 2AH.4;
  336.      AJMP KEY2;


  337. RJJ1:MOV A,24H;
  338.      DEC A;
  339.      CJNE A,#00H,RJJ;
  340.      MOV 48H,40H;
  341.      DEC 48H;
  342.      MOV A,48H;
  343. RJJ:
  344.      MOV 24H,A;
  345.      SETB 2AH.3;
  346.      AJMP KEY2;


  347. SJJ1:MOV A,23H;
  348.      DEC A;
  349.      CJNE A,#0FFH,SJJ;
  350.      MOV A,#23;
  351. SJJ:
  352.      MOV 23H,A;
  353.      SETB 2AH.0;
  354.      AJMP KEY2;


  355. FJJ1:MOV A,22H;
  356.      DEC A;
  357.      CJNE A,#0FFH,FJJ;
  358.      MOV A,#59;
  359. FJJ:
  360.      MOV 22H,A;
  361.      SETB 2AH.1;
  362.      AJMP KEY2;


  363. MJJ1:MOV A,21H;
  364.      DEC A;
  365.      CJNE A,#0FFH,MJJ;
  366.      MOV A,#59;
  367. MJJ:
  368.      MOV 21H,A;
  369.      SETB 2AH.2;
  370.      AJMP KEY2;

  371. ;-----------------功能键处理----------------------

  372. GL:CLR ET0;
  373.    CLR TR0;
  374.        
  375.    SETB ET1;
  376.    SETB TR1;

  377.    
  378.    JB 2BH.0,YTZ;
  379.    JB 2BH.1,RTZ;
  380.    JB 2BH.2,STZ;
  381.    JB 2BH.3,FTZ;
  382.    JB 2BH.4,MTZ;
  383.    JB 2BH.5,KEYOUT;

  384. NTZ:MOV 2BH,#01H;
  385.     AJMP KEY2;


  386. YTZ:MOV 2BH,#02H;
  387.     AJMP KEY2;

  388. RTZ:MOV 2BH,#04H;
  389.     AJMP KEY2;

  390. STZ:MOV 2BH,#08H;
  391.     AJMP KEY2;

  392. FTZ:MOV 2BH,#16;
  393.     AJMP KEY2;

  394. MTZ:MOV 2BH,#32;
  395.     AJMP KEY2;         
  396.          
  397.          
  398. KEYOUT:;------------------按键退出
  399.    CLR ET1;
  400.    CLR TR1;
  401.    MOV 2AH,#7FH;
  402.    MOV 2BH,#00H;
  403.    MOV 2CH,#00H;
  404.    SETB ET0;
  405.    SETB TR0;
  406.    RET;

  407.   NOP
  408.    NOP

  409. DISP:MOV DPTR,#TABLE;
  410.    
  411.      JNB 2AH.5,Y_CL;年更新缓存?
  412.      MOV A,26H;
  413.         MOV B,#04;计算是否闰年
  414.         DIV AB;
  415.         MOV A,B;
  416.         JZ NCL;
  417.         MOV 41H,#29;不是闰年2月有28天
  418.         AJMP NYX;
  419.     NCL:MOV 41H,#30;闰年2月有29天
  420.     NYX:MOV A,26H;
  421.         MOV B,#10;
  422.         DIV AB;
  423. JB 2CH.0,NSD;     年显示是否熄灭
  424.         MOV 36H,A;
  425.         MOV 37H,B;
  426. NSD:
  427.         CLR 2AH.5;
  428.         MOV R4,#02;
  429.        
  430.         MOV R0,#86H;
  431.         MOV A,37H;
  432. NCL1:MOV p2,R0;
  433.      ACALL ENABLE;
  434.           MOVC A,@A+DPTR;
  435.           LCALL WRITE2;
  436.           MOV A,36H;
  437.           DEC R0;
  438.           DJNZ R4,NCL1;

  439. Y_CL:JNB 2AH.4,RCL;月更新缓存?
  440.         
  441.         MOV A,25H;
  442.         CJNE A,#02,Y_CL_1;不是二月,跳转Y_CL2
  443.         MOV 40H,41H;把2月份天数送到40H,
  444.         AJMP SYY;   
  445.                         


  446. Y_CL_1:  MOV A,25H;8月以上双月31天,8月以下单月31天
  447.                   CLR C;
  448.                   SUBB A,43H;
  449.                   JC DXCL;
  450.         SETB 2AH.7;
  451.         AJMP Y_CL2;

  452. DXCL:   CLR 2AH.7;8月以上2AH.7=0..

  453. Y_CL2:
  454.               JB 2AH.7,SY2; 计算是大月还是小月(31天还是30天)
  455.                    MOV A,25H;
  456.          MOV B,#02;
  457.          DIV AB;
  458.                         MOV A,B;
  459.                    JZ XY30;双月跳转
  460.                         AJMP DY31;
  461. SY2:
  462.                    MOV A,25H;
  463.          MOV B,#02;
  464.          DIV AB;
  465.                   MOV A,B;
  466.                    JZ DY31;双月跳转
  467.                    AJMP XY30;

  468.         DY31:MOV 40H,#32;有31天
  469.          AJMP SYY;
  470.        
  471.         XY30:MOV 40H,#31;30天
  472.          
  473.    
  474. SYY:JB 2CH.1,YSD;
  475.      MOV A,25H;
  476.           MOV B,#10;
  477.           DIV AB;
  478.           
  479.           MOV 38H,A;
  480.           MOV 39H,B;
  481. YSD: CLR 2AH.4;
  482.           MOV R4,#02;
  483.      MOV R0,#89H;
  484.           MOV A,39H;
  485. Y_CL1:MOV p2,R0;
  486.      ACALL ENABLE;
  487.      MOVC A,@A+DPTR;
  488.           LCALL WRITE2;
  489.           MOV A,38H;
  490.           DEC R0;
  491.           DJNZ R4,Y_CL1;

  492. RCL:JNB 2AH.3,SCL;日更新缓存?
  493.     JB 2CH.2,RSD;
  494.     MOV A,24H;
  495.          MOV B,#10;
  496.          DIV AB;
  497.     MOV 4AH,A;
  498.          MOV 4BH,B;
  499. RSD:CLR 2AH.3;
  500.          MOV R4,#02;
  501.          MOV R0,#8CH;
  502.          MOV A,4BH;
  503. RCL1:MOV p2,R0;
  504.     ACALL ENABLE;
  505.          MOVC A,@A+DPTR;
  506.          LCALL WRITE2;
  507.          MOV A,4AH;
  508.          DEC R0;
  509.          DJNZ R4,RCL1;


  510. SCL:JNB 2AH.0,FCL;时更新缓存?
  511.    JB 2CH.3,SSD;
  512.    MOV A,23H;
  513.    MOV B,#10;
  514.    DIV AB;
  515.    MOV 31H,B;
  516.    MOV 30H,A;
  517. SSD:CLR 2AH.0;
  518.         MOV R4,#02H;

  519. MOV R0,#0C5H;显示位置
  520. MOV A,31H;         
  521.        
  522. SCL1:MOV p2,R0;
  523.      ACALL ENABLE
  524.     MOVC A,@A+DPTR;
  525.         LCALL WRITE2;
  526.         MOV A,30H;
  527.         DEC R0;
  528.         DJNZ R4,SCL1;



  529. FCL:JNB 2AH.1,MCL;分更新缓存?
  530.     JB 2CH.4,FSD;
  531.     MOV A,22H;
  532.     MOV B,#10;
  533.     DIV AB;
  534.     MOV 33H,B;
  535.     MOV 32H,A;  
  536. FSD:CLR 2AH.1;
  537.     MOV A,33H;
  538.     MOV R0,#0C8H;显示位置
  539.     MOV R4,#02H;       
  540. FCL1:MOV p2,R0;
  541.      ACALL ENABLE

  542.     MOVC A,@A+DPTR;
  543.         LCALL WRITE2;
  544.         MOV A,32H;
  545.         DEC R0;
  546.         DJNZ R4,FCL1;
  547.    
  548. MCL:
  549.     JNB 2AH.2,NEXTX;秒更新缓存?
  550.     JB 2CH.5,MSD;
  551.          MOV A,21H;
  552.     MOV B,#10;
  553.     DIV AB;
  554.     MOV 35H,B;
  555.     MOV 34H,A;
  556. MSD:CLR 2AH.2;

  557.     MOV R0,#0CBH;显示位置
  558.     MOV R4,#02H;         
  559.     MOV A,35H;
  560. MCL1:MOV p2,R0;
  561.      ACALL ENABLE
  562.           
  563.     MOVC A,@A+DPTR;
  564.         LCALL WRITE2;
  565.         MOV A,34H;
  566.         DEC R0;
  567.         DJNZ R4,MCL1;

  568. NEXTX:        RET

  569. NOP
  570. NOP
  571. WRITE2:
  572.         mov p2,a
  573.         setb rs
  574.         clr rw
  575.         clr e
  576.         call delay
  577.         setb e
  578.         ret
  579. ;写指令子程序
  580. ENABLE:
  581.         CLR RS
  582.         CLR RW
  583.         CLR E
  584.         ACALL DELAY
  585.         SETB E
  586.         RET

  587. delay:  
  588.         mov r7,#25
  589. d1:        mov r6,#255
  590. d2:        djnz r6,$
  591.         djnz r7,d1
  592.         ret

  593. D20MS:  MOV R7,#25;
  594. D11:    MOV R6,#30;
  595.         DJNZ R6,$;
  596.         DJNZ R7,D11;
  597.         RET;





  598. TABLE: DB  '0123456789'
  599.         END
  600.           ;                                                                                                2006.5.18/2006.6.27修改~
复制代码



最后上照片




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-11-7 18:29:54 | 显示全部楼层
楼上的为什么不给HEX文件?

出0入0汤圆

 楼主| 发表于 2015-11-7 18:34:52 | 显示全部楼层
hyz_avr 发表于 2015-11-7 18:03
有,给你个十年前刚自学单片机时写的1602LCD电子钟程序。

牛逼,汇编啊

出0入0汤圆

发表于 2015-11-7 18:34:59 来自手机 | 显示全部楼层
楼上的为什么不按我的需求,写一个C语言版的,求把源代码改好,

出0入0汤圆

发表于 2015-11-7 18:36:47 来自手机 | 显示全部楼层
汇编看着太难了,看不懂,最好能把工程文件发出来,我一下到我的板子上就可以运行了!

出0入0汤圆

发表于 2015-11-9 07:56:31 | 显示全部楼层
就是-段 十進轉十六進制程式而已!

出0入0汤圆

发表于 2015-11-9 09:07:35 | 显示全部楼层
上面已经有人说思路了,自己想想就好.

出0入0汤圆

发表于 2015-11-9 09:39:39 来自手机 | 显示全部楼层
我觉得.提供思路已经是本坛极限了.还要帮忙改代码?又不是你家长…楼主自己考虑一下是不是适合做这样的事

出0入0汤圆

发表于 2015-11-9 13:34:07 | 显示全部楼层
伸手党……思路都说的很显著了……
那个贴汇编的哥们我觉得已经很显著要表达点代码之外的事儿了

出0入0汤圆

发表于 2015-11-9 14:00:54 | 显示全部楼层
既然你想要代码,而且要简单,呵呵

一按键,就把0x12改成0x36还不简单
if(KeyDownFlag)
{
    if(Param == 0x12)
    {
        param = 0x36;
    }
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-23 18:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表