#include
#pragma config JTAGEN =OFF
char
//led字库
void spiout(char image[],int len)
{
PORTClearBits(IOPORT_B, BIT_9);
for(i=0;i<2;i++);//延时使数据传输完后锁存,通常数码管乱码都是这导致的。
PORTSetBits(IOPORT_B, BIT_9);//数据锁存
}
int main()
{
SpiOpenFlags oFlags = SPI_OPEN_MSTEN | SPI_OPEN_CKP_HIGH |
SPI_OPEN_MODE8 | SPI_OPEN_ON;//作为主机, ,8位数据模式,SPI使能
PORTSetPinsDigitalOut(IOPORT_B, BIT_9);//外部移位寄存器数据锁存,1锁存,0开放
SpiChnOpen(2, oFlags,
6);//打开通道2即SDO2,配置SPI,fpbDiv(2~1024).波特率BR=Fpb/fpbDiv
PPSOutput(2, RPB8,
SDO2);//输出针脚组2中,查表将针脚RPB8,作为数据输出2口SDO2.实际连线也是如此
spiout(Led,4);
}
//PPSOutput(2,RPB5,SDO1);//输出针脚组2中,查表将针脚RPB5,作为数据输出1口SDO1.
//也可查数据手册用另一种,以后再说
//查找头文件PPSOUT.h在C:\Program Files
(x86)\Microchip\xc32\v1.21\pic32-libs\include\peripheral
{
#define
OUT_PIN_PPS2_RPA1
#define
OUT_PIN_PPS2_RPB5
#define
OUT_PIN_PPS2_RPB1
#define
OUT_PIN_PPS2_RPB11
#define
OUT_PIN_PPS2_RPB8
#define
OUT_PIN_PPS2_RPA8
#define
OUT_PIN_PPS2_RPC8
#define
OUT_PIN_PPS2_RPA9
//#define
OUT_FN_PPS2_SDO1
//#define
OUT_FN_PPS2_SDO2
//#define
OUT_FN_PPS2_OC2
}
秒表
#include
#pragma config JTAGEN=OFF
#pragma config FPLLIDIV =
DIV_2
#pragma config FPLLMUL = MUL_24
#pragma config FPLLODIV = DIV_2
#pragma config FNOSC =
FRCPLL
#pragma config FPBDIV =
DIV_1
#pragma config FWDTEN = OFF
#pragma POSCMOD = OFF
#define PERIOD
48000
int n=0,sta=0,ledflag=1,butflag=0,i=0,b=0,bit1=0,bit2=0;;
char
//Led 字库
void timer1init()//时钟源1初始化,配置中断等
{
}
void spiinit()//SPI初始化
{
}
void __ISR(_TIMER_1_VECTOR,ipl2) timer(void)//中断函数0.001s一次中断
{
//
}
void buttoninit()//按键初始化
{
//
//
PORTSetPinsDigitalIn(IOPORT_A,BIT_0|BIT_1);//按键电位检测读数据
PORTSetPinsDigitalIn(IOPORT_B,BIT_3|BIT_14);//需将对应的按键针脚位设为数字输入
}
void spiout(char im[])//SPI数据输出函数
{
{
}
PORTSetBits(IOPORT_B, BIT_9);//数据锁存
}
void led(char imag[3])//秒表换算函数
{
image[0]=Led[t[3]];
image[1]=Led[t[2]];
image[2]=Led[t[1]];
image[3]=Led[t[0]];
}
void main()//主函数
{
for(i=0;i<4;i++)
t[i]=0;
t[1]=10;
image[0]=Led[t[3]];
image[1]=Led[t[2]];
image[2]=Led[t[1]];
image[3]=Led[t[0]];
spiout(image);break;
//

1124

被折叠的 条评论
为什么被折叠?



