已阅读5页,还剩164页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程控滤波源代码1:/*功能:(1)TLV1544采样程序 (2)AD9851产生100200KHz的正弦信号 按键控制正弦信号10KHz步进,LCD显示 (3)AD9851产生40kHz800kHz方波 按键控制方波信号40kHz步进控制max262的时钟 (4)DAC0832转换输出控制(控制AD603的增益控制电压) (5)MAX262滤波器中心频率及品质因数的控制*/ / CodeVisionAVR C Compiler/ (C) 1998-2004 Pavel Haiduc, HP InfoTech S.R.L./ I/O registers definitions for the ATmega128#pragma used+sfrb PINF=0;sfrb PINE=1;sfrb DDRE=2;sfrb PORTE=3;sfrb ADCL=4;sfrb ADCH=5;sfrw ADCW=4; / 16 bit accesssfrb ADCSRA=6;sfrb ADMUX=7;sfrb ACSR=8;sfrb UBRR0L=9;sfrb UCSR0B=0xa;sfrb UCSR0A=0xb;sfrb UDR0=0xc;sfrb SPCR=0xd;sfrb SPSR=0xe;sfrb SPDR=0xf;sfrb PIND=0x10;sfrb DDRD=0x11;sfrb PORTD=0x12;sfrb PINC=0x13;sfrb DDRC=0x14;sfrb PORTC=0x15;sfrb PINB=0x16;sfrb DDRB=0x17;sfrb PORTB=0x18;sfrb PINA=0x19;sfrb DDRA=0x1a;sfrb PORTA=0x1b;sfrb EECR=0x1c;sfrb EEDR=0x1d;sfrb EEARL=0x1e;sfrb EEARH=0x1f;sfrw EEAR=0x1e; / 16 bit accesssfrb SFIOR=0x20;sfrb WDTCR=0x21;sfrb OCDR=0x22;sfrb OCR2=0x23;sfrb TCNT2=0x24;sfrb TCCR2=0x25;sfrb ICR1L=0x26;sfrb ICR1H=0x27;sfrw ICR1=0x26; / 16 bit accesssfrb OCR1BL=0x28;sfrb OCR1BH=0x29;sfrw OCR1B=0x28; / 16 bit accesssfrb OCR1AL=0x2a;sfrb OCR1AH=0x2b;sfrw OCR1A=0x2a; / 16 bit accesssfrb TCNT1L=0x2c;sfrb TCNT1H=0x2d;sfrw TCNT1=0x2c; / 16 bit accesssfrb TCCR1B=0x2e;sfrb TCCR1A=0x2f;sfrb ASSR=0x30;sfrb OCR0=0x31;sfrb TCNT0=0x32;sfrb TCCR0=0x33;sfrb MCUCSR=0x34;sfrb MCUCR=0x35;sfrb TIFR=0x36;sfrb TIMSK=0x37;sfrb EIFR=0x38;sfrb EIMSK=0x39;sfrb EICRB=0x3a;sfrb RAMPZ=0x3b;sfrb XDIV=0x3c;sfrb SPL=0x3d;sfrb SPH=0x3e;sfrb SREG=0x3f;#pragma used-/ Interrupt vectors definitions/ CodeVisionAVR C Compiler/ (C) 1998-2000 Pavel Haiduc, HP InfoTech S.R.L.#pragma used+void delay_us(unsigned int n);void delay_ms(unsigned int n);#pragma used-/* CodeVisionAVR C Compiler Prototypes for standard library functions (C) 1998-2003 Pavel Haiduc, HP InfoTech S.R.L.*/#pragma used+int atoi(char *str);long int atol(char *str);float atof(char *str);void itoa(int n,char *str);void ltoa(long int n,char *str);void ftoa(float n,unsigned char decimals,char *str);void ftoe(float n,unsigned char decimals,char *str);void srand(int seed);int rand(void);void *malloc(unsigned int size);void *calloc(unsigned int num, unsigned int size);void *realloc(void *ptr, unsigned int size); void free(void *ptr);#pragma used-#pragma library stdlib.lib/ CodeVisionAVR C Compiler/ (C) 1998-2005 Pavel Haiduc, HP InfoTech S.R.L./ Prototypes for string functions#pragma used+char *strcat(char *str1,char *str2);char *strcatf(char *str1,char flash *str2);char *strchr(char *str,char c);signed char strcmp(char *str1,char *str2);signed char strcmpf(char *str1,char flash *str2);char *strcpy(char *dest,char *src);char *strcpyf(char *dest,char flash *src);unsigned char strcspn(char *str,char *set);unsigned char strcspnf(char *str,char flash *set);unsigned int strlenf(char flash *str);char *strncat(char *str1,char *str2,unsigned char n);char *strncatf(char *str1,char flash *str2,unsigned char n);signed char strncmp(char *str1,char *str2,unsigned char n);signed char strncmpf(char *str1,char flash *str2,unsigned char n);char *strncpy(char *dest,char *src,unsigned char n);char *strncpyf(char *dest,char flash *src,unsigned char n);char *strpbrk(char *str,char *set);char *strpbrkf(char *str,char flash *set);signed char strpos(char *str,char c);char *strrchr(char *str,char c);char *strrpbrk(char *str,char *set);char *strrpbrkf(char *str,char flash *set);signed char strrpos(char *str,char c);char *strstr(char *str1,char *str2);char *strstrf(char *str1,char flash *str2);unsigned char strspn(char *str,char *set);unsigned char strspnf(char *str,char flash *set);char *strtok(char *str1,char flash *str2); unsigned int strlen(char *str);void *memccpy(void *dest,void *src,char c,unsigned n);void *memchr(void *buf,unsigned char c,unsigned n);signed char memcmp(void *buf1,void *buf2,unsigned n);signed char memcmpf(void *buf1,void flash *buf2,unsigned n);void *memcpy(void *dest,void *src,unsigned n);void *memcpyf(void *dest,void flash *src,unsigned n);void *memmove(void *dest,void *src,unsigned n);void *memset(void *buf,unsigned char c,unsigned n);#pragma used-#pragma library string.lib/* TLV1544驱动程序 CS PG0 DO PG1 DI PG2 CLK PG3 EOC PG4*/ CodeVisionAVR C Compiler/ (C) 1998-2000 Pavel Haiduc, HP InfoTech S.R.L./#include stdlib.h/#define bits2(x) (1x)/*TLV1544初始化*/void init_TLV1544(void) (*(unsigned char *) 0x64)=0X0D; /*按通道读取数据address地址0x00 通道00x02 通道10x04 通道20x06 通道3*/ unsigned int TLV1544(unsigned char address) unsigned char i; unsigned int temp=0; /返回值 (*(unsigned char *) 0x65)|= (10) ; /预先拉高 / FS=0; /预先拉低 (*(unsigned char *) 0x65)&= (13); /预先拉低 (*(unsigned char *) 0x65)&=(10) ; /开始时序 delay_us(2); /* FS=1; /帧同步脉冲 delay_us(2); FS=0; */ for(i=0;i10;i+) /10个时钟 if(i=3) if(address&0x08)=0x08) (*(unsigned char *) 0x65)|= (12) ; else (*(unsigned char *) 0x65)&= (12); address=1; (*(unsigned char *) 0x65)|= (13) ; /上升沿写入数据 if(*(unsigned char *) 0x63)&(11) &0x02)=1) temp=temp|0x01; temp=1; (*(unsigned char *) 0x65)&= (1=1; delay_us(20); while(*(unsigned char *) 0x63)&(14) =0x00); /等待转换结束 (*(unsigned char *) 0x65)|= (1=1;i-) ddsi=fre&255; / freqency为四个字节,将其一一存入到 ddsi fre=fre8; for(i=0;i=1;i-) ddsi=fre&255; / freqency为四个字节,将其一一存入到 ddsi fre=fre8; for(i=0;i5;i+) (*(unsigned char *) 0x62)=ddsi; PORTD.4 =0; PORTD.4 =1; PORTD.4 =0; PORTD.5 =1; delay_us(1); PORTD.5 =0;void ad9851_init(void) DDRC.0 =1; DDRC.1 =1; /设置 DDRD.4 DDRD.5 DDRD.6为输出 DDRD.4 =1; DDRD.5 =1; (*(unsigned char *) 0x61) =0xff; /定义数据口方向 DDRC.2=1; DDRC.2=1; PORTC.2 =1; PORTC.2 =0; DDRD.6=1; DDRD.6=1; PORTD.6=1; PORTD.6=0; delay_ms(10);/*LCD240128在mega128上显示子函数*/*CodeVisionAVR C CompilerPrototypes for mathematical functionsPortions (C) 1998-2001 Pavel Haiduc, HP InfoTech S.R.L.Portions (C) 2000-2001 Yuri G. Salov*/#pragma used+unsigned char cabs(signed char x);unsigned int abs(int x);unsigned long labs(long x);float fabs(float x);signed char cmax(signed char a,signed char b);int max(int a,int b);long lmax(long a,long b);float fmax(float a,float b);signed char cmin(signed char a,signed char b);int min(int a,int b);long lmin(long a,long b);float fmin(float a,float b);signed char csign(signed char x);signed char sign(int x);signed char lsign(long x);signed char fsign(float x);unsigned char isqrt(unsigned int x);unsigned int lsqrt(unsigned long x);float sqrt(float x);float floor(float x);float ceil(float x);float fmod(float x,float y);float modf(float x,float *ipart);float ldexp(float x,int expon);float frexp(float x,int *expon);float exp(float x);float log(float x);float log10(float x);float pow(float x,float y);float sin(float x);float cos(float x);float tan(float x);float sinh(float x);float cosh(float x);float tanh(float x);float asin(float x);float acos(float x);float atan(float x);float atan2(float y,float x);#pragma used-#pragma library math.lib/*写数据*/void Post_Msg(unsigned char Msg) DDRA =0xFF; / C口数据流出 PORTA =Msg; /将值赋给PORTC,输出数据 PORTC.4 =1; /置数据通道 PORTC.5 =0; /选中外设 PORTC.7 =0; delay_us(1); /外地址写数据开始 PORTC.7 =1; /写结束 PORTC.5 =1; /关外设 delay_us(1);/*写命令*/void Post_Com(unsigned char Com) DDRA =0xFF; /C口流出 PORTA =Com; /输出数据 PORTC.4 =0; /置命令通道 PORTC.5 =0; /选中外设 PORTC.7 =0; /外地址写数据开始 delay_us(1); PORTC.7 =1; /写结束 PORTC.5 =1; /关外设 delay_us(1);/*送一帧命令*/void Send_Com(unsigned char Addr,unsigned char Data) Post_Com(Addr); Post_Com(Data);/*定义12h为0xB1为图形图层,程序默认为文字模式 注:进入图形模式前调用Image()进入 注:画图结束调用Image_back()返回文本模式*/void Image(void) Send_Com(0x12,0xB1); /设置REG 12为0xB1,表示数据写入图形图层 Send_Com(0x00,0xC5); /设置为图形模式void Image_back(void) Send_Com(0x12,0xB2); /设置REG 12为0xB,表示数据写入文本图层 Send_Com(0x00,0xCD); /设置为文本模式void Send_Data(unsigned char X,unsigned char Y,unsigned char Data) Send_Com(0x60,X); Send_Com(0x70,Y*8); Post_Msg(Data); /* 读寄存器值 */unsigned char Read_Reg(unsigned char Addr) unsigned char Temp; Post_Com(Addr); PORTA =0xFF; DDRA =0x00; PORTC.4 =0; PORTC.5 =0; PORTC.6 =0; delay_us(1); Temp=PINA ; PORTC.6 =1; PORTC.5 =1; delay_us(1); DDRA =0xFF; return(Temp); /*读一帧数据*/unsigned char Read_Data(unsigned char H,unsigned char L) unsigned char Temp; Send_Com(0x60,H); Send_Com(0x70,L); PORTA =0xFF; DDRA =0x00; PORTC.4 =1; PORTC.5 =0; PORTC.6 =0; delay_us(1); Temp=PINA ; PORTC.6 =1; PORTC.5 =1; DDRA =0xFF; return(Temp); /*清屏函数,将文本层和图形层全清空*/void Clear() Send_Com(0x12,0xB3); /双层同时清屏 Send_Com(0xE0,0x00); Send_Com(0xF0,0xA8); void ClearImage() Send_Com(0x12,0xB1); /图形图层清屏 Send_Com(0xE0,0x00); Send_Com(0xF0,0xA8);void ClearText() Send_Com(0x12,0xB2); /清屏文本图层 Send_Com(0xE0,0x00); Send_Com(0xF0,0xA8);/*此函数用于显示汉字,daxiao为0时表示初始大小16*16为1放大一倍,为2放大两倍,最大为3显示为64*64H表示横向偏移028,L表示纵向偏移07*/void Chinese(unsigned char X,unsigned char Y,unsigned char daxiao, unsigned char *p) daxiao=daxiao*5; daxiao=daxiao0) Post_Msg(*p); delay_us(50); p+; PORTC.5 =1; /* 此函数用于显示单个字母,daxiao为0时表示初始大小16*16 为1放大一倍,为2放大两倍,最大为3显示为64*64H表示横向偏移029,L表示纵向偏移014 */void Word(unsigned char H,unsigned char L,unsigned char daxiao,unsigned char p) daxiao=daxiao*5; daxiao=daxiao0) Post_Msg(*Text); Text+; delay_us(5); /*显示字符串,包括中文字符,可混合中英文即符号 /注:自己加的X0:列设置(0-29) Y0:行设置(0-15)*/void Show_text1(unsigned char H,unsigned char L,unsigned char *Text) Send_Com(0x12,0xB1); /自己加的 Send_Com(0x60,H); Send_Com(0x70,L*16); Send_Com(0xf0,0xa0); /进入ASII表0 while(*Text)0) Post_Msg(*Text); Text+; delay_us(5); /*显示单个数字*/void Show_num(unsigned char H,unsigned char L,unsigned char Num) Send_Com(0xF0,0xA0); /进入ASCII区块0 Send_Com(0x60,H); Send_Com(0x70,L*8); Post_Msg(Num+48);/* Num代表符号在ASCII区块0的编号 */void New_Show(unsigned char H,unsigned char L,unsigned char Num) Send_Com(0xF0,0xA0); /进入ASCII区块0 Send_Com(0x60,H); Send_Com(0x70,L*8); /8改为了16 Post_Msg(Num);/* Num代表符号在ASCII区块0的编号 注:自己加的 */void New_Show1(unsigned char H,unsigned char L,unsigned char Num) Send_Com(0x12,0xB1); Send_Com(0xF0,0xA0); /进入ASCII区块0 Send_Com(0x60,H); Send_Com(0x70,L*8); /8改为了16 Post_Msg(Num);/*显示浮点数 */void Show_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南省农业信贷融资担保有限公司员工招聘笔试历年备考题库附带答案详解试卷2套
- 基于大规模预训练模型的多模态自然语言处理研究-洞察及研究
- 集成电路关键工艺材料生产线项目社会稳定风险评估报告
- 物流管理信息系统建设与优化方案
- 建筑结构抗震性能分析
- 2024年南充环境集团有限责任公司员工招聘真题
- 2025年工业互联网平台数据价值评估方法研究报告
- 行政法机考重点题型解析
- 企业供应商管理规范与考核办法
- 2026年电视广告合作协议
- 城市与文化遗产智慧树知到期末考试答案2024年
- 职业环境和行业分析
- 《分子束外延》课件
- 四年级【道德与法治】变废为宝有妙招(第一课时)2课件
- 浙江凯美餐饮设备有限公司年产20万台商用制冷设备项目环境影响报告表
- 旅游前台接待管理制度
- 小班水果与种子课件
- 小规模纳税人与一般增值税纳税人区别
- 非因工伤病劳动能力鉴定申请表
- 危大工程全面判定表
- 安全生产管理机构设置和人员配备制度
评论
0/150
提交评论