单片机最小系统的开发

来源:互联网 发布:上海淘宝拍照的地方吗 编辑:程序博客网 时间:2024/05/04 14:41
 

课程:微机接口技术   课程设计题目:单片机最小系统

一、设计题目:单片机最小系统

四、任务与要求:

     在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控。监控的重要组成部分。

     本课题任务与要求如下:

1、     单片机可采用8031、8051、AT89C51、AT89C52、fosc=6MHz。

2、     时钟电路,复位电路的设计。

3、     系统RAM、ROM的容量均为8KB。

4、     显示位数:8位。

5、     键盘按键数:16个。

6、     上电初始化显示P.

7、     能输入、显示十六进制数0——F

8、     编写系统初始化主程序、键扫子程序、显示子程序及其他所需要子程序。

9、     计算机输出设计说明书一分(包括各部分电路工作原理说明、程序清单及程序流程框图),16开方框图一张,电路原理总图一张。

10、 设计时间:一周

五、总体方案设计提示

1、     可利用8031,RAM,ROM,8279构造单片机最小系统。

2、     可利用8031,RAM,ROM,8155构造单片机最小系统。

也可以利用AT89C51(或AT89C52),RAM,8155构造单片机最小系统。

请看我的程序然后修改 ,谢谢大家!有什么消息给我发邮件ziyouniao8417127@163.com

 

Inter 8051片内RAM78H-7FH单元为显示缓冲区,依次从低到高存显示数据

              ORG     0000H

              AJMP    MAIN

              ORG     0080H

     MAIN :   MOV      SP,   #60H

              MOV      R0,   #08H

              MOV      R1,   #78H

              LCALL    ML                    ;调清零子程序

            

              MOV      R0,   #64            ;清工作单元

              MOV      R1,   #20H

              LCALL    ML

 

              MOV      A,    #03H            ; 8155的初始化

              MOV      DPTR, #7F00H

              MOVX     @DPTR,A

 

       ST:    MOV      78H,  #0FFH            ;显示P.

              MOV      79H,  #0FFH

              MOV      7AH,  #0FFH

              MOV      7BH,  #0FFH

              MOV      7CH,  #0FFH

              MOV      7DH,  #0FFH

              MOV      7EH,  #0FFH

MOV      7FH,  #0CH

      LM:     LCALL    DIS                 ;调显示显示P.

              LCALL    SHIFT               ;调移位程序

              LCALL    LTIM                ;调延时子程序

              LCALL    KD1                   ;调键扫程序

                        INC      R0

          AJMP     LM

 

DIS:      MOV    A,   #03H          ;显示程序

          MOV    DPTR, #7F00H  

          MOV    @DPTR,A

          MOV      R0,   #78H           

              MOV      R3,   #01H

              MOV      A,    R3

     LD0:     MOV      DPTR, #7F01H

              MOVX      @DPTR,A

              INC       DPTR

              MOV       A,   @R0

     DIR0:    ADD       A,   #0DH

              MOVC      A,   @A+PC

     DIR1:    MOVX      @DPTR,A

              LCALL     DL

              INC       R0

              MOV       A,   R3

              JB        ACC.5,LD1

              RL        A

              MOV       R3,  A

              LJMP      LD0

      LD1:    RET

 

      DSEG:  DB        3FH,06H,5BH,4FH,66H

              DB        6DH,7DH,07H,7FH,6FH

              DB        77H,7CH,39H,5EH,79H

              DB        71H

 

DL1:   MOV       R7,  #01H           ;延时1ms

DL :   MOV       R6,  #0FFH

DL6:   DJNZ     R6,  DL6

       DJNZ     R7,  DL          

RET

 

KD1:  LCALL     DIS                 ;键盘扫描程序

      KEY1:   LCALL     KEY

              JNZ       LK1

       NI:    ACALL     DIS

              AJMP      KEY1

      LK1:    ACALL     DIS                 ;有键闭合2次延时

              ACALL     DIS                 ;共12ms去抖动

              ACALL     K1

              JNZ       LK2

              LCALL     DIS

              AJMP      KEY1

      LK2:    MOV       R2,   #0FEH

              MOV       R4,   #00H

      LK4:    MOV       DPTR, #7F01H

              MOV       A,     R2

              MOVX      @DPTR, A

              INC       DPTR

              INC       DPTR

              MOVX      A,      @DPTR

              JB        ACC.0,  LONE

              MOV       A,      #00H

              AJMP      LKP

     LONE:    JB        ACC.1,  NEXT

              MOV       A,      #08H

              AJMP      LKP

      LKP:    ADD       A,      R4           ;计算键码

              PUSH      ACC                  ;保护键码

      LK3:    ACALL     DIS

              ACALL     K1                   ;查键是否继续闭合,若闭合再延时

              JNZ       LK3

              POP       ACC

              RET

     NEXT:    INC       R4

              MOV       A,       R2

              JNB       ACC.7,   KLM

              RL        A

              MOV       R2,      A

              LJMP      LK4                  ;进行下一次扫描

      KLM:    AJMP      KEY1                 ;扫描完毕,开始新的一次

 

 

LTIM:     MOV       R5,      01H         ;延时子程序

    LP3:      MOV       R6,      #0FFH

    LP2:      MOV       R7,      #0FFH

    LP1:      MOV       R7,      LP1

              DJNZ      R6,      LP2

              DJNZ      R6,      LP3

            

 

ML:     MOV       A,       #60H         ;清零子程序

              MOV       @R1,     A

              INC       R1

              DJNZ      R0,      ML

       MM:    MOV       A,       #00H         ;清显示

              MOV       R0,      #08H

              MOV       R1,      #78H

              LCALL     ML

     

    SHIFT:    MOV       7EH,     7FH             ;移位子程序

              MOV       7DH,     7EH

              MOV       7CH,     7DH

              MOV       7BH,     7CH

              MOV       7AH,     7BH

              MOV       79H,     7AH

              MOV       78H,     79H

 

              

 

 

      KEY:    MOV       DPTR,     #7F01H      ;判断是否有键闭合

              MOV       A,        #00H

              MOVX      @DPTR,    A

              INC       DPTR

              INC       DPTR

              MOVX      A ,       @DPTR

              CPL       A

              ANL       A,        #0FH

              RET