?? 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 + -