国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)

這篇具有很好參考價值的文章主要介紹了山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、實(shí)驗(yàn)題目

二、實(shí)驗(yàn)要求

三、實(shí)驗(yàn)過程及結(jié)果分析

四、實(shí)驗(yàn)流程圖

五、實(shí)驗(yàn)源代碼


一、實(shí)驗(yàn)題目

3.8 ADC0808信號采集實(shí)驗(yàn)

二、實(shí)驗(yàn)要求

1、畫出實(shí)驗(yàn)的流程圖

2、編寫源程序并進(jìn)行注釋

3、記錄實(shí)驗(yàn)過程

4、記錄程序運(yùn)行結(jié)果截圖

三、實(shí)驗(yàn)過程及結(jié)果分析

利用LCD1602和AD0808實(shí)現(xiàn)簡單的交流信號過零檢測與頻率分析。要求信號幅度變化時(滿量程的5%—95%),不影響檢測到結(jié)果。頻率檢測的結(jié)果通過LCD1602的第一行顯示出來,信號過零時,能夠通過P2.6輸出一個脈沖寬度為5μs的脈沖信號。

1. 根據(jù)上述實(shí)驗(yàn)內(nèi)容,在Proteus 環(huán)境下建立圖1所示原理圖,并將其保存為ADC0808_self.DSN 文件。

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)

圖1:實(shí)驗(yàn)電路圖?

2. 編寫源程序,將其保存為ADC0808_self.c,運(yùn)行Keil開發(fā)環(huán)境,建立工程ADC0808_self.uV2,CPU 為AT89C51,包含啟動文件STARTUP.A51。

3. 將C 語言源程序ADC0808_self.c 加入工程ADC0808_self.uV2,并設(shè)置工程ADC0808_self.uV2 屬性,將其晶振頻率設(shè)置為12MHz,選擇輸出可執(zhí)行文件,仿真方式為選擇硬仿真,并選擇其中的“PROTEUS VSM MONITOR 51 DRIVER”仿真器。

4.構(gòu)造(Build)工程ADC0808_self.uV2。如果輸入有誤進(jìn)行修改,直至構(gòu)造正確,生成可執(zhí)行程序ADC0808_self.hex 為止。為AT89C51 設(shè)置可執(zhí)行程序ADC0808_self.hex。

5. 運(yùn)行程序,觀察計算結(jié)果,并驗(yàn)證其是否正確。改變RV1 的抽頭位置,從而改變輸入信號的幅值,觀察計算結(jié)果是否正確。更改信號發(fā)射器的頻率,再次驗(yàn)證其功能是否正確。(注意:因?yàn)槭擒浄抡?,所以信號采集的速度受到限制,因此所輸入的交流信號頻率也不能太高,可以在200Hz以內(nèi)嘗試)。

實(shí)驗(yàn)結(jié)果如下:

1)將電位器至于滿量程的90%,此時信號的幅值就是最大值的90%

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)

圖2:電位器調(diào)整到滿量程的90%

2)將電位器至于滿量程的50%,此時信號的幅值為最大值的一半

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)

圖3:電位器調(diào)整到滿量程的50%

3)電位器調(diào)整到滿量程的10%,此時信號的幅值為最大值的10%

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)

圖4:電位器調(diào)整到滿量程的10%

四、實(shí)驗(yàn)流程圖

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)

圖5:實(shí)驗(yàn)流程圖

????????LCD1602的控制方法按3.7節(jié)所示方法進(jìn)行ADC0808的控制方法按3.8.1所示方法進(jìn)行。這里主要是過零點(diǎn)的檢測方法如何實(shí)現(xiàn)。不能采用判斷所采集到的數(shù)據(jù)是否為 0 的方法來實(shí)現(xiàn),因?yàn)槟愕牟杉瘯r刻不一定能夠嚴(yán)格對準(zhǔn)過零時刻。但是,我們注意到在 0 點(diǎn)的兩邊信號的極性是發(fā)生變化的,我們可以利用這一特點(diǎn)來實(shí)現(xiàn)過零檢測。正弦波每個周期有兩個過零點(diǎn),因此,1s 內(nèi)過零次數(shù)除以 2 就是信號的頻率。

????????因此,在程序中可以這樣實(shí)現(xiàn)。當(dāng)每次采集到一個新的數(shù)據(jù)之后都要看一下這個數(shù)據(jù)是正數(shù)還是負(fù)數(shù)。當(dāng)這個數(shù)大于 128 時是正數(shù),當(dāng)它小于 128 時是負(fù)數(shù)。判斷當(dāng)前數(shù)據(jù)的正負(fù)極性和上一個數(shù)據(jù)的正負(fù)極性是否一致,如果不一致,則說明經(jīng)過了一次過零點(diǎn),將其記錄入次數(shù)計數(shù)器。

????????ADC0808 的 CLK 仍然用定時器 T1 來實(shí)現(xiàn),可以將其設(shè)置為 50kHz(硬件實(shí)現(xiàn)時可以更高,軟件仿真再高將難以實(shí)現(xiàn))。利用定時器 T0 實(shí)現(xiàn) 50ms 定時,并配合軟件實(shí)現(xiàn) 1s 鐘定時。采用 12M 晶振時,T0 采用方式 1,則處置應(yīng)為(TH0=0x3C,TL0=0xB0)。

????????但是,由于中斷處理函數(shù)需要一定的響應(yīng)時間,因此這個參數(shù)只是理論計算結(jié)果,要根據(jù)實(shí)測情況稍作調(diào)整。 同樣 T1 理論計算值和實(shí)際輸出值可能也會有一定的差距,也要進(jìn)行調(diào)整。

五、實(shí)驗(yàn)源代碼

#include "reg51.h"    //  單片機(jī)寄存器頭文件
#include "intrins.h"  // _ nop_()等函數(shù)定義的頭文件
sbit LCD_RS=P2^0;  //寄存器選擇位,將RS位定義為P2.0引腳
sbit LCD_RW=P2^1; // 讀寫選擇位,將RW位定義為P2.1引腳
sbit E=P2^2;     //使能信號位,將E位定義為P2.2引腳
sbit BF=P1^7;    // P0.7為忙碌標(biāo)志位

sbit CLK=P2^3;   // 設(shè)置時鐘端口
sbit start=P2^4; 
sbit oe=P2^5;  
sbit eoc=P2^7; 

sbit out_pulse=P2^6;  // P2^6端口輸出5us脈沖

sbit p30=P3^0; 
#define uchar unsigned char
#define uint unsigned int

uchar n=0;
uchar flag=0; 

void delay1ms()// 定義延時1ms函數(shù)
{
   		unsigned char i,j;	
	 	for(i=0;i<10;i++)
	  	for(j=0;j<33;j++);		 
 }

 void delay(unsigned int n)	//定義延時nms函數(shù)
 {
   	unsigned int i;
	for(i=0;i<n;i++)
	delay1ms();
 }

 bit BusyTest(void) //檢查子程序,為1時繁忙,為0時不忙
  {
    	bit result;
		LCD_RS=0;       
    	LCD_RW=1;
    	E=1;       
    	_nop_();   
    	_nop_();
    	_nop_(); 
   		_nop_();   
    	result=BF;  
		E=0;
    	return result;
  }


void Write_com (uchar cmd)		//寫命令子程序
{   
    while(BusyTest()==1); 
	 LCD_RS=0;             
	 LCD_RW=0;       // RS/RW都是0的時,寫指令
	 E=0;                  
                             
	 _nop_();
	 _nop_();            
	 P1=cmd;   // 寫指令操作   
	 _nop_();//運(yùn)行一個機(jī)器周期
	 _nop_();  
	 _nop_();
	 _nop_();               
	 E=1;                   
	 _nop_();
	 _nop_();
	 _nop_();
	 _nop_();               
	  E=0;  // E由高跳低寫入
 }


 void WriteAddress(unsigned char x)
 {
     Write_com(x|0x80); //顯示位置為"80H+地址碼x"	
 }



 void WriteData(unsigned char y)   //寫數(shù)據(jù)子程序
 {
    while(BusyTest()==1);  
	  LCD_RS=1; 
	  LCD_RW=0;
	  E=0;            
                      
	  P1=y;   // 執(zhí)行操作
	  _nop_(); //運(yùn)行一個機(jī)器周期
	  _nop_();
 	  _nop_();
    	nop_();     
	  E=1;         
	  _nop_(); 
	  _nop_();
	  _nop_();
	  _nop_();       
	  E=0;         
 }

void LcdInt(void) //初始化LCD
{
   	delay(15);  // 延時15ms,讓電源穩(wěn)定
   	Write_com(0x38);  //設(shè)置顯示,即16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口
	delay(5);   //延時5ms 
	Write_com(0x0c);  //設(shè)置顯示:顯示開,有光標(biāo),光標(biāo)閃爍
	delay(5);
	Write_com(0x06);  D=1,S=0地址自加1
	delay(5);											  
	Write_com(0x01);  // 清屏幕操作
	delay(5);
 }
void sysinit()			   //系統(tǒng)初始化
{                             
	TMOD = 0x21;  //  設(shè)定定時器T1工作方式為自動重裝8位計數(shù)器,T0工作方式為方式1(16位計數(shù)器)
	TH1=0xfd;  //利用中斷產(chǎn)生CLK信號
	TL1=0xfd;  

	EA=1;     //開總中斷  	
	ET1=1;  	//T1中斷允許
	TR1=1;     //啟動定時器T1

	TH0=0x45;    // 置初值
	TL0=0x00;  //50MS定時	
	ET0=1;	 //T0中斷允許
	TR0=1;	 //啟動定時器T0
	start=0;  //A/D轉(zhuǎn)換啟動信號起始為0
	oe=0;   //數(shù)據(jù)輸出允許信號起始為0
}

void t0(void) interrupt 1	//T0中斷服務(wù)程序
{
	ET0=0;     // 關(guān)中斷
	TH0=0X45;  
	TL0=0X00; 
	n++;
	if(n==20) {flag=1;n=0;}		 //循環(huán)20次,即完成1S定時
	
	ET0=1;						//開T0中斷允許
	
}
void t1(void) interrupt 3		// 定時器T1中斷服務(wù)程序
{
	ET1=0;    // 關(guān)閉中斷
	CLK=~CLK;  // 每中斷一次,取上一次clk信號的反,如此便產(chǎn)生了50KHz的周期性方波信號
	ET1=1;    //開啟中斷
}
unsigned char adc()//數(shù)據(jù)采集子程序
{
   unsigned  char  Temp;
   start=1;
   start=0;  //啟動信號
   while (!eoc); // A/D轉(zhuǎn)換結(jié)束信號,0代表轉(zhuǎn)換完成,可以輸出
   P0=0xff; // 讀之前先寫入1 
   oe=1;	
   Temp=P0; //讀取采集數(shù)據(jù)
   oe=0;
   return(Temp); 
}

void display(uint a)//顯示子函數(shù)
{
	uint bai,shi,ge;
	bai=a/100;
	shi=(a-bai*100)/10;
	ge=a%10;
	WriteAddress(2);
	WriteData(0x30+bai);    //顯示百位
	WriteData(0x30+shi);     //顯示十位
	WriteData(0x30+ge);     //顯示個位
}
void main()    // 定義主程序
{
	uint temp1,temp2;
	uchar f=0;
	LcdInt();
	delay(5);
	sysinit();
	CLK=0;
	WriteAddress(0); //從第0行開始顯示
	WriteData('f');   //顯示 f ; 等
	WriteData(':');  
	WriteAddress(5);     //從第5行開始顯示
	WriteData('H');	    //顯示H
	WriteData('z');      //顯示z
	while(1)           //一直循環(huán)
	{		
		temp2=temp1;
		temp1=adc();//ad采集
		if(((temp1>=128)&&(temp2<=128))||((temp1<=128)&&(temp2>=128)))	//過零時兩次采集極性相反
		{
			f++;
			out_pulse=1;   //過零時輸出脈沖信號
			_nop_();	   //運(yùn)行一個機(jī)器周期
			_nop_();
			_nop_();
			_nop_();
			_nop_();
			out_pulse=0;     //產(chǎn)生5us的脈沖信號
		}
		if(flag==1)      //1s后計算頻率
		{
			flag=0;     // 標(biāo)志位清0
			f=f/2;     // 一個周期兩次過零點(diǎn)
			display(f);     //顯示頻率
			f=0;
		}
	}
}

受于文本原因,本文相關(guān)實(shí)驗(yàn)工程無法展示出來,現(xiàn)已將資源上傳,可自行下載。

山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn)工程文件3.8ADC0808/9信號采集實(shí)驗(yàn)-單片機(jī)文檔類資源-CSDN下載山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn)工程文件3.8ADC0808/9信號采集實(shí)驗(yàn)詳解博客地址:http更多下載資源、學(xué)習(xí)資料請訪問CSDN下載頻道.https://download.csdn.net/download/m0_52316372/85926174文章來源地址http://www.zghlxwxcb.cn/news/detail-466981.html

到了這里,關(guān)于山東大學(xué)單片機(jī)原理與應(yīng)用實(shí)驗(yàn) 3.8 ADC0808/9信號采集實(shí)驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 山東大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院程序設(shè)計思維與實(shí)踐作業(yè) week8-圖和樹的性質(zhì)與應(yīng)用(下)

    山東大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院程序設(shè)計思維與實(shí)踐作業(yè) 山大程序設(shè)計思維與實(shí)踐作業(yè) sdu程序設(shè)計思維與實(shí)踐 山東大學(xué)程序設(shè)計思維實(shí)踐作業(yè)H8 山大程序設(shè)計思維實(shí)踐作業(yè)H8 山東大學(xué)程序設(shè)計思維與實(shí)踐 week8-圖和樹的性質(zhì)與應(yīng)用(下) 相關(guān)資料:GitHub 問題描述 現(xiàn)在有一個長

    2023年04月25日
    瀏覽(80)
  • 山東大學(xué)增強(qiáng)現(xiàn)實(shí)實(shí)驗(yàn)四

    山東大學(xué)增強(qiáng)現(xiàn)實(shí)實(shí)驗(yàn)四

    注意:本人尚處在opencv的入門學(xué)習(xí)階段,本博客僅為個人學(xué)習(xí)筆記見解,如有不當(dāng),歡迎指出 (實(shí)驗(yàn)/理論)平面標(biāo)志物的視覺跟蹤,要求: 選擇一個標(biāo)志物,可以是人工標(biāo)志物,也可以是自然標(biāo)志物;實(shí)現(xiàn)和實(shí)驗(yàn)二相同的效果。 用手機(jī)或攝像頭拍攝標(biāo)志物的影像,建議讀取視

    2024年02月08日
    瀏覽(77)
  • 2021山東大學(xué)眾智期末復(fù)習(xí)筆記

    2021山東大學(xué)眾智期末復(fù)習(xí)筆記

    目錄 社交網(wǎng)絡(luò) 同質(zhì)性 正負(fù)關(guān)系 小世界 搜索引擎 博弈論 市場 權(quán)力 從眾 新事物的擴(kuò)散 信息不對稱 流?病和線粒體夏娃 強(qiáng)連通圖:有向圖G中,任意兩點(diǎn)可以相互到達(dá)。 有向圖的強(qiáng)連通分量:有向圖中的極大強(qiáng)連通子圖。 三元閉包:如果兩個互不相識的人有了一個共同的朋

    2023年04月08日
    瀏覽(33)
  • 山東大學(xué)計算機(jī)網(wǎng)絡(luò)期末

    山東大學(xué)計算機(jī)網(wǎng)絡(luò)期末

    內(nèi)容僅供參考。如有錯誤之處,敬請指正! 第一章 概述 第二章 物理層 第三章 數(shù)據(jù)鏈路層 第四章 介質(zhì)訪問子層 第五章 網(wǎng)絡(luò)層 第六章 傳輸層 第七章 應(yīng)用層 1.基本概念 計算機(jī)網(wǎng)絡(luò)定義: 表示一組通過單一技術(shù)相互連接起來的自主計算機(jī)集合。 分布式系統(tǒng): 是建立在網(wǎng)絡(luò)

    2024年02月03日
    瀏覽(25)
  • 整數(shù)序列(山東大學(xué)考研機(jī)試題)

    整數(shù)序列(山東大學(xué)考研機(jī)試題)

    題目鏈接:3717. 整數(shù)序列 - AcWing題庫

    2024年02月13日
    瀏覽(26)
  • 山東大學(xué)數(shù)字圖像處理實(shí)驗(yàn)(一)

    山東大學(xué)數(shù)字圖像處理實(shí)驗(yàn)(一)

    題目:加載并顯示圖像 imread 函數(shù)原型為 imread(const string filename, int flags=1) 這里的 filename 需要的是圖像的路徑。該函數(shù)從文件中加載圖像并返回一個矩陣,如果圖像不能被讀取,則返回一個空的矩陣 這里介紹一下不同 flag 的效果 flag=-1 :8位深度,原通道 flag=0 :8位深度,

    2024年02月06日
    瀏覽(17)
  • 【山東大學(xué)】web數(shù)據(jù)管理——復(fù)習(xí)筆記

    【山東大學(xué)】web數(shù)據(jù)管理——復(fù)習(xí)筆記

    寫在前面 若有圖片加載失敗,請 科學(xué)上網(wǎng) 。 本文為對軟件學(xué)院連老師的PPT課件總結(jié)所得的復(fù)習(xí)筆記,僅供參考。不保證對考點(diǎn)的全覆蓋,以PPT為主。 對往年考過的題相關(guān)知識點(diǎn)前面都標(biāo)注了“考過”,并高亮,供參考。 寫的比較匆忙,有遺漏、錯誤之處敬請指正。 筆記中

    2024年02月08日
    瀏覽(59)
  • 山東理工大學(xué)單元測試2重現(xiàn)

    本次單元測試雖然較第一次機(jī)測難度增加,但整體難度與平時pta練習(xí)相比,難度并不大,一些細(xì)節(jié)同學(xué)們在考試時容易忽略,本次八道題,可關(guān)注第四題的簡便公式,以及第七題的注意事項和第八題運(yùn)行超時的解決辦法。 7-1 sdut-C語言實(shí)驗(yàn)-A+B for Input-Output Practice (不確定次數(shù)循

    2024年02月05日
    瀏覽(25)
  • 【軟件工程】山東大學(xué)軟件工程復(fù)習(xí)提綱

    【軟件工程】山東大學(xué)軟件工程復(fù)習(xí)提綱

    涵蓋所有考點(diǎn),復(fù)習(xí)絕對高效,點(diǎn)贊+留郵箱獲取pdf版本 本提綱可以完全摘抄,考試命中率100%,先上考試帶的A4紙: 1. 軟件工程三要素 方法:為軟件開發(fā)提供了“如何做 ”的技術(shù),如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計等; 工具:為軟件工

    2024年02月13日
    瀏覽(31)
  • 山東大學(xué)眾智科學(xué)與網(wǎng)絡(luò)化產(chǎn)業(yè)復(fù)習(xí)筆記

    山東大學(xué)眾智科學(xué)與網(wǎng)絡(luò)化產(chǎn)業(yè)復(fù)習(xí)筆記

    寫在前面:鹿男神yyds,講課詼諧有趣,條理清晰,給分可沖,總而言之,眾智可沖,題主94,12/160,本文是復(fù)習(xí)時的總結(jié),希望學(xué)弟學(xué)妹95+ 圖 = 事物(節(jié)點(diǎn)) + 聯(lián)系(邊) 同構(gòu):圖的畫法不同,結(jié)構(gòu)上相同,兩圖同構(gòu)意味著可以找到一組對應(yīng)的點(diǎn),其關(guān)系也一致。 鄰接矩陣

    2024年01月23日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包