资源描述:
《msp430g2553频率计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Msp430g2553写的频率计,用外部中断做的,精度不错包含主文件和12864串行显示文件作者:armahc#include"msp430g2553.h"#include"chuandis.h"#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlongconstuchartitle[15]={"Frequencymeter"};constucharzifu[10]={"0123456789"};ucharmod=1,flag=0,f
2、lag2=0,over=0;uchark=0,biao=0;ulongtcount0=0,count0=0;ulongdata[20]={0};doubletime=0,fre=0,tcount1=0,count1=0;voidclock_init(){uinti=0;if(CALBC1_16MHZ==0xFF
3、
4、CALDCO_16MHZ==0xFF){while(1);}BCSCTL1
5、=CALBC1_16MHZ;DCOCTL
6、=CALDCO_16MHZ;for(i=0;i<65535;i++);_delay_c
7、ycles(100);BCSCTL2
8、=SELM_0;BCSCTL2
9、=DIVS_0;_delay_cycles(100);}voiddis0(){uchari=0;lcd_pos(1,0);for(i=0;i<15;i++){write_dat(title[i]);}lcd_pos(2,0);write_dat('f');write_dat(':');lcd_pos(3,0);write_dat('t');write_dat(':');}voiddisf(){ulongfredis=0;fredis=fre;lc
10、d_pos(2,1);if(fredis>=100000000)write_dat(zifu[fredis/100000000%10]);elsewrite_dat('');if(fredis>=10000000)write_dat(zifu[fredis/10000000%10]);elsewrite_dat('');if(fredis>=1000000)write_dat(zifu[fredis/1000000%10]);elsewrite_dat('');if(fredis>=100000)write_dat
11、(zifu[fredis/100000%10]);elsewrite_dat('');if(fredis>=10000)write_dat(zifu[fredis/10000%10]);elsewrite_dat('');write_dat(zifu[fredis/1000%10]);write_dat('.');write_dat(zifu[fredis/100%10]);write_dat(zifu[fredis/10%10]);write_dat(zifu[fredis%10]);write_dat('H')
12、;write_dat('z');}voiddist(){ulongtdis=0;tdis=time;lcd_pos(3,1);if(tdis>=1000000)write_dat(zifu[tdis/1000000%10]);elsewrite_dat('');if(tdis>=100000)write_dat(zifu[tdis/100000%10]);elsewrite_dat('');if(tdis>=10000)write_dat(zifu[tdis/10000%10]);elsewrite_dat('')
13、;write_dat(zifu[tdis/1000%10]);write_dat('.');write_dat(zifu[tdis/100%10]);write_dat(zifu[tdis/10%10]);write_dat(zifu[tdis%10]);write_dat('m');write_dat('s');}voidio_init(){P2DIR
14、=BIT4+BIT5;_delay_cycles(10);P1DIR&=~BIT0;P1REN
15、=BIT0;P1OUT
16、=BIT0;_delay_cycles(1
17、0);P2DIR&=~BIT0;P2REN
18、=BIT0;P2OUT
19、=BIT0;_delay_cycles(10);P2IES
20、=BIT0;P2IFG&=~BIT0;P2IE
21、=BIT0;_delay_cycles(10);P1IES&=~BIT0;P1IFG&=~BIT0;_delay_cycles(10);}doubleaver(ulongct){uch