📄 sc16is752.c
字号:
#include<AT89X52.h>
#include<intrins.h>
sfr ISP_CONTR=0XE7;//见PDF的39页。当ISP_CONTR的值设置为0X60时,表示用户程序软件复位并从系统的ISP监控程序区开始执行程序。
sfr CCON=0XD8;//见PDF的72页。PCA计数器控制寄存器。
sfr CMOD=0XD9;//见PDF的72页。PCA模式寄存器。
sfr CL=0XE9;//见PDF的72页。
sfr CH=0XF9;//见PDF的72页。
sfr CCAPOL=0XEA;//见PDF的72页。
sfr CCAPOH=0XFA;//见PDF的72页。
sfr CCAPM0=0XDA;//见PDF的72页。
sfr CCAPM1=0XDB;//见PDF的72页。
sbit CR=0XDE;//见PDF的72页。PCA计数器运行控制位。通过软件置位1来启动PCA计数器,通过软件清零关闭PCA计数器。
sbit MCU_Start_led=P1^7;
//unsigned char self_command_array[4]={0x22,0x33,0x44,0x55};
#define Self_Define_ISP_Download_Command 0x22//自己定义的ISP命令。
#define RELOAD_COUNT 0Xfa;//晶振频率为22.1184MHZ,T1作为波特率发生器,SMOD=0,波特率为9600,定时器初值为0XFA。
void serial_port_initial();
void send_UART(unsigned char);
void UART_Interrupt_Receive(void);
void soft_reset_to_ISP_Monitor(void);
void delay(void);
void display_MCU_Start_led(void);
void send_PWM(void);
void main(void)
{
unsigned char i=0;
P2=0X01;
serial_port_initial();
display_MCU_Start_led();
//send_UART(0X35);
//send_UART(0Xa7);
send_PWM();
while(1)
{
//send_UART(0X35);
// send_UART(0Xa7);
P2=~P2;
delay();
}
}
void serial_port_initial()
{
SCON=0X50;//串口工作在方式1,一个起始位,8位数据,一个停止位,接受允许。
TMOD=0X20;//T1工作在模式2,8位自动重装模式
TH1=RELOAD_COUNT;
TL1=RELOAD_COUNT;
TR1=1;
ES=1;
EA=1;
}
void send_UART(unsigned char i)
{
ES=0;
TI=0;
SBUF=i;
while(TI==0);
TI=0;
ES=1;
}
void UART_Interrupt_Receive(void) interrupt 4
{
unsigned char K=0;
if(RI==1)
{
RI=0;
K=SBUF;
if(K==Self_Define_ISP_Download_Command)
{
delay();
delay();
soft_reset_to_ISP_Monitor();
}
send_UART(K);
}
else
{
TI=0;
}
}
void soft_reset_to_ISP_Monitor(void)
{
ISP_CONTR=0x60;
}
void delay(void)
{
unsigned int j=0;
unsigned int g=0;
for(j=0;j<5;j++)
{
for(g=0;g<60000;g++)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
void display_MCU_Start_led(void)
{
unsigned char i=0;
for(i=0;i<3;i++)
{
MCU_Start_led=0;
delay();
MCU_Start_led=1;
delay();
MCU_Start_led=0;
}
}
void send_PWM(void)
{
CMOD=0X00;
CL=0X00;
CH=0X00;
CCAPOL=0X80;
CCAPOH=0X80;
CCAPM0=0X42;
CR=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -