为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

分贝测试仪

2017-09-02 11页 doc 28KB 49阅读

用户头像

is_882336

暂无简介

举报
分贝测试仪分贝测试仪 #include #include "display_share.h" #include "ad.h" void DelayMS(UINT iMs); //按键初始化 void PortInit() { P1DIR |= BIT5 + BIT6 + BIT7; P1SEL |= BIT1; P1SEL2|= BIT1; } //初始化AD void ad10_Init() { ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, ...
分贝测试仪
分贝测试仪 #include #include "display_share.h" #include "ad.h" void DelayMS(UINT iMs); //按键初始化 void PortInit() { P1DIR |= BIT5 + BIT6 + BIT7; P1SEL |= BIT1; P1SEL2|= BIT1; } //初始化AD void ad10_Init() { ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled ADC10CTL1 = INCH_1; // input A1 ADC10AE0 |= BIT1; // PA.1 ADC option select } //显示 void disp() { UCHAR i; _DINT(); //禁用中断 adget1[0] = adget/10000%10; adget1[1] = adget/1000%10; adget1[2] = adget/100%10; adget1[3] = adget/10%10; adget1[4] = adget/10%10; adget1[5] = adget/2%10; for(i=0;i<3;i++) { display(i+1,adget1[i],0); } display(4,adget1[3],1); //小数点 display(5,adget1[4],0); display(6,adget1[5],0); _EINT(); } //主程序 void main(void) { WDTCTL = WDTPW + WDTHOLD; //关狗 PortInit(); ad10_Init(); Ht1621Clr(); //清屏 Ht1621_Init(); _EINT(); //使能中断 while(1) { DelayMS(100); adget = ADC10MEM; disp(); // ADC10CTL0 &=~(ENC + ADC10SC); _NOP(); _NOP(); _NOP(); ADC10CTL0 |= ENC + ADC10SC; LPM0; } } #pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR(void) { ADC10CTL0 &=~(ENC + ADC10SC); LPM0_EXIT; } #ifndef DISPLAY_SHARE_H_ #define DISPLAY_SHARE_H_ void Ht1621_Init(void); void display(unsigned char site,unsigned char num,unsigned char dian); void Ht1621Clr(); #endif /* DISPLAY_SHARE_H_ */ #ifndef DISPLAY_H_ #define DISPLAY_H_ typedef unsigned char UCHAR; typedef unsigned int UINT; //HT1621控制位(液晶模块接口定义,根据自已的需要更改) #define HT1621_DAT1 P1OUT |= BIT7 //HT1621数据引脚 #define HT1621_DAT0 P1OUT &=~BIT7 #define HT1621_WR1 P1OUT |= BIT6 //HT1621时钟引脚 #define HT1621_WR0 P1OUT &=~BIT6 #define HT1621_CS1 P1OUT |= BIT5 //HT1621使能引脚 #define HT1621_CS0 P1OUT &=~BIT5 #define BIAS 0x52 //0b1000 0101 0010 1/3duty 4com #define SYSDIS 0X00 //0b1000 0000 0000 关振系统荡器和LCD偏压发生器 #define SYSEN 0X02 //0b1000 0000 0010 打开系统振荡器 #define LCDOFF 0X04 //0b1000 0000 0100 关LCD偏压 #define LCDON 0X06 //0b1000 0000 0110 打开LCD偏压 #define XTAL 0x28 //0b1000 0010 1000 外部接时钟 #define RC256 0X30 //0b1000 0011 0000 内部时钟 #define TONEON 0X12 //0b1000 0001 0010 打开声音输出 #define TONEOFF 0X10 //0b1000 0001 0000 关闭声音输出 #define WDTDIS 0X0A //0b1000 0000 1010 禁止看门狗 UCHAR Ht1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00}; UCHAR Ht1621CLR[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00}; UCHAR SEG_7[10][2]= { 0xc4,0xc8,//00 就是 SEG_7[0][0]; SEG_7[0][1]; SEG_7[i][0]; SEG_7[i][1]; 所以调用的时候直接调用:SEG_7[i][0]; SEG_7[i][1] 0x04,0x40,//01 就是 SEG_7[1][0]; SEG_7[1][1]; 0x4c,0x88,//02就是 SEG_7[2][0]; SEG_7[2][1]; 0x4c,0x48,//03 0x8c,0x40,//04 0xc8,0x48,//05 0xc8,0xc8,//06 0x44,0x40,//07 0xcc,0xc8,//08 0xcc,0x48,//09 }; #endif #include #include "display.h" #include "display_share.h" /******************************************* 功 能:延时微秒级 ********************************************/ void Delay(UCHAR us) //5,7,9 { while(us--) { __delay_cycles(1); } } /******************************************* 功 能:延时毫秒级 ********************************************/ void DelayMS(UINT iMs) { while(iMs--) { __delay_cycles(1000); } } /****************************************************** 功 能:写数据函数,cnt为传送数据位数,数据传送为低位在前 *******************************************************/ void Ht1621Wr_Data(UCHAR Data,UCHAR cnt) { UCHAR i; for (i=0;i参数
说明:Addr为写入初始地址,Data为写入数据 ********************************************************/ void Ht1621WrOneData(UCHAR Addr,UCHAR Data) { HT1621_CS0; Ht1621Wr_Data(0xa0,3); //写入数据标志101 Ht1621Wr_Data(Addr<<2,6); //写入地址数据 Ht1621Wr_Data(Data<<4,4); //写入数据 HT1621_CS1;; Delay(2); } /******************************************************** 功能描述: HT1621连续写入方式函数 参数说明:Addr为写入初始地址,*p为连续写入数据指针, ********************************************************/ void Ht1621WrAllData(UCHAR Addr,UCHAR *p,UCHAR cnt) { UCHAR i; HT1621_CS0; Ht1621Wr_Data(0xa0,3); //写入数据标志101 Ht1621Wr_Data(Addr<<2,6); //写入地址数据 for (i=0;i
/
本文档为【分贝测试仪】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索