27,515
社区成员
发帖
与我相关
我的任务
分享
//程序开始
code_SEG SEGMENT code //数据区名称定义
RSEG code_SEG
ORG 0000H
AJMP 0160H;
//中断程序入口
ORG 0003H
INT0_EXIT:
LJMP EX0_ZHD_MAIN;
RETI;
ORG 000BH
LJMP TIME0_ZHD_MAIN;
RETI;
ORG 0013H
LJMP EX1_ZHD_MAIN;
RETI;
ORG 001BH
LJMP TIME1_ZHD_MAIN;
RETI;
ORG 0023H //串口1中断入口
LJMP S1BUF_ZHD_MAIN;
RETI;
ORG 002BH
RETI;
ORG 0043H //串口2中断入口
LJMP S2BUF_ZHD_MAIN;
RETI;
ORG 0160H
//系统初始化
#include <PROGRAM/COMMAND_SATR.ASM> //系统初始化子程序*/
NOP;
NOP;
MAIN:
AJMP MAIN; //返回到系统工作主程序
/*---------子程序区-----------*/
#include <system/XT_RW1_MAIN.ASM> //系统任务线程1
#include <system/XT_RW2_MAIN.ASM> //系统任务线程2
#include <system/XT_RW3_MAIN.ASM> //系统任务线程3
#include <system/_CON_PZH_CHXJ.ASM> //<系统库>头文件定义
#include <system/XTxRW_T0ZHD_CHX.ASM> //系统多任务定时器中断子程序
#include <PROGRAM/EX_ZHD_CHXJ.ASM> //外部中断子程序
#include <PROGRAM/TIME1_ZHD_CHX.ASM> //定时器中断子程序
//STC系统子程序
#include <PROGRAM/STC_ADJC_CHX.ASM> //AD检测子程序
#include <PROGRAM/STC_PWM_CHX.ASM> //系统PWM定义
#include <PROGRAM/STC_FLASH_CHXJ.ASM> //STC单片机内部可擦写FLASH读写子程序
//系统子程序
#include <PROGRAM/S1BUF_ZHD_CHX.ASM> //<系统库>串口2中断处理子程序
#include <PROGRAM/S1BUF_DATA_OUT.ASM> //串口2中断输出处理子程序
#include <PROGRAM/S2BUF_ZHD_CHX.ASM> //<系统库>串口2中断处理子程序
#include <PROGRAM/S2BUF_DATA_OUT.ASM> //串口2中断输出处理子程序
#include <PROGRAM/CRC16M_IRAM_CHX.ASM> //<系统库>CRC16数据效验子程序
#include <PROGRAM/CRC16M_XRAM_CHX.ASM> //<系统库>CRC16数据效验子程序
#include <PROGRAM/CRC16M_CSHB.ASM> //<系统库>CRC16参数表
//#include <PROGRAM/I2C_RW_CHXJ.ASM> //<系统库>头文件定义
//#include <PROGRAM/SMALL_SUBB_CHX.ASM> //<系统库>小除法子程序
//#include <PROGRAM/CRC8_1_RAM_CHX.ASM> //<系统库>CRC8数据效验子程序
//#include <PROGRAM/CRC8_IRAM_CHX.ASM> //<系统库>定时器1中断处理子程序
//#include <PROGRAM/CRC8_XRAM_CHX.ASM> //<系统库>CRC8数据效验子程序
//#include <PROGRAM/DIN_ZHX_CHXJ.ASM> //数据输入寄存器指令解析子程序
//#include <PROGRAM/BCH_ZHX_CHXJ.ASM> //保持寄存器指令解析处理子程序
//#include <PROGRAM/BIT_BCD_CHXJ.ASM> //<系统库>二进制转十进制子程序
//#include <PROGRAM/MUL_CHXJ.asm> //<系统库>乘法子程序
//#include <PROGRAM/SUBB_CHXJ.asm> //<系统库>大除法子程序
END
////------------系统寄存器初始化------------
MOV R0,#080H;
CLR A;
CLR_RAM:
MOV @R0,A;
DJNZ R0,CLR_RAM;
;----------------------------------//
//------------基础寄存器设置------------
MOV SP,#60H; //设置主程序栈起始地址
MOV TMOD,#21H; //time0:定时方式0 time1:定时方式2
MOV AUXR,#11000000B; //开启独立的波特率发生器打开双串口
MOV SCON,#040H;
MOV TH1,#0E6H;
MOV PCON,#80H;
MOV IP,#008H;
MOV IE,#090H; //打开定时器0中断
SETB TR0; //打开定时器0
SETB TR1; //打开定时器1
SETB REN;
//管脚功能设置
MOV P0M0,#00000100B;
MOV P1M0,#00001110B;
MOV P2M0,#11110000B;
MOV P3M0,#10110000B;