上位机采用APP,安卓
下位机使用51单片机,功能已实现,现分享代码
/*---------------------------------------------------------------------
程序功能: 1s的中断次数
01 串口初始化
02 定时器0初始化,定时器工作方式16位定时器,计时方式
03 外部中断0初始化
04 外部中断加1
05 定时器中断,记录1s外部中断次数,并清零
06 重复(4)
---------------------------------------------------------------------*/
#include <reg52.h>
#include <.\C51\serial.h>
#include <.\C51\init.h>
sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;
sbit FENG=P2^5;
//-----------------------------------------------------
void init_device() //设备初始化
{
delay_1ms(100);
init_com(); //初始化串口
//init_timer0(); //定时器0初始化
//init_timer1(); //定时器1初始化
//init_ex0(); //外部中断初始化
//init_ex1(); //外部中断初始化
}
void num_to_str(unsigned int num,unsigned char *buf1,unsigned int i)
{
buf1[ i]='0'+num%100000/10000;
i++;buf1[ i]='0'+num%10000/1000;
i++;buf1[ i]='0'+num%1000/100;
i++;buf1[ i]='0'+num%100/10;
i++;buf1[ i]='0'+num%10;
}
/*-----------------------------------------------------
程序 名: void main()
程序功能: 主程序
-----------------------------------------------------*/
void main()
{
int i,num;
init_device(); //设备初始化
num=1234;
i=0;
num_to_str(i,str1,0);
Uart1Sends(str1,sizeof(str1)-1); //发送字符串
Uart1Sends(str2,sizeof(str2)-1); //发送字符串
while(1)
{
delay_1ms(10);
num++;
if(num>100)
{
num=0;
Uart1Sends(str2,sizeof(str2)-1);
str2[2]++;
if(str2[2]>'9')
{
str2[2]='0';
}
}
if(rev_flag==1)
{
rev_flag=0;
switch(ch)
{
case 11:LED0=~LED0; break;
case 12:LED1=~LED1; break;
case 13:LED2=~LED2; break;
case 14:LED3=~LED3; break;
case 15:LED4=~LED4; break;
case 16:LED5=~LED5; break;
case 17:LED6=~LED6; break;
case 18:LED7=~LED7; break;
case 19:
FENG=0; delay_1ms(200);
FENG=1; delay_1ms(200);
FENG=0; delay_1ms(200);
FENG=1; delay_1ms(200);
break;
}
}
}
}
|