噪声监测C程序.doc_第1页
噪声监测C程序.doc_第2页
噪声监测C程序.doc_第3页
噪声监测C程序.doc_第4页
噪声监测C程序.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

整个程序分为2部分,主体为噪声监测,另外有1602显示驱动(一)1602.c/*文件名:lcd1602简要描述: lcd初始化:void lcd_init() lcd写指令:void lcd_w_cmd(uchar cmd) lcd写数据:void lcd_w_data(uchar dat) lcd显示位置设置:void lcd_show_set(uchar num)编写者:修改记录:*/#include #include #include lcd1602.h#define uint unsigned int#define uchar unsigned charsbit lcden=P17;sbit lcdwr=P16;sbit lcdrs=P15;uchar lcd_busy() uchar result; lcdrs = 0; lcdwr = 1; _nop_(); lcden = 1; _nop_(); result = (uchar)(P0 & 0x80); lcden = 0; return result;void lcd_w_cmd(uchar cmd) while(lcd_busy(); lcdrs=0; lcdwr=0; lcden=0; P0=cmd; _nop_(); lcden=1; _nop_(); lcden=0; lcdrs=1;void lcd_w_data(uchar dat) while(lcd_busy(); lcdrs=1; lcdwr=0; lcden=0; P0=dat; _nop_(); lcden=1; _nop_(); lcden=0; lcdrs=1;void lcd_show_set(uchar num) lcd_w_cmd(0x80|num);/0-27H,40H-67Hvoid lcd_init() lcd_w_cmd(0x38); _nop_(); lcd_w_cmd(0x0f); _nop_(); lcd_w_cmd(0x06); _nop_(); lcd_w_cmd(0x01); _nop_();(二)噪声监测Noise.c#include #include lcd1602.h#include alldelay.htypedef unsigned char uchar;typedef unsigned char uint;/unsigned char welcome=welcome!;unsigned char Show06=Noise:;unsigned char Show15=dB;unsigned int code Countnum66=11, 13, 15, 17, 19, 22, 24, 27, 31, 34, 39, 44, 49, 55, 62, 69, 78, 87, 98, 110, 123, 138, 155, 174, 195, 219, 246, 276, 309, 347, 390, 438, 491, 550, 618, 693, 778, 873, 979, 1099, 1233,1383,1552,1742,1954,2193,2460,2760,3097,3475, 3899,4375,4909,5508,6180,6934,7780,8729,9794,10989,;unsigned char code dB602=31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60, 61,62,63,64,65,66,67,68,69,70, 71,72,73,74,75,76,77,78,79,80, 81,82,83,84,85,86,87,88,89,90,;/全局变量/uint count;uchar t;/函数声明/ /主函数/void main(void)uint m,n; uint i; long_delay(10000); EA=0; ET1=0; TMOD=0X15; TH0=0; TL0=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; lcd_init();delay_ms(10);lcd_show_set(0x05);for(i=0; i8; i+)lcd_w_data(welcomei); delay_ms(5); long_delay(30000); long_delay(30000);lcd_w_cmd(0x01); delay_ms(50); lcd_show_set(0x00); delay_ms(50);for(i=0; i6; i+)lcd_w_data(Show0i); delay_ms(5); lcd_show_set(0x4a); lcd_w_cmd(0x0d); delay_ms(50); for(i=0; iCountnumi) i+; m=i; for(n=0; n2; n+) lcd_w_data(dBmn); delay_ms(5); void Timer1() interrupt 3 TR1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; t+; if(t=20) t=0; TR0=0; count=(TH0*256+TL0); TH0=0; TL0=0; TR0=1; TR1=1;涉及到的延时程序在Alldelay.c文件中/*功能:延时函数*/void long_delay(unsigned int s)/长延时 unsigned int i; for(i=0; is; i+); for(i=0; is; i+);void delay_ms(unsigned char ms)/ MS延时unsigned char k; whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论