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

標題: 電子秒表課程設計 帶ppt 仿真 單片機c51和匯編程序 [打印本頁]

作者: hulu6389151    時間: 2016-6-21 08:02
標題: 電子秒表課程設計 帶ppt 仿真 單片機c51和匯編程序
電子秒表課程設計

1. 設計要求
   用AT89C52設計一個用液晶顯示作為“秒表”:顯示時間為時,分,秒,每秒自動加1,另設計四個按鍵,按下按鍵1后,可發現led停止閃爍,即時鐘停止走時,時鐘停在當前時刻,按下按鍵2和按鍵3后,可改變時間,按下按鍵4后,時鐘復位到修改后的時間,時鐘重新開始運轉。
2. 實驗原理
   題目難點在于通過對鍵盤的掃描對時鐘的走時/停止進行控制,項目采用定時器T0作為計時器,每10ms發生一次中斷,每100次中斷加1s。在此期間,如“開始”按鍵按下,程序方將TR0置為1,從而開啟中斷,時鐘開始走時。
  系統總體方案
   本系統采用AT89C52單片機為中心器件,利用其定時器/計數器定時和記數的原理,結合硬件電路如電源電路,復位電路,顯示電路,以及一些按鍵電路等來設計計時器,將軟、硬件有機地結合起來。其中軟件系統采用匯編語言編寫程序,包括顯示程序,計數程序,中斷,硬件系統利用PROTEUS強大的功能來實現,簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態。
  仿真圖


      設計是培養學生綜合運用所學知識,發現,提出,分析和解決實際問題,鍛煉實踐能力的重要環節,是對學生實際工作能力的具體訓練和考察過程,在此次的設計中我學會很多,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機匯編語言掌握得不好……通過這次課程設計之后,一定把以前所學過的知識重新溫故。
     在做設計的日子里老師和同學給了我們很大的幫助,再次對你們表示衷心的感謝!





秒表匯編程序:
  1.             LCDRS  BIT   P2.0
  2.                 lCDEN  BIT   P2.2
  3.         LCD    EQU   P3
  4.                
  5.                 LED    BIT   P2.4       
  6.    
  7.             NUM    EQU   20H
  8.                 MIAO   EQU   21H
  9.                 FEN    EQU   22H
  10.                 SHI    EQU   23H   
  11.         SITE   EQU   24H
  12.             MIAO_L EQU   25H
  13.                 FEN_L  EQU   26H
  14.                 SHI_L  EQU   26H
  15.                 KNUM   EQU   27H


  16.              ORG    0000H
  17.                 LJMP   MAIN
  18.                 ORG    000BH
  19.                 LJMP   IT0P
  20.                

  21. MAIN:   LCALL  INITL
  22.         LCALL  INITT
  23.         MOV    SP,   #60H
  24.                 MOV    MIAO, #00H   
  25.                 MOV    FEN,  #00H
  26.                 MOV    SHI,  #00H
  27.                 MOV    KNUM, #00H
  28.                 SETB   LED
  29.                
  30. HERE:   LCALL   SM
  31.                 LCALL   SF
  32.                 LCALL   SS
  33.                 LCALL   KEY4
  34.                 LCALL   KEY1
  35.                 LCALL   JIA
  36.                 LCALL   JIAN
  37.         LJMP   HERE

  38.                
  39. INITL:  CLR    LCDEN
  40.         MOV    R1,   #38H  
  41.         LCALL  LCDWC
  42.         MOV    R1,   #0CH
  43.         LCALL  LCDWC
  44.         MOV    R1,   #06H
  45.         LCALL  LCDWC
  46.         MOV    R1,   #01H
  47.         LCALL  LCDWC
  48.                 MOV    R1,   #80H
  49.         LCALL  LCDWC
  50.                 LCALL  LCDT1
  51.                 LCALL  LCDT3
  52.                 MOV    R1,   #0C9H
  53.                 LCALL  LCDWC
  54.                 MOV    R1,   #3AH
  55.                 LCALL  LCDWD
  56.                 MOV    R1,   #0CCH
  57.                 LCALL  LCDWC
  58.                 MOV    R1,   #3AH
  59.                 LCALL  LCDWD
  60.                 RET

  61. INITT:  CLR    A
  62.                 MOV    B,     #10
  63.         MOV    R4,    #0FH
  64.             MOV    NUM,   #0AH
  65.         MOV    TMOD,  #01H
  66.             MOV    TH0,   #4CH
  67.             MOV    TL0,   #0D0H
  68.                 SETB   EA
  69.                 SETB   ET0
  70.             SETB   TR0
  71.                 RET         

  72. LCDWC:  CLR    LCDRS
  73.         MOV    LCD,  R1
  74.         LCALL  DELYMS       
  75.         SETB   LCDEN
  76.                 LCALL  DELYMS
  77.                 CLR    LCDEN
  78.         RET   

  79. LCDWD:  SETB   LCDRS
  80.         MOV    LCD,  R1
  81.         LCALL  DELYMS       
  82.         SETB   LCDEN
  83.                 LCALL  DELYMS
  84.                 CLR    LCDEN
  85.         RET

  86. DELYMS: MOV    R7,  #5
  87.         MOV    R6,  #110                                
  88. DEL:    DJNZ   R7,  DEL1
  89. DEL1:   DJNZ   R6,  DEL
  90.                 RET

  91. DELY:   MOV    R7,  #40
  92. DEL12:  MOV    R6,  #123                                
  93. DEL11:  DJNZ   R6,  DEL11
  94.         NOP
  95.         DJNZ   R7,  DEL12
  96.                 RET

  97. LCDT1:  MOV    DPTR, #0000H
  98.         MOV    R2,  #12
  99.         MOV           B,   #80H
  100.         MOV    DPTR,#TAB1
  101.                 MOVC   A,   @A + DPTR
  102.                 MOV    R1,  B
  103.                 LCALL  LCDWC
  104.                 MOV    R1,  A
  105.                 LCALL  LCDWD
  106. LCDT2:  CLR    A
  107.                 INC    DPTR
  108.                 INC    B
  109.                 MOVC   A,   @A + DPTR
  110.                 MOV    R1,  B
  111.                 LCALL  LCDWC
  112.                 MOV    R1,  A
  113.                 LCALL  LCDWD
  114.                 DJNZ   R2,  LCDT2
  115.                 RET

  116. LCDT3:  MOV   R2, #4
  117.         MOV          B, #0BFH
  118. LCDT4:  CLR    A
  119.                 INC    DPTR
  120.                 INC    B
  121.                 MOVC   A,   @A + DPTR
  122.                 MOV    R1,  B
  123.                 LCALL  LCDWC
  124.                 MOV    R1,  A
  125.                 LCALL  LCDWD
  126.                 DJNZ   R2,  LCDT4
  127.                 RET         

  128. IT0P:   PUSH   PSW
  129.         PUSH   Acc
  130.         MOV    TH0,   #4CH
  131.             MOV    TL0,   #0D0H
  132.             DJNZ   NUM,   LOOPT
  133.                 MOV    NUM,   #14H
  134.         INC    MIAO
  135.                 MOV    A,     MIAO
  136.             CJNE   A,     #60,   LOOPT
  137.             MOV    MIAO,  #00
  138.                 INC    FEN
  139.                 MOV    A,     FEN
  140.                 CJNE   A,     #60,   LOOPT
  141.             MOV    FEN,   #00      
  142.                 MOV    A,     SHI
  143.                 CJNE   A,     #24,   LOOPT
  144.             MOV    SHI,   #00
  145.                
  146. LOOPT:  POP    Acc
  147.                 POP    PSW
  148.         RETI            

  149. SM:     MOV    A,     MIAO
  150.         DIV    AB
  151.                 MOV    MIAO_L,B
  152.                 MOV           SITE,  #0CDH
  153.                 LCALL  SHOW
  154.                 MOV    SITE,  #0CEH
  155.                 MOV    A,     MIAO_L
  156.                 LCALL  SHOW
  157.                 MOV    B,     #10
  158.                 RET


  159.                
  160. SF:            MOV    A,     FEN
  161.         DIV    AB
  162.                 MOV    FEN_L, B
  163.                 MOV           SITE,  #0CAH
  164.                 LCALL  SHOW
  165.                 MOV    SITE,  #0CBH
  166.                 MOV    A,     FEN_L
  167.                 LCALL  SHOW
  168.                 MOV    B,     #10
  169.                 RET

  170. SS:     MOV    A,    SHI
  171.         DIV    AB
  172.                 MOV    SHI_L, B
  173.                 MOV           SITE,  #0C7H
  174.                 LCALL  SHOW
  175.                 MOV    SITE,  #0C8H
  176.                 MOV    A,     SHI_L
  177.                 LCALL  SHOW
  178.                 MOV    B,     #10
  179.                 RET

  180. SHOW:   MOV    DPTR,  #0000H
  181.         MOV    DPTR,  #TAB2
  182.             MOVC   A,     @A + DPTR
  183.                 MOV    R1,    SITE
  184.                 LCALL  LCDWC
  185.                 MOV    R1,    A
  186.                 LCALL  LCDWD
  187.                 RET
  188.                
  189. KEY1:   MOV    A,     P1
  190.                 CJNE   A,     #0FEH,  LOOPK2
  191.             LCALL  DELY
  192.                 CJNE   A,     #0FEH,  LOOPK2
  193. WAIT1:  JNB    P1.0,  WAIT1
  194.         CPL    TR0
  195.                 CPL    LED
  196.                 RET

  197. LOOPK2: RET                                                           

  198. KEY4:   MOV    A,     P1
  199.                 CJNE   A,     #0F7H,  LOOPK2  
  200.             LCALL  DELY
  201.                 CJNE   A,     #0F7H,  LOOPK       
  202. WAIT4:  JNB    P1.3,  WAIT4
  203.         INC    KNUM
  204.                 MOV    R4,    KNUM
  205. K1:                  CJNE   R4,    #01,    k2       
  206.                 CPL           TR0
  207.                    MOV    DPTR, #TABM
  208.                 LCALL  TISHI
  209. K2:            CJNE   R4,    #02,    K3       
  210.                 MOV    DPTR, #TABF
  211.                 LCALL  TISHI
  212. K3:                CJNE   R4,    #03,    K4       
  213.                 MOV    DPTR, #TABS
  214.                 LCALL  TISHI
  215. k4:                CJNE   R4,    #04,    LOOPK       
  216.                 MOV    KNUM,  #00H
  217.             MOV    R4,    #00H
  218.             SETB   TR0
  219.                 MOV    DPTR, #TABI
  220.                 LCALL  TISHI
  221.                 RET

  222. TISHI:
  223.         MOV    R2,  #7
  224.         MOV           B,   #86H
  225.                 MOVC   A,   @A + DPTR
  226.                 MOV    R1,  B
  227.                 LCALL  LCDWC
  228.                 MOV    R1,  A
  229.                 LCALL  LCDWD
  230. LCDT5:  CLR    A
  231.                 INC    DPTR
  232.                 INC    B
  233.                 MOVC   A,   @A + DPTR
  234.                 MOV    R1,  B
  235.                 LCALL  LCDWC
  236.                 MOV    R1,  A
  237.                 LCALL  LCDWD
  238.                 DJNZ   R2,  LCDT5
  239.           RET
  240. TABM:      DB "  SECOND  "
  241. TABF:      DB "  MINUTE  "
  242. TABS:      DB "  HOUR   "
  243. TABI:      DB "  CHINA  "
  244.         

  245. LOOPK:  RET

  246. JIA:    MOV    A,     KNUM
  247.                 CJNE   A,     #00H,  KEY2       
  248.                 RET
  249. KEY2:   MOV    A,     P1
  250.         CJNE   A,     #0FDH,  LOOPK
  251.                 LCALL  DELY
  252.                 CJNE   A,     #0FDH,  LOOPK
  253. WAIT2:  JNB    P1.1,  WAIT2
  254.                 MOV    A,     KNUM
  255. MJIA:        CJNE   A,     #01,    FJIA
  256.                 INC    MIAO
  257.                 LCALL  LOOPKM
  258.                 MOV    A,     MIAO
  259.                 CJNE   A,     #60,  LOOPK
  260.             MOV    MIAO,  #00H
  261.                 LCALL  LOOPKM
  262. FJIA:        CJNE   A,     #02,  SJIA
  263.         INC    FEN
  264.                 LCALL  LOOPKF
  265.                 MOV    A,     FEN
  266.                 CJNE   A,     #60,  LOOPK
  267.             MOV    FEN,   #00H
  268.                 LCALL  LOOPKF
  269. SJIA:        CJNE   A,     #03,  LOOPK
  270.         INC    SHI
  271.                 LCALL  LOOPKS
  272.                 MOV    A,     SHI
  273.                 CJNE   A,     #24,  LOOPK
  274.                 MOV    SHI,   #00H
  275.                 LCALL  LOOPKS
  276.                 RET

  277. JIAN:   MOV    A,     KNUM
  278.                 CJNE   A,     #00H,  KEY3       
  279.                 RET
  280. KEY3:   MOV    A,     P1
  281.         CJNE   A,     #0FBH, LOOPK
  282.                 LCALL  DELY
  283.                 CJNE   A,     #0FBH, LOOPK
  284. WAIT3:  JNB    P1.2,  WAIT3
  285.                 MOV    A,     KNUM
  286. MJIAN:        CJNE   A,     #01,   FJIAN
  287.                 MOV    A,     MIAO
  288.                 CJNE   A,     #00,   MJIAN0
  289.             MOV    MIAO,  #59
  290.                 LCALL  LOOPKM
  291.                 RET
  292. MJIAN0: DEC    MIAO
  293.                 LCALL  LOOPKM
  294. FJIAN:        CJNE   A,     #02,  SJIAN
  295.         MOV    A,     FEN
  296.                 CJNE   A,     #00,  FJIAN0
  297.             MOV    FEN,   #59
  298.                 LCALL  LOOPKF
  299.                 RET
  300. FJIAN0: DEC    FEN
  301.                 LCALL  LOOPKF
  302. SJIAN:        CJNE   A,     #03,  LOOPK1
  303.         MOV    A,     SHI
  304.                 CJNE   A,     #00,  SJIAN0
  305.                 MOV    SHI,   #23
  306.                 LCALL  LOOPKS
  307.                 RET
  308. SJIAN0:        DEC    SHI
  309.         LCALL  LOOPKS
  310.                 RET

  311. LOOPK1: RET
  312. LOOPKM: LCALL   SM
  313.         RET

  314. LOOPKF: LCALL   SF
  315.         RET

  316. LOOPKS: LCALL   SS
  317.         RET
  318.        


  319.                
  320. TAB1:   DB "H.I.T.  CHINA", "TIME"
  321. TAB2:   DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H, 38H,39H
  322.                 END                     
復制代碼


單片機秒表c語言程序
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. uchar code china[] = " H.I.T  CHINA";
  5. uchar code time[] = " TIME  ";
  6. void delayms(uchar xms);
  7. void key_scan();
  8. void write_sfm(uchar add, uchar date);
  9. sbit lcdrs = P2^0;
  10. sbit write = P2^1;
  11. sbit lcden = P2^2;
  12. sbit led = P2^4;
  13. sbit key1 = P1^0;
  14. sbit key2 = P1^1;
  15. sbit key3 = P1^2;
  16. sbit key4 = P1^3;
  17. uchar num, miao, shi, fen, knum;

  18. void delayms(uchar xms){
  19.   uchar i,j;
  20.   for(i = xms; i > 0; i --)
  21.     for(j = 110;j>0;j--);   
  22. }

  23. void write_com(uchar com){
  24.      lcdrs = 0;
  25.          P3 = com;
  26.          delayms(5);
  27.          lcden = 1;
  28.          delayms(5);
  29.          lcden = 0;
  30. }

  31. void write_date(uchar date){
  32.      lcdrs = 1;
  33.          P3 = date;
  34.          delayms(5);
  35.          lcden = 1;
  36.          delayms(5);
  37.          lcden = 0;
  38. }

  39. void write_sfm(uchar add, uchar date){
  40.      uchar shi,ge;
  41.          shi = date/10;
  42.          ge = date%10;
  43.          write_com(0x80 + 0x40 + add);
  44.          write_date(0x30 + shi);
  45.          write_date(0x30 + ge);

  46. }
  47. void init(){
  48.      lcden = 0;
  49.          write_com(0x38);
  50.          write_com(0x0c);
  51.          write_com(0x06);
  52.          write_com(0x01);
  53.          write_com(0x80);
  54.          write = 0;
  55.          for(num = 0;num < 13;num++){
  56.              write_date(china[num]);
  57.                  delayms(5);
  58.          }
  59.          write_com(0x80 + 0x40);
  60.          for(num = 0;num < 6;num++){
  61.              write_date(time[num]);
  62.                  delayms(5);
  63.          }
  64.          write_com(0x80 + 0x40 + 8);
  65.          write_date(':');
  66.          write_com(0x80 + 0x40 + 11);
  67.          write_date(':');
  68.          write_sfm(6, 0);
  69.          write_sfm(9, 0);
  70.          write_sfm(12, 0);
  71.          TMOD = 0x01;
  72.          TH0 = (65536 - 45872)/256;
  73.          TL0 = (65536 - 45872)%256;
  74.      EA = 1;
  75.          ET0 = 1;
  76.          TR0 = 1;
  77. }

  78. void key_scan(){
  79.        if(key1 == 0) {
  80.              delayms(5);
  81.                  if(key1 == 0) {
  82.                     while(!key1);
  83.                         TR0 = ~TR0;
  84.                         led = ~led;
  85.                   }
  86.             }
  87.                        
  88.           if(key4 == 0) {
  89.              delayms(5);
  90.                  if(key4 == 0) {
  91.                     knum++;
  92.                     while(!key4);
  93.                         if(knum == 1){
  94.                        TR0 = ~TR0;
  95.                            write_com(0x80 + 0x40 + 12);
  96.                            write_com(0x0f);
  97.                          }
  98.                          if(knum == 2){
  99.                            write_com(0x80 + 0x40 + 9);
  100.                          }
  101.                          if(knum == 3){
  102.                            write_com(0x80 + 0x40 + 6);
  103.                          }
  104.                          if(knum == 4){
  105.                            knum = 0;
  106.                            write_com(0x0c);
  107.                            TR0 = 1;
  108.                          }
  109.                    }
  110.                 }
  111.                 if(knum != 0){
  112.                    if(key2 == 0){
  113.                       delayms(5);
  114.                           if(key2 == 0){
  115.                              while(!key2);
  116.                                  if(knum == 1){
  117.                                     miao++;
  118.                                         if(miao == 60)
  119.                                            miao = 0;
  120.                                         write_sfm(12, miao);
  121.                                         write_com(0x80 + 0x40 + 12);
  122.                                  }
  123.                                  if(knum == 2){
  124.                                     fen++;
  125.                                         if(fen == 60)
  126.                                            fen = 0;
  127.                                         write_sfm(9, fen);
  128.                                         write_com(0x80 + 0x40 + 9);
  129.                                  }
  130.                                  if(knum == 3){
  131.                                     shi++;
  132.                                         if(shi == 24)
  133.                                            shi = 0;
  134.                                         write_sfm(6, shi);
  135.                                         write_com(0x80 + 0x40 + 6);
  136.                                  }
  137.                           }
  138.                    }
  139.                    if(key3 == 0){
  140.                       delayms(5);
  141.                           if(key3 == 0){
  142.                              while(!key3);
  143.                                  if(knum == 1){
  144.                                     miao--;
  145.                                         if(miao == -1)
  146.                                            miao = 59;
  147.                                         write_sfm(12, miao);
  148.                                         write_com(0x80 + 0x40 + 12);
  149.                                  }
  150.                                  if(knum == 2){
  151.                                     fen--;
  152.                                         if(fen == -1)
  153.                                            fen = 59;
  154.                                         write_sfm(9, fen);
  155.                                         write_com(0x80 + 0x40 + 9);
  156.                                  }
  157.                                  if(knum == 3){
  158.                                     shi--;
  159.                                         if(shi == -1)
  160.                                            shi = 23;
  161.                                         write_sfm(6, shi);
  162.                                         write_com(0x80 + 0x40 + 6);
  163.                                  }
  164.                           }
  165.                    }
  166.                 }


  167. }

  168. void T0_time() interrupt 1{
  169.     TH1 = (65536 - 45872)/256;
  170.         TL1 = (65536 - 45872)%256;
  171.     num++;
  172.         if(num == 20){         
  173.            num = 0;
  174.            miao++;
  175.            if(miao== 60){
  176.               miao = 0;
  177.               fen++;
  178.                   if(fen == 60){
  179.                      fen = 0;
  180.                          shi++;
  181.                          if(shi == 24){
  182.                             shi = 0;
  183.                          }
  184.                          write_sfm(6, shi);
  185.                   }
  186.                   write_sfm(9, fen);
  187.            }
  188.           write_sfm(12, miao);
  189.          }
  190. }



  191. void main(){
  192.      init();
  193.          
  194.          while(1){
  195.              //write_sfm(10, 10);
  196.              key_scan();
  197.          }
  198. }


復制代碼


單片機課程設計.rar

413.14 KB, 下載次數: 160, 下載積分: 黑幣 -5


作者: whisker17    時間: 2016-6-26 10:57
感謝樓主,程序可以使用
作者: 鑫人    時間: 2017-12-22 13:50
謝謝分享
作者: 562944207    時間: 2018-6-23 19:50
感謝樓主,感謝您分享的資料
作者: 爺們伐木    時間: 2020-5-11 16:30
感謝樓主,感謝您分享的資料
作者: monologue_mine    時間: 2020-6-12 12:48
非常感謝!
作者: 余魚魚yyy    時間: 2020-6-14 17:34
為什么解壓不了





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美成人猛片aaaaaaa | 在线视频一区二区三区 | 自拍亚洲 | 日韩黄色av | www精品| 在线观看www高清视频 | 一区二区三区视频在线 | 欧美久久天堂 | 亚洲精品久久久久久一区二区 | 精品久久久久久18免费网站 | 欧美a区 | www.青青草 | 国产精品成人一区二区三区夜夜夜 | 精品久久一区二区 | 亚洲男人天堂av | 欧洲亚洲一区二区三区 | 午夜a级理论片915影院 | 日韩高清中文字幕 | 欧美精品乱码久久久久久按摩 | 在线观看中文字幕视频 | 精品久久香蕉国产线看观看亚洲 | 日本黄色免费片 | 成人3d动漫一区二区三区91 | 午夜精品一区二区三区在线观看 | 亚洲欧美一区二区三区视频 | 九九热国产精品视频 | 欧美精品成人一区二区三区四区 | 黄色毛片在线观看 | 日韩毛片免费看 | 久久中文字幕视频 | 色网站在线免费观看 | 久久精品一区二区三区四区 | 亚洲va欧美va天堂v国产综合 | 在线观看亚洲 | av片免费| 日韩波多野结衣 | 亚洲天堂色 | 国产精品久久久亚洲 | www.色.com | 不卡欧美 | 国产精品一区二区在线 |