芯片解密AT32F415系列软件开发源码单片机设计源程序:
main.c:
- #include<stc12c5a.h>
- #include <stdio.h>
- #include <string.h>
- #include<stdlib.h>
- #include<math.h>
- #include<intrins.h>
- #include "LCD.h"
- uchar table[24]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
- uchar wind_direction[8]={0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B};//风向传感器问询帧
- uchar wind_direction1[2]={0x00,0x00};//单片机接收风向数据
- void delay(uint z)//延时函数
- {
- uint x,y;
- for(x=z;x>0;x--);
- for(y=110;y>0;y--);
- }
- void init() //系统初始化
- {
- TMOD=0X20;//定时器T1,方式2,波特率由PCON寄存器的SMOD决定
- TH1=0xfa;
- TL1=0xfa;
- TR1=1;//定时器1中断
- SCON=0x50;//方式1 SCON是串行口1的串行控制寄存器
- PCON=0x00;//各工作方式波特率加倍
- TR1=1;//定时器1开始工作
- IP=0X10;
- EA=1;
- ES=1;
- }
- void main()
- {
- init();
- while(1)
- {
- int i;
- for(i=0;i<8;i++)
- {
- SBUF=wind_direction[i];
- while(!TI); //数据发送结束时TI置1
- TI=0;
- }
- lcd1602_show(0x80,wind_direction1[0]);
- }
- }
- void UART_1() interrupt 4
- {
- int i=0;
- //接收完缓冲数据后RI置1
- if(RI)//如果RI为1
- {
- RI=0; //RI置0
- table[i++]=SBUF;
- if(i>8)
- {
- wind_direction1[0]=table[3];//风向数据给wind_direction1[0]
- }
- }
- }