您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 山东大学单片机实验-(实验7)
信息科学与工程学院2016-2017学年第二学期实验报告课程名称:单片机原理与应用实验名称:3.8ADC0808/9信号采集实验山东大学·微处理器原理与应用·实验报告-1-实验报告【实验题目】本实验利用LCD1602和AD0808实现简单的交流信号过零检测与频率分析。要求信号幅度变化时(满量程的5%~95%),不影响检测的结果。频率检测的结果通过LCD1602的第1行显示出来,信号过零时,能够通过P2.6输出一个脉冲宽度为5微秒的脉冲信号。【实验要求】1.编写源程序并进行必要的注释;2.记录实验过程;3.记录程序运行结果;【实验过程及结果记录】自我完成实验A.电路图山东大学·微处理器原理与应用·实验报告-2-B.运行结果频率监测山东大学·微处理器原理与应用·实验报告-3-过零检测【实验源程序】#includereg51.h#includeintrins.h#defineuintunsignedint#defineucharunsignedcharsbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EN=P2^2;sbitAD_CLK=P2^3;sbitStart=P2^4;sbitOE=P2^5;山东大学·微处理器原理与应用·实验报告-4-sbitOut_pulse=P2^6;sbitEOC=P2^7;uchartx50=0;ucharf=0;uchardate,lastdate,ge,shi;voiddelay_ms(uintxms){uinti,j;for(i=xms;i0;i--){for(j=110;j0;j--);}}bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P1&0x80);LCD_EN=0;returnresult;}voidlcd_wcmd(ucharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();山东大学·微处理器原理与应用·实验报告-5-_nop_();P1=cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}voidlcd_clr(){lcd_wcmd(0x01);delay_ms(2);}voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P1=dat;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();山东大学·微处理器原理与应用·实验报告-6-_nop_();_nop_();LCD_EN=0;}voidlcd_init()//初始化子程序{delay_ms(15);lcd_wcmd(0x38);//8位数据总线,显示2行,5*7点阵delay_ms(5);lcd_wcmd(0x0c);//显示开,关光标,不闪烁delay_ms(5);lcd_wcmd(0x06);//进入模式设置指令中,地址自动增加delay_ms(5);lcd_wcmd(0x01);//清楚LCD显示内容delay_ms(5);}voids_timer0()interrupt1{TH0=0x3c;TL0=0xb0;tx50=tx50+1;if(tx50==20){TR0=0;tx50=0;f=f/2;shi=f/10;shi=shi+'0';ge=f%10;ge=ge+'0';lcd_wcmd(0x80);lcd_wdat('F');delay_ms(5);lcd_wdat('=');山东大学·微处理器原理与应用·实验报告-7-delay_ms(5);lcd_wdat(shi);delay_ms(5);lcd_wdat(ge);delay_ms(5);lcd_wdat('H');delay_ms(5);lcd_wdat('z');f=0;TR0=1;}}voids_timer1()interrupt3{AD_CLK=~AD_CLK;}voidmain(){delay_ms(10);lcd_init();lcd_clr();delay_ms(2);TMOD=0x21;TH1=0xfd;TL1=0xfd;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1){山东大学·微处理器原理与应用·实验报告-8-Start=1;Start=0;while(EOC!=1);OE=1;P0=0xff;lastdate=date;date=P0;OE=0;if(((lastdate128)&&(date=128))||((lastdate=128)&&(date128))){f++;Out_pulse=1;_nop_();_nop_();_nop_();_nop_();Out_pulse=0;}}}
本文标题:山东大学单片机实验-(实验7)
链接地址:https://www.777doc.com/doc-6722644 .html