单片机最小系统的开发

2019-04-15 15:46发布

  课程:微机接口技术   课程设计题目:单片机最小系统 一、设计题目:单片机最小系统 四、任务与要求:      在智能化仪器仪表中,控制核心均为微处理器,而单片机以高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成单片机最小系统,它是智能化仪器仪表的基础,也是测控。监控的重要组成部分。      本课题任务与要求如下: 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