📄 max5.c
字号:
//本程序没有用到tmr2中断,只用了tmr2延时,并且把延时程序嵌入了发送程序中
#include <pic.h>
unsigned int SecondCount;
char n=0x00;
char i=0;
char j=0;
void chushi()
{
SSPCON=0x08;//初始化SSPCON寄存器,使时钟F=Fosc/[4*(SSPADD+1)]
TRISC3=1;
TRISC4=1;
TRISA4=0;
SSPSTAT=0x80;//初始化SSPSTAT寄存器
SSPADD=0x02; //设定I2C时钟频率
SSPCON2=0x00;//初始化SSPCON2寄存器
di();
SSPIF=0;
RA4=0;
SSPEN=1; //SSP模块使能
}
void chushit()
{
T1OSCEN=0;//禁止自带振荡器功能
TMR1CS=0;//选择内部时钟源(FOSC/4),工作于定时方式
T1CKPS1=1;//预分频比为1:8
T1CKPS0=1;
TMR1IF=0;
TMR1IF=0;
PEIE=1;
GIE=1;
}
void chuan()
{
SEN=1;
for(n=2;--n;) continue;
do{
RSEN=1;
}
while(SSPIF==0);
SSPIF=0;
SSPBUF=0X58;
do{
;
}
while(SSPIF==0);
SSPIF=0;
SSPBUF=n;
do{
;
}
while(SSPIF==0);
SSPIF=0;
SSPBUF=0b10000000;
do{
;
}
while(SSPIF==0);
SSPIF=0;
PEN=1;
do{
;
}
while(SSPIF==0);
SSPIF=0;
}
main()
{
chushi();
chushit();
for(j=0;;j++)
{
if(j%2==0) n=0x00;
if(j%2==1) n=0x01;
do
{TMR1H=(65536-1250)/256;
TMR1L=(65536-1250)%256; //10ms
TMR1IF=0;
TMR1ON=1;
do{chuan();}
while(TMR1IF==0);
TMR1ON=0;
TMR1IF=0;
i++;
}
while(i<100);
TMR1ON=0;
TMR1IF=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -