久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8994|回復(fù): 29
打印 上一主題 下一主題
收起左側(cè)

[原創(chuàng)]農(nóng)歷轉(zhuǎn)換程序模塊,c51和a51文件均可調(diào)用,有c51調(diào)用示范,匯編...

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:7485 發(fā)表于 2013-5-9 12:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
農(nóng)歷轉(zhuǎn)換程序模塊,c51和a51文件均可調(diào)用,有c51調(diào)用示范,匯編程序
可以屏蔽閏月的“節(jié)日”,可以辨別臘月小月29日的除夕。
農(nóng)歷天干、地支紀(jì)年,有生肖。
新建工程,然后直接將兩個(gè)文件(其中nongli.c是示范文件)加入源代碼組即可。

單片機(jī)源程序如下:
  1. //此文件經(jīng)2013.04.14 00:00調(diào)試正常,可以通過c程序調(diào)用,
  2. //輸入: 變量 YEAR,MONTH,DATE(年、月、日,16進(jìn)制碼)
  3. //輸出:位變量CHUXI(臘月29或30除夕標(biāo)志),=0是小月,臘月29日是除夕。
  4. //輸出:位變量FLAG_Y(閏月標(biāo)志,判農(nóng)歷節(jié)日用)FLAG_Y=0,是后月,后月無節(jié)日
  5. //輸出: TIANGAN,DIZHI(天干、地支、生肖)
  6. //輸出: NO_YEAR,NO_MONTH,NO_DATE(農(nóng)歷年、月、日),(16進(jìn)制碼)
  7. //      FLAG_Y,閏月標(biāo)志,CHUXI,臘月小時(shí),臘月29是除夕標(biāo)志,
  8. //      以上變量和子程序名均為大寫,c51引用時(shí)應(yīng)注意。
  9. ;**************************************************************
  10. ;轉(zhuǎn)換農(nóng)歷子程序
  11. ;把已計(jì)算出的當(dāng)年已過天數(shù),從元旦對應(yīng)的農(nóng)歷日期開始,減去29
  12. ;天,再減去大小月標(biāo)志,如夠減,[判斷現(xiàn)存的農(nóng)歷月和當(dāng)年的閏月
  13. ;是否相等,如相等就減1(下面加1,保持不變)],月數(shù)加1,
  14. ;再一次循環(huán),直到不夠減,余數(shù)做日,退出子程序(本次轉(zhuǎn)換結(jié)束)
  15. ;*******************************************************
  16. PUBLIC  YEAR, MONTH,DATE                          //外部可以調(diào)用的變量(公共的)輸入的
  17. PUBLIC  NO_YEAR,NO_MONTH,NO_DATE,TIANGAN,DIZHI    //外部可以調(diào)用的變量(公共的)輸出的
  18. PUBLIC   CHUXI,FLAG_Y                             //外部可以調(diào)用的位變量(公共的)輸出的
  19. PUBLIC  ZHUAN_H                                   //外部可以調(diào)用的子程序(公共的)
  20. ZH_RAM  SEGMENT DATA      ;定義一個(gè)段名,ZH_RAM是段名,在data區(qū)間,這種格式是讓編譯器統(tǒng)一安排內(nèi)存使用
  21.                           ;作為定義變量的空間段
  22. ZH_ROM    SEGMENT CODE    ;定義一個(gè)段名,KEYP是段名, 在CODE區(qū)間,作為本程序的存儲(chǔ)空間
  23. //ZH_BIAO    SEGMENT BDATA
  24. RSEG    ZH_RAM            ;定義ZH_RAM段的使用
  25.             YEAR:               DS    1        //在編譯連接整個(gè)工程時(shí),給以下各變量保留一個(gè)字節(jié)的DATA空間
  26.             MONTH:              DS    1
  27.             DATE:               DS    1
  28.             NO_YEAR:            DS    1
  29.             NO_MONTH:           DS    1
  30.             NO_DATE:            DS    1
  31.             NO_MONTH_R:         DS    1             ;閏月
  32.             TIANGAN:            DS    1
  33.             DIZHI:              DS    1
  34. BSEG        AT  00H                                  ;定義位地址,下面的位地址從 00H開始(指定絕對地址,也可以不指定)
  35.             RUNYUEBIT:          DBIT  1              ;農(nóng)歷閏月標(biāo)志
  36.             CHUXI:              DBIT   RUNYUEBIT+1   ;定義除夕標(biāo)志,區(qū)分臘月大小月
  37.             BZ_RUN_NIAN:        DBIT   RUNYUEBIT+2   ;定義閏年標(biāo)志
  38.             FLAG_Y:             DBIT   RUNYUEBIT+3   ;閏月標(biāo)志,寫農(nóng)歷節(jié)日用(閏月無節(jié)日)
  39. RSEG  ZH_ROM                    //以下的代碼使用ZH_ROM段
  40. ZHUAN_H:
  41.             PUSH     ACC   
  42.             PUSH     DPH
  43.             PUSH     DPL
  44.             PUSH     03H
  45.             PUSH     04H
  46.             PUSH     05H
  47.             PUSH     06H
  48.             PUSH     07H
  49. /*           mov  sbuf, year           ;發(fā)送到電腦一個(gè)字節(jié),供調(diào)試使用
  50.              jnb   ti,   $
  51.              clr  ti              */
  52.             CLR    RUNYUEBIT           ;清除標(biāo)記位,待處理閏月時(shí)用
  53.             CALL   TIANSHU             ;調(diào)用計(jì)算天數(shù)子程序
  54.             CALL   ZUZHUANG            ;調(diào)用讀表子程序
  55.             MOV    A,   #4             ;讀第4字節(jié),是元旦對應(yīng)的農(nóng)歷月日
  56.             CALL   DU_NO_SHU           ;讀取的數(shù)據(jù)在A,元旦對應(yīng)的農(nóng)歷月日
  57.             MOV    B,    A             ;先保護(hù)起來讀取的數(shù)據(jù)
  58.             ANL    A,   #00011111B     ;屏蔽掉高3位,只取元旦對應(yīng)的農(nóng)歷日
  59.             MOV    NO_DATE,  A         ;存入農(nóng)歷日暫存器
  60.             MOV    A,   B              ;取回?cái)?shù)據(jù)
  61.             ANL    A,   #10000000B     ;只取元旦農(nóng)歷月份值,A=00H是11月,A=80H,是臘月,僅此可能
  62.             JZ     ZHUAN_H_0           ;A=00H是11月,A=80H,是臘月
  63.             MOV    NO_MONTH,   #12     ;A=1,就是臘月12月
  64.             CALL   ZOYI                ;是臘月,左移,表中第一個(gè)月是11月,變成臘月
  65.             JMP    ZHUAN_H_6
  66. ;以上是讀出元旦對應(yīng)的農(nóng)歷的月日,寫入對應(yīng)單元。調(diào)整對應(yīng)農(nóng)歷月大小標(biāo)志到最左邊一位
  67. ZHUAN_H_0:  MOV    NO_MONTH,   #11     ;否則就是11月(春節(jié)元旦間只能是11、12月)
  68. ZHUAN_H_6:  MOV    NO_YEAR,   YEAR
  69.             DEC    NO_YEAR
  70.             MOV    A,    R3            ;取出已過天數(shù)的低位
  71.             MOV    NO_MONTH_R,NO_MONTH ;另存,備農(nóng)歷紀(jì)念日用(閏月標(biāo)記為0)
  72.             ADD    A,    NO_DATE       ;從元旦對應(yīng)農(nóng)歷月的月初算起(以便后面計(jì)算)
  73.             MOV    R3,   A             ;低位送回R3
  74.             MOV    A,    R4            ;加上低位,相加后可能的進(jìn)位
  75.             ADDC   A,    #0            ;加上可能有的進(jìn)位
  76.             MOV    R4,   A             ;高位送回R4
  77. ZHUAN_H_3:  
  78.             MOV    NO_DATE,  R3        ;先暫存,如下面不夠減的,這就是農(nóng)歷日期         
  79.             CALL   RUNYUE              ;判斷下一個(gè)月是否是閏月,并作處理
  80.             CALL   JIAN                ;減去一個(gè)月的天數(shù)(子程序)
  81.             JNZ    ZHUAN_H_4           ;剛好夠減A=0,否則跳過下面一行
  82.             MOV    A,   R4
  83.             JNZ    ZHUAN_H_4   
  84.             JMP    ZHUAN_H_2           ;跳出
  85. ZHUAN_H_4:  
  86.             JC     ZHUAN_H_2           ;不夠減的,有借位C=1,跳轉(zhuǎn),退出
  87. ZHUAN_H_1:  
  88.             INC    NO_MONTH            ;月份加1,是否閏月都到這來,加1
  89.             MOV    A, NO_MONTH         ;是不是到了臘月?是臘月再加1,就是1月
  90.             CJNE   A,  #13, ZHUAN_H_5  ;12月再加1,就是13,轉(zhuǎn)為1月
  91.             MOV    NO_MONTH,  #1       ;農(nóng)歷月進(jìn)位,變?yōu)?月,農(nóng)歷年加1
  92.             INC    NO_YEAR
  93. ZHUAN_H_5:  
  94.             MOV    NO_MONTH_R,NO_MONTH ;調(diào)整以后拷貝到NO_MONTH_R
  95.             JMP    ZHUAN_H_3           ;轉(zhuǎn)回,進(jìn)行下一輪減法
  96. ZHUAN_H_2:                             ;如果天數(shù)沒有夠減,從這轉(zhuǎn)出
  97.             CALL     GAN_ZHI
  98.             POP      07H
  99.             POP      06H
  100.             POP      05H
  101.             POP      04H
  102.             POP      03H
  103.             POP      DPL
  104.             POP      DPH
  105.             POP      ACC
  106.             RET          ;
  107. ;**************************************************
  108. ;當(dāng)前日距離元旦天數(shù)計(jì)算子程序(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)
  109. ;出口:高位在R4,低位在R3
  110. ;**************************************************
  111. TIANSHU:
  112.             PUSH     ACC
  113.             PUSH     DPH
  114.             PUSH     DPL
  115.             MOV   DPTR,  #TAB_MONTH    ;當(dāng)前月止,累計(jì)整月天數(shù)表
  116.             MOV   A,     MONTH         ;當(dāng)前公歷月份
  117.             CLR   C
  118.             RLC   A                    ;表中,每月高、低位占2字節(jié),所以乘2
  119.             MOV   B,     A             ;保存ACC中的值
  120.             MOVC  A,     @A+DPTR       ;查表,求日期的低位字節(jié)
  121.             ADD   A,     DATE          ;加上當(dāng)前日期,可能會(huì)有進(jìn)位
  122.             DEC   A                    ;因后面的程序要加上元旦所對應(yīng)農(nóng)歷日前面的天數(shù)
  123.                                        ;比如當(dāng)日17,需要加16,先減1,在這里減比較方便
  124.             MOV   R3,    A             ;暫時(shí)保存到R3
  125.             INC   DPTR                 ;讀高位字節(jié)
  126.             MOV   A,     B             ;取出ACC中的值,使用
  127.             MOVC  A,     @A+DPTR       ;查表,整月天數(shù)高位字節(jié)
  128.             ADDC  A,     #0            ;加上低位字節(jié)可能的進(jìn)位(如果有C=1,否C=0)
  129.             MOV   R4,    A             ;R4存放高位字節(jié)
  130.             MOV   A,     MONTH         ;再取當(dāng)前月份
  131.             CJNE  A,  #3,TIANSHU_0     ;月份是否大于3月份,如果是3月份以后需區(qū)別閏月
  132. TIANSHU_0:  JC   TIANSHU_1             ;若A<3,C=1,A>=3,C=0,若C=1則跳轉(zhuǎn),1、2月不加閏     ;
  133.             MOV   A,     R3            ;取回當(dāng)前已過天數(shù)         ;
  134.             MOV   C,     BZ_RUN_NIAN   ;大于3月加上閏年(等于1,或等于0)
  135.             ADDC  A,     #0            ;加上C中閏年的天數(shù),是閏年RUN=1,否RUN=0,另加1天?
  136.             MOV   R3,    A             ;
  137.             MOV   A,     R4            ;加閏月以后,是否有進(jìn)位?
  138.             ADDC  A,     #0            ;加上進(jìn)位
  139.             MOV   R4,    A             ;存回,已過天數(shù)的高位在R4,
  140. TIANSHU_1:;  POP      PSW               ;當(dāng)前日止,累計(jì)天數(shù)計(jì)算完成
  141.             POP      DPL
  142.             POP      DPH
  143.             POP      ACC
  144.             RET                        ;
  145. ;************************************************************************
  146. ;閏月處理子程序。(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)農(nóng)歷數(shù)據(jù)表中第3字節(jié)是閏月信息,
  147. ;                最高位是閏月月份的大小,低4位是月份
  148. ;功能:1、判斷當(dāng)前月是不是閏月。
  149. ;      2、是閏月在R6、R5最左面一位塞入閏月的大小標(biāo)志。以后的月份大小標(biāo)志順序后推
  150. ;      3、月份減1,因?yàn)楹竺娉绦虬凑T录?,所以保持月份不加
  151. ;      4、閏月處理過后,做上標(biāo)記,下一循環(huán)時(shí),閏月已過去,按正常月
  152. ;************************************************************************
  153. RUNYUE:
  154.             PUSH     ACC
  155.             PUSH     B
  156.             MOV    C,   RUNYUEBIT      ;RUNYUEBIT是標(biāo)記(20H.6),=1處理過
  157.             JC     RUNYUE_E            ;閏月是否處理過了(C=1),處理過,退出
  158.             MOV    A,   #3             ;判斷是否是閏月,第3字節(jié)是閏月數(shù)據(jù)
  159.             CALL   DU_NO_SHU           ;調(diào)讀數(shù)子程序
  160.             MOV    B,   A              ;保存待用
  161.             ANL    A,   #0FH           ;將讀到的數(shù)據(jù)屏蔽高4位(低4位是閏月月份)
  162.             JZ     RUNYUE_E
  163.             INC    A                   ;閏月月份加上1,如:閏四月,是第個(gè)五月
  164.             CLR    FLAG_Y              ;清除閏月標(biāo)志,根據(jù)下面一句重新設(shè)置
  165.             CJNE   A,  NO_MONTH,RUNYUE_E;判斷當(dāng)前月和閏月等否? 不等,跳出
  166.             SETB   FLAG_Y
  167.             MOV    A,   B              ;送回第三字節(jié)的值
  168.             RLC    A                   ;閏月大小標(biāo)志移到C
  169.             MOV    A,   R6             ;前半年的大小月標(biāo)志
  170.             RRC    A                   ;閏月大小標(biāo)志插入R6最高位(即將處理月的位置)
  171.             MOV    R6,  A              ;
  172.             MOV    A,   R5             ;
  173.             RRC    A                   ;每個(gè)月的標(biāo)志全部往后退一位
  174.             MOV    R5,  A
  175.             DEC    NO_MONTH            ;月份數(shù)減1,和上一次的月份值一樣
  176.             MOV    NO_MONTH_R,#0       ;把閏月標(biāo)記為0,閏月的紀(jì)念日無效
  177.             SETB   RUNYUEBIT           ;閏年已經(jīng)處理過,做上標(biāo)記
  178. RUNYUE_E:
  179.             POP      B
  180.             POP      ACC
  181.             RET
  182. ;***************************************************************
  183. ;左轉(zhuǎn)移子程序,(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)
  184. ;每次把當(dāng)月的大小值左移到C,參與農(nóng)歷日期轉(zhuǎn)換運(yùn)算
  185. ;***************************************************************
  186. ZOYI:
  187.             PUSH   ACC
  188.             MOV    A,   R5             ;R5是后半年的月份大小值
  189.             RLC    A                   ;
  190.             MOV    R5,   A             ;左轉(zhuǎn)以后存回
  191.             MOV    A,    R6            ;R6中存放的是前半年月份大小值
  192.             RLC    A                   ;R6轉(zhuǎn)出到C的數(shù)據(jù)參與轉(zhuǎn)移
  193.             MOV    R6,   A             ;存回。
  194.             POP    ACC
  195.             RET
  196. ;****************************************************************
  197. ;已過天數(shù),減農(nóng)歷一個(gè)月的天數(shù)子程序。(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)
  198. ;當(dāng)年已過天數(shù)減29減大小月標(biāo)志
  199. ;入口:低位數(shù)在R3,高位數(shù)在R4,
  200. ;出口:低位數(shù)在R3,高位數(shù)在R4
  201. ;****************************************************************
  202. JIAN:  
  203.             CALL   ZOYI                ;把當(dāng)前月的大小標(biāo)志左移到C
  204.             MOV    A,    R3            ;取已過天數(shù)的低位
  205.             SUBB   A,    #29           ;減去基本天數(shù)(小月29天,大月再減1)
  206.             MOV    R3,   A             ;送回
  207.             MOV    A,    R4
  208.             SUBB   A,    #0            ;減去C中可能有的借位
  209.             MOV    R4,   A             ;送回
  210.             MOV    A,    R3            ;
  211.             RET
  212. ;**********************************************************
  213. ;(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)
  214. ;讀表子程序是把農(nóng)歷數(shù)據(jù)表第一個(gè)字節(jié),放到R5中,7~2位表示7.8.9.10.11.12月
  215. ;第二字節(jié),7~0位表示:上年11.12.當(dāng)年1.2.3.4.5.6月,讀出后,放入R6
  216. ;(本來該子程序是將分散在多個(gè)字節(jié)中的信息合并,后來改變,沒有取消)
  217. ;**********************************************************
  218. ZUZHUANG:                 
  219.             MOV      A,   #1           ;讀第1字節(jié)11.12.1.2.3.4.5.6月,返回在A
  220.             CALL     DU_NO_SHU         ;讀數(shù)子程序
  221.             MOV      R6,   A           ;R6中存放11.12.1.2.3.4.5.6月大小值
  222.             MOV      C,  ACC.6         ;這個(gè)字節(jié)在后面紀(jì)念日確定除夕是否30時(shí)候用,暫存
  223.             MOV      CHUXI, C          ;CHUXI是臘月的大小標(biāo)志,1為大月,除夕為30日
  224.             MOV      A,    #2          ;讀第2字節(jié)
  225.             CALL     DU_NO_SHU         ;讀數(shù)子程序
  226.             MOV      R5,   A           ;7.8.9.10.11.12月大小值存入R5
  227.             RET
  228. ;*****************************************************
  229. ;讀取農(nóng)歷數(shù)據(jù)表的子程序(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)
  230. ;入口:欲讀取的字節(jié)序號(hào)(1~4)在A,當(dāng)前年份仍然在YEAR
  231. ;出口:讀取到的數(shù)據(jù)在A
  232. ;*****************************************************
  233. DU_NO_SHU:
  234.             MOV     R7,   A            ;保存A中的字節(jié)號(hào)
  235.             MOV     DPTR, #TAB_NO_SHU  ;數(shù)據(jù)表首送DPTR
  236.             MOV     A,    YEAR         ;年送A
  237. //-------------------------------------------------------------
  238.             CLR     BZ_RUN_NIAN
  239.             JB      ACC.0,  HHHHHH     ;如果YEAR的低2位為0,是閏年
  240.             JB      ACC.1,  HHHHHH     ;
  241.             SETB    BZ_RUN_NIAN        ;設(shè)置閏年標(biāo)志
  242. //-------------------------------------------------------------
  243.        HHHHHH:
  244.             CLR     C                  ;求出行數(shù)
  245.             MOV     B,    #4         ;年份乘4(左轉(zhuǎn)2次=乘4)
  246.             MUL     AB               ;因?yàn)槊磕?個(gè)字節(jié)數(shù)據(jù)
  247.             ADD     A,   DPL           ;偏移字節(jié)數(shù)和DPTR低位相加
  248.             MOV     DPL, A             ;送回
  249.             MOV     A,   B             ;如果僅僅是2010~2030,可以簡化        
  250.             ADDC    A,   DPH           ;低位可能有進(jìn)位,所以加
  251.             MOV     DPH, A             ;*****最后修正2009.12.22.22:58
  252.             MOV     A,   R7            ;R7中是入口參數(shù),字節(jié)號(hào)
  253.             MOVC    A,   @A+DPTR
  254.             RET
  255. ;***************************************************************
  256. ;計(jì)算農(nóng)歷紀(jì)年"干支"子程序(農(nóng)歷轉(zhuǎn)換二級(jí)子程序)
  257. ;***************************************************************
  258. GAN_ZHI:
  259.             PUSH  ACC
  260.             MOV   A,  NO_YEAR
  261.             CLR   C
  262.             SUBB  A,  #4               ;2004年是甲申年,設(shè)"甲"為"0",4=2004年
  263.             MOV   B,  #10              ;除以10,取余數(shù)
  264.             DIV   AB
  265.             MOV   TIANGAN,  B          ;送"天干""TIANGAN"寄存
  266.       
  267.             MOV   A,  NO_YEAR
  268.             SUBB  A,  #8               ;2008年是戊子年,子為"0"
  269.             MOV   B,  #12              ;除以12,取余數(shù)
  270.             DIV   AB
  271.             MOV   DIZHI,  B            ;送"地支""DIZHI"寄存
  272.             POP   ACC
  273.             RET
  274. ;************************************************************
  275. TAB_MONTH:
  276.           DB   0,0,0,0,31,0,59,0,90,0,120,0,151       ;每月初止天數(shù),低位在前,高位在后
  277.                         DB   0,181,0,212,0,243,0,17,1,48,1,78,1
  278. ;******************************************************
  279. ;*******************************************************
  280. TAB_NO_SHU:         
  281.                                DB  00      ;機(jī)器是從0開始,我們習(xí)慣從1開始
  282.                                DB                        0B2H,        058H,        000H,        019H                ;2000
  283.                                DB                        0B6H,        054H,        004H,        087H                ;2001
  284.                                DB                        075H,        028H,        000H,        012H                ;2002
  285.                                DB                        0B6H,        094H,        000H,        01DH                ;2003
  286.                                DB                        05DH,        054H,        002H,        08AH                ;2004
  287.                                DB                        055H,        0A8H,        000H,        015H                ;2005
  288.                                DB                        0AAH,        0ECH,        007H,        082H                ;2006
  289.                                DB                        0C9H,        074H,        000H,        00DH                ;2007
  290.                                DB                        064H,        0B4H,        000H,        017H                ;2008
  291.                                DB                        072H,        0ACH,        005H,        086H                ;2009
  292.                                DB                        0EAH,        054H,        000H,        011H                ;2010
  293.                                DB                        06DH,        028H,        000H,        01BH                ;2011
  294.                                DB                        0AEH,        0A8H,        004H,        088H                ;2012(原數(shù)據(jù)表第一字節(jié)是0BAH,錯(cuò)的)
  295.                                DB                        0ABH,        054H,        000H,        014H                ;2013
  296.                                DB                        055H,        074H,        009H,        081H                ;2014
  297.                                DB                        052H,        0E8H,        000H,        00BH                ;2015
  298.                                DB                        0A9H,        06CH,        000H,        016H                ;2016
  299.                                DB                        0D4H,        05CH,        086H,        084H                ;2017
  300.                                DB                        0D4H,        0ACH,        000H,        00FH                ;2018
  301.                                DB                        0EAH,        04CH,        000H,        01AH                ;2019
  302.                                DB                        0DEH,        054H,        004H,        087H                ;2020
  303.                                DB                        05AH,        0A8H,        000H,        012H                ;2021
  304.                                DB                        0ABH,        054H,        000H,        01DH                ;2022
  305.                                DB                        056H,        0D4H,        002H,        08AH                ;2023
  306.                                DB                        052H,        0D8H,        000H,        014H                ;2024
  307.                                DB                        0A9H,        0B8H,        006H,        082H                ;2025
  308.                                DB                        0A9H,        038H,        000H,        00DH                ;2026
  309.                                DB                        0B4H,        098H,        000H,        018H                ;2027
  310.                                DB                        0BAH,        098H,        005H,        085H                ;2028
  311.                                DB                        0B5H,        04CH,        000H,        011H                ;2029
  312.                                DB                        0D6H,        0A8H,        000H,        01CH                ;2030
  313.                                DB                        09DH,        0A8H,        003H,        088H                ;2031
  314.                                DB                        0A5H,        0B4H,        000H,        013H                ;2032
  315.                                DB                        052H,        0F4H,        007H,        081H                ;2033
  316.                                DB                        052H,        0B4H,        000H,        00BH                ;2034
  317.                                DB                        069H,        034H,        000H,        016H                ;2035
  318.                                DB                        074H,        02CH,        086H,        084H                ;2036
  319.                                DB                        0F4H,        094H,        000H,        010H                ;2037
  320.                                DB                        075H,        048H,        000H,        01AH                ;2038
  321.                                DB                        0B7H,        050H,        005H,        087H                ;2039
  322.                                DB                        02DH,        068H,        000H,        011H                ;2040
  323.                                DB                        095H,        0B4H,        000H,        01DH                ;2041
  324.                                DB                        055H,        06CH,        002H,        08AH                ;2042
  325.                                DB                        0D2H,        06CH,        000H,        015H                ;2043
  326.                                DB                        0E9H,        05CH,        007H,        082H                ;2044
  327.                                DB                        0E9H,        02CH,        000H,        00EH                ;2045
  328.                                DB                        0EAH,        094H,        000H,        019H                ;2046
  329.                                DB                        06CH,        094H,        085H,        086H                ;2047
  330.                                DB                        05BH,        048H,        000H,        010H                ;2048
  331.                                DB                        0ABH,        068H,        000H,        01CH                ;2049
  332.                                DB                        092H,        0D8H,        083H,        088H                ;2050
  333.                                DB                        0A4H,        0DCH,        000H,        013H                ;2051
  334.                                DB                        0D2H,        07CH,        008H,        01EH                ;2052
  335.                                DB                        0D2H,        05CH,        000H,        00CH                ;2053
  336.                                DB                        0D9H,        02CH,        000H,        017H                ;2054
  337.                                DB                        0DAH,        028H,        086H,        084H                ;2055
  338.                                DB                        0BAH,        094H,        000H,        00FH                ;2056
  339.                                DB                        05AH,        0C8H,        000H,        01AH                ;2057
  340.                                DB                        0A9H,        0B0H,        084H,        087H                ;2058
  341.                                DB                        02AH,        0B8H,        000H,        011H                ;2059
  342.                                DB                        0A4H,        0B8H,        000H,        01CH                ;2060
  343.                                DB                        0B4H,        0B8H,        003H,        08AH                ;2061
  344.                                DB                        0B2H,        058H,        000H,        015H                ;2062
  345.                                DB                        0B5H,        054H,        007H,        082H                ;2063
  346.                                DB                        075H,        028H,        000H,        00DH                ;2064
  347.                                DB                        0B6H,        094H,        000H,        019H                ;2065
  348.                                DB                        057H,        054H,        005H,        086H                ;2066
  349.                                DB                        055H,        0A8H,        000H,        010H                ;2067
  350.                                DB                        0A9H,        0B4H,        000H,        01BH                ;2068
  351.                                DB                        055H,        074H,        004H,        089H                ;2069
  352.                                DB                        054H,        0B4H,        000H,        013H                ;2070
  353.                                DB                        06AH,        06CH,        008H,        081H                ;2071
  354.                                DB                        0EAH,        054H,        000H,        00CH                ;2072
  355.                                DB                        06DH,        028H,        000H,        017H                ;2073
  356.                                DB                        0ADH,        0A8H,        006H,        084H                ;2074
  357.                                DB                        0ABH,        054H,        000H,        00FH                ;2075
  358.                                DB                        055H,        068H,        000H,        019H                ;2076
  359.                                DB                        0AAH,        0E8H,        004H,        087H                ;2077
  360.                                DB                        0A9H,        06CH,        000H,        012H                ;2078
  361.                                DB                        0D4H,        0ACH,        000H,        01DH                ;2079
  362.                                DB                        0ECH,        09CH,        003H,        08AH                ;2080
  363.                                DB                        0DAH,        04CH,        000H,        016H                ;2081
  364.                                DB                        0DCH,        0CCH,        007H,        083H                ;2082
  365.                                DB                        0DAH,        0A8H,        000H,        00EH                ;2083
  366.                                DB                        0ABH,        054H,        000H,        018H                ;2084
  367.                                DB                        052H,        0D4H,        085H,        086H                ;2085
  368.                                DB                        052H,        0D8H,        000H,        010H                ;2086
  369.                                DB                        0A9H,        05CH,        000H,        01BH                ;2087
  370.                                DB                        0D5H,        038H,        004H,        088H                ;2088
  371.                                DB                        0B4H,        098H,        000H,        014H                ;2089
  372.                                DB                        0BAH,        058H,        008H,        081H                ;2090
  373.                                DB                        0B5H,        048H,        000H,        00CH                ;2091
  374.                                DB                        0B6H,        0A8H,        000H,        017H                ;2092
  375.                                DB                        09AH,        0A8H,        086H,        084H                ;2093
  376.                                DB                        095H,        0B4H,        000H,        00FH                ;2094
  377.                                DB                        052H,        0B8H,        000H,        019H                ;2095
  378.                                DB                        0AAH,        074H,        004H,        086H                ;2096
  379.                                DB                        069H,        034H,        000H,        012H                ;2097
  380.                                DB                        074H,        054H,        000H,        01DH                ;2098
  381.                                DB                        07CH,        094H,        002H,        08BH                ;2099
  382.                                DB                        075H,        04CH,        000H,        015H                ;2100
  383. ;*********************************************************************
  384. END
  385. /*
  386. //以下是c51調(diào)用匯編語言"農(nóng)歷轉(zhuǎn)換.asm"文件示范,需要另建立一個(gè).c文件
  387. extern unsigned char data year,month,date;
  388. extern void zhuan_h(void);
  389. extern bit flag_y,chuxi; //農(nóng)歷閏月標(biāo)志,F(xiàn)LAG_Y=1,是前月,F(xiàn)LAG_Y=0,是后月,就是閏月,閏月無節(jié)日
  390.                          //chuxi是臘月大小月的標(biāo)志。=0是小月,臘月29日是除夕。
  391. extern NO_YEAR,NO_MONTH,NO_DATE,TIANGAN,DIZHI;
  392. void main(void)
  393.    {
  394.      unsigned char year_1,month_1,date_1;
  395. //     year=0x0d;          //年、月、日可以是時(shí)鐘芯片讀出的值,如果是壓縮BCD碼,需要先轉(zhuǎn)換,此處為模擬
  396. //     month=0x05;         //如果是ds12887等,可以設(shè)定讀出的位hex碼,不需要轉(zhuǎn)換。
  397. //     date=0x09;
  398. //如果是ds1302讀出的值,是壓縮BCD碼,如:year_1=0x13(2013年)month_1=0x05,daye_1=0x09,需要如下轉(zhuǎn)換:
  399.      year_1=0x13;            //年、月、日若是ds1302時(shí)鐘芯片讀出的值,是壓縮BCD碼,需要先轉(zhuǎn)換,此處為模擬
  400.      month_1=0x05;
  401.      date_1=0x09;      
  402.      year=year_1/16*10+year_1%16;
  403.      month=month_1/16*10+month_1%16;
  404.      date=date_1/16*10+date_1%16;     
  405.      zhuan_h();
  406.     while(1);               //無限循環(huán),模擬主程序,
  407.    }

  408. */
復(fù)制代碼

以上程序51hei提供下載:
匯編程序.7z (5.5 KB, 下載次數(shù): 54)


評(píng)分

參與人數(shù) 1威望 +5 黑幣 +5 收起 理由
wangyin + 5 + 5 正好需要,對我很有用,謝謝樓主的無私奉獻(xiàn)

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:7485 發(fā)表于 2013-6-27 14:12 | 只看該作者
liujia 發(fā)表于 2013-5-23 06:54
nongli.c  這個(gè)文件怎么找不到啊?

就是帖子里直接看到的那個(gè)程序內(nèi)容。
//以下是c51調(diào)用匯編語言"農(nóng)歷轉(zhuǎn)換.asm"文件示范.c文件
extern unsigned char data year,month,date;
extern void zhuan_h(void);
extern bit flag_y,chuxi; //農(nóng)歷閏月標(biāo)志,F(xiàn)LAG_Y=1,是前月,F(xiàn)LAG_Y=0,是后月,就是閏月,閏月無節(jié)日
                         //chuxi是臘月大小月的標(biāo)志。=0是小月,臘月29日是除夕。
extern NO_YEAR,NO_MONTH,NO_DATE,TIANGAN,DIZHI;
void main(void)
   {
//     unsigned char year_1,month_1,date_1;
     year=0x0d;          //年、月、日可以是時(shí)鐘芯片讀出的值,如果是壓縮BCD碼,需要先轉(zhuǎn)換,此處為模擬
     month=0x05;         //如果是ds12887等,可以設(shè)定讀出的位hex碼,不需要轉(zhuǎn)換。
     date=0x09;
//如果是ds1302讀出的值,是壓縮BCD碼,如:year_1=0x13(2013年)month_1=0x05,daye_1=0x09,需要如下轉(zhuǎn)換:
//     year_1=0x13;            //年、月、日若是ds1302時(shí)鐘芯片讀出的值,是壓縮BCD碼,需要先轉(zhuǎn)換,此處為模擬
//     month_1=0x05;
//     date_1=0x09;      
//     year=year_1/16*10+year_1%16;
//     month=month_1/16*10+month_1%16;
//     date=date_1/16*10+date_1%16;     
     zhuan_h();
    while(1);               //無限循環(huán),模擬主程序,
   }
回復(fù)

使用道具 舉報(bào)

板凳
ID:7485 發(fā)表于 2013-5-9 12:38 | 只看該作者
怎么出來一個(gè)“扣除金錢數(shù)”30??怎么去不掉?
回復(fù)

使用道具 舉報(bào)

地板
ID:25820 發(fā)表于 2013-5-23 06:53 | 只看該作者
終于在本論壇找到我想要的東西了
回復(fù)

使用道具 舉報(bào)

5#
ID:25820 發(fā)表于 2013-5-23 06:54 | 只看該作者
nongli.c  這個(gè)文件怎么找不到啊?
回復(fù)

使用道具 舉報(bào)

6#
ID:50527 發(fā)表于 2013-5-24 11:15 | 只看該作者
找了很久,謝了
回復(fù)

使用道具 舉報(bào)

7#
ID:60546 發(fā)表于 2014-4-11 00:02 | 只看該作者
今天無意中來到這里,這個(gè)論壇真好。
回復(fù)

使用道具 舉報(bào)

8#
ID:63692 發(fā)表于 2014-7-7 10:00 | 只看該作者
這個(gè)論壇真好,學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

9#
ID:21524 發(fā)表于 2014-7-12 22:32 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

10#
ID:67678 發(fā)表于 2014-11-15 21:14 | 只看該作者
謝謝樓主好資料
回復(fù)

使用道具 舉報(bào)

11#
ID:63831 發(fā)表于 2014-11-17 09:23 | 只看該作者
學(xué)習(xí)哈!!!
回復(fù)

使用道具 舉報(bào)

12#
ID:94112 發(fā)表于 2015-10-30 16:51 | 只看該作者
找了很久,參考一下
回復(fù)

使用道具 舉報(bào)

13#
ID:98220 發(fā)表于 2015-12-3 21:05 | 只看該作者
不錯(cuò)!!!!~看看
回復(fù)

使用道具 舉報(bào)

14#
ID:91262 發(fā)表于 2016-4-9 14:40 來自手機(jī) | 只看該作者
很有用的材料,找了很久
回復(fù)

使用道具 舉報(bào)

15#
ID:111188 發(fā)表于 2016-4-9 23:49 | 只看該作者
看看學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

16#
ID:112865 發(fā)表于 2016-4-12 09:00 來自手機(jī) | 只看該作者
感謝樓主
回復(fù)

使用道具 舉報(bào)

17#
ID:112053 發(fā)表于 2016-5-8 17:25 | 只看該作者
挺好的,拿來學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

18#
ID:153912 發(fā)表于 2016-12-11 16:19 | 只看該作者
終于有匯編的了
回復(fù)

使用道具 舉報(bào)

19#
ID:190602 發(fā)表于 2017-4-17 21:01 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報(bào)

20#
ID:77498 發(fā)表于 2017-5-1 08:06 | 只看該作者
謝謝樓主好資料
回復(fù)

使用道具 舉報(bào)

21#
ID:216269 發(fā)表于 2017-7-7 15:24 | 只看該作者
今天無意中來到這里,這個(gè)論壇真好。
回復(fù)

使用道具 舉報(bào)

22#
ID:205887 發(fā)表于 2017-7-8 10:29 | 只看該作者
好東西一定要頂一下
回復(fù)

使用道具 舉報(bào)

23#
ID:373976 發(fā)表于 2018-7-31 18:01 | 只看該作者
看看算法是不是與眾不同?
回復(fù)

使用道具 舉報(bào)

24#
ID:373976 發(fā)表于 2018-7-31 18:03 | 只看該作者
竟然說我非法入侵?莫名其妙。
回復(fù)

使用道具 舉報(bào)

25#
ID:88727 發(fā)表于 2018-8-1 11:33 | 只看該作者

謝謝樓主
回復(fù)

使用道具 舉報(bào)

26#
ID:205015 發(fā)表于 2019-4-9 14:32 | 只看該作者
需要,感謝分享。
回復(fù)

使用道具 舉報(bào)

27#
ID:389903 發(fā)表于 2019-9-20 09:17 | 只看該作者
謝謝分享。下載回來學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

28#
ID:623087 發(fā)表于 2019-10-21 23:19 | 只看該作者
太及時(shí)了,正好用到
回復(fù)

使用道具 舉報(bào)

29#
ID:699879 發(fā)表于 2020-3-31 17:33 | 只看該作者
正好能用的上,試試看。
回復(fù)

使用道具 舉報(bào)

30#
ID:572101 發(fā)表于 2020-4-7 15:26 | 只看該作者
終于找到我需要的了
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www.中文字幕av | 日批免费看 | 欧美性生活一区二区三区 | 99色综合 | 国产一区二区三区免费 | 欧美亚洲高清 | 黄色一级视频免费 | 精品国产免费人成在线观看 | av首页在线 | 国产亚洲高清视频 | 99亚洲精品 | 国产精品视频一区二区三区 | 国产一区二区电影 | 久草www | 国产露脸国语对白在线 | 超碰av在线 | av高清| 国产午夜精品一区二区三区在线观看 | 视频一二三区 | 亚洲高清免费观看 | 不卡一区二区三区四区 | 请别相信他免费喜剧电影在线观看 | 九九av | 中文字幕国产第一页 | 久久久久久久久久久高潮一区二区 | 欧美日韩在线不卡 | 亚洲视频区 | 欧美一区二区三区视频在线观看 | 欧美日韩亚洲在线 | 国产精品一区在线观看 | 国产一区二区在线免费观看 | 久久久久久久久久久一区二区 | 在线免费观看色 | 一区二区精品在线 | 国产成人aⅴ | 一区二区三区四区日韩 | 亚洲精品电影在线观看 | 在线视频中文字幕 | 91视频在线观看免费 | 青青草社区| 日韩影音 |