《c51脉冲测量.doc》由会员分享,可在线阅读,更多相关《c51脉冲测量.doc(3页珍藏版)》请在三一文库上搜索。
1、/*主要程序*/#include#include#includeunsigned char sec=0,num=0;unsigned int k=0;void stimer0()TMOD=0X01;TH0=(-20000)/256;TL0=(-20000)%256;TR0=1;ET0=1;EA=1;void sexint0()IT0=1;EX0=1;EA=1;main()max7219();sexint0();stimer0();while(1) ; void exint0() interrupt 0 k+;void timer0() interrupt 1TH0=(-20000)/256;T
2、L0=(-20000)%256;num+;if(num=50)num=0;sec+;spiwrite(0x06,sec%10);spiwrite(0x05,sec/10);if(sec=5)spiwrite(0x04,k%10);spiwrite(0x03,k%100/10);spiwrite(0x02,k%1000/100);spiwrite(0x01,k/1000);sec=0;/*SPI的初始化程序*/#include#define clrcs P2&=0Xfe#definesetcs P2|=0X01#defineclrclk P2&=0xfd#definesetclk P2|=0x0
3、2#defineclrdate P2&=0xfb#definesetdate P2|=0x04/*void dely(unsigned int ms)unsigned int i,j;for(i=0;ims;i+)for(j=0;j110;j+);*/void spiwrite(unsigned char dt1,unsigned char dt2)unsigned i=0,num=0;clrcs;for(i=0;i8;i+)clrclk;num=dt1;num&=0x80;if(num=0)clrdate;elsesetdate;setclk;dt1*=2;for(i=0;i8;i+)clr
4、clk;num=dt2;num&=0x80;if(num=0)clrdate;elsesetdate;setclk;dt2*=2;setcs;/*MAX7219的初始化*/#includevoid dely(unsigned int ms)unsigned int i,j;for(i=0;ims;i+)for(j=0;j110;j+);void max7219()spiwrite(0x0c,0x00);dely(1000);spiwrite(0x0c,0x01);spiwrite(0x09,0xff);spiwrite(0x0A,0x0f);spiwrite(0x0B,0x05);spiwrite(0x0F,0x01);dely(1000);spiwrite(0x0f,0x00);