⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 电脑串口控制单片机驱动继电器的完整源程序.asm

📁 电脑串口控制单片机驱动继电器的所有上位机和单片机通讯的程序代码。单片机ASM代码等。有思路和原理图
💻 ASM
字号:
单片机源代码(asm格式):
;--------------------------------------------------
;--------------------------------------------------

;设置串行口   波特率9600
;串行口设置MODE1,SM1=0,REN=1,SMOD=1
;晶振11.0592,定时设置为0FDH
;常用端口设置参数
;FD  9600
;FA  4800
;F4  2400
;E8  1200
;--------------------------------------------------
;***********************************************************
ORG 00H
JMP START
  
ORG 23H
JMP UART
  
ORG 30H
START: MOV SP,#70H

MOV SCON,#50H
MOV TMOD,#00100001B  ;TIM1在模式2  TIM0在模式1
MOV TH1,#0F4H ;设置定时时间

SETB TR1 ;启动定时器1
SETB ES  ;允许串口中断
SETB EA  ;允许总中断

MOV P0,#0 ;P0、P2输出低电平
MOV P2,#0
  
JMP $  ;等待状态
;*****************************************
;串行口中断
;*****************************************
UART:  PUSH ACC
            PUSH PSW
            CLR ES  ;关闭串行口中断
  
            MOV TH0,#HIGH(65536-65536)
            MOV TL0,#LOW(65536-65536)
            SETB TR0 ;开定时器0
  
            MOV 30H,#00 ;同步位
            MOV 31H,#00 ;数据1
            MOV 32H,#00 ;数据2
            MOV 33H,#00 ;结束位
   
            MOV R0,#30H
REC: 
            jbc tf0,FS ;接收时间是否超时?是则执行FS

           JNB RI,REC ;接收数据
           CLR RI

           MOV A,SBUF
           MOV @R0,A
           INC R0
           JMP REC
FS: CLR TR0  ;关定时器0
;******************************** 
          CALL FUN  ;解码并控制继电器
          SETB ES  ;开串行口中断
          POP PSW
          POP ACC
          RETI  ;中断子程序返回

;****************************************
;解码并控制继电器
;下面的程序可以更简洁,但为了方便,展开来编制
;****************************************
FUN:  MOV A,#0AH  ;判断第1字节即同步位
          CJNE A,30H,ERR
          MOV A,#0DH  ;判断第4字节即结束位
          CJNE A,33H,ERR
;****************************************
;第2字节即数据位1,代表继电器J1-8
;第3字节即数据位2,代表继电器J9-16
;****************************************
           MOV A,31H
           MOV P0,A

           MOV A,32H
           MOV P2,A
  
           RET
;**************************************
; 数据错误处理
;************************************** 
ERR:
         MOV 30H,#00 ;同步位
         MOV 31H,#00 ;数据1
         MOV 32H,#00 ;数据2
         MOV 33H,#00 ;结束位

         RET

         END ;程序结束
;--------------------------------------------------
;--------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -