色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用N76E003微控制器ADC讀取模擬電壓

科技觀察員 ? 來源:circuitdigest ? 作者:Sourav Gupta ? 2022-08-10 16:01 ? 次閱讀

模數(shù)轉(zhuǎn)換器ADC) 是微控制器上最常用的硬件功能。它接收模擬電壓并將其轉(zhuǎn)換為數(shù)字值。由于微控制器是數(shù)字設(shè)備并且使用二進制數(shù)字 1 和 0,它不能直接處理模擬數(shù)據(jù)。因此,ADC 用于接收模擬電壓并將其轉(zhuǎn)換為微控制器可以理解的等效數(shù)字值。

在本教程中,我們將使用N76E003 微控制器單元的內(nèi)置 ADC 外設(shè),因此讓我們評估此應(yīng)用需要什么樣的硬件設(shè)置。

所需組件和硬件設(shè)置

要在 N76E003 上使用 ADC,我們將使用使用電位計的分壓器并讀取 0V-5.0V 范圍內(nèi)的電壓。電壓將顯示在 16x2 字符 LCD 中,如果您是 LCD 和 N76E003 的新手,您可以查看如何將 LCD 與 Nuvoton N76E003 連接。因此,該項目所需的主要組件是 16x2 字符 LCD。對于這個項目,我們將使用以下組件 -

字符 LCD 16x2

1k電阻

50k 電位器或微調(diào)電位器

幾根伯格電線

幾根連接線

面包板

更不用說,除了上述組件,我們還需要基于N76E003 微控制器的開發(fā)板以及Nu-Link 編程器。還需要一個額外的 5V 電源單元,因為 LCD 會消耗編程器無法提供的足夠電流

Nuvoton N76E003 讀取模擬電壓的電路圖

pYYBAGLzZXiAAuWQAABaHedm9go585.png

正如我們在示意圖中看到的,端口 P0 用于與 LCD 相關(guān)的連接。在最左側(cè),顯示了編程接口連接。電位器用作分壓器,由模擬輸入 0 (AN0) 檢測

pYYBAGLzZXSAd0fmAAbIYcZwHgA235.png

N76E003 中有關(guān) GPIO 和模擬引腳的信息

下圖說明了 N76E003AT20 微控制器單元上可用的 GPIO 引腳。但是,在 20 個引腳中,對于 LCD 相關(guān)連接,使用端口 P0(P0.0、P0.1、P0.2、P0.4、P0.5、P0.6 和 P0.7)。模擬引腳以紅色突出顯示。

poYBAGLzZW6Aayx3AAGdqhFBJ1w040.png

正如我們所看到的,端口 P0 具有最大的模擬引腳,但這些引腳用于 LCD 相關(guān)的通信。因此,P3.0 和 P1.7 可用作模擬輸入引腳 AIN1 和 AIN0。由于這個項目只需要一個模擬引腳,P1.7 是模擬輸入通道 0,用于這個項目。

N76E003 中有關(guān) ADC 外設(shè)的信息

N76E003 提供12 位 SAR ADC。N76E003的一個非常好的特點是它具有非常好的ADC分辨率。ADC在單端模式下具有8 通道輸入。連接 ADC 非常簡單明了。

第一步是選擇ADC通道輸入。N76E003 微控制器提供 8 通道輸入。選擇 ADC 輸入或 I/O 引腳后,需要將所有引腳設(shè)置為代碼中的方向。用于模擬輸入的所有引腳都是微控制器的輸入引腳,因此所有引腳都需要設(shè)置為僅輸入(高阻抗)模式。這些可以使用PxM1 和 PxM2 寄存器進行設(shè)置。這兩個寄存器設(shè)置 I/O 模式,其中 x 代表端口號(例如,端口 P1.0 寄存器將是 P1M1 和 P1M2,對于 P3.0 它將是 P3M1 和 P3M2 等)配置可以如下圖所示 -

poYBAGLzZWuAIoXKAACfy4XCiaw172.png

ADC 的配置由兩個寄存器ADCCON0和ADCCON1完成。ADCCON0 寄存器描述如下所示。

pYYBAGLzZWeAXYhAAAJXHCQSHLQ134.png

寄存器的前 4 位從位 0 到位 3 用于設(shè)置 ADC 通道選擇。由于我們使用的是通道 AIN0,因此這四個位的選擇將為 0000。

第 6 位和第 7 位是重要的位。ADCS需要設(shè)置為 1 以啟動 ADC 轉(zhuǎn)換,ADCF將提供有關(guān) ADC 轉(zhuǎn)換成功的信息。它需要由固件設(shè)置為 0 以啟動 ADC 轉(zhuǎn)換。下一個寄存器是 ADCCON1-

poYBAGLzZWOASlzOAAbIdXxYeHI272.png

ADCCON1 寄存器主要用于外部觸發(fā)的 ADC 轉(zhuǎn)換。但是,對于正常的輪詢相關(guān)操作,需要將第一位ADCEN設(shè)置為 1 以打開 ADC 電路。

接下來,需要在AINDIDS寄存器中控制 ADC 通道的輸入,在該寄存器中可以斷開數(shù)字輸入。

pYYBAGLzZWCAaQTQAAELNdkQwBA377.png

n 代表通道位(例如,AIN0 通道需要使用AINDIDS寄存器的第一位P17DIDS進行控制)。數(shù)字輸入需要使能,否則讀為0。這些都是ADC的基本設(shè)置。現(xiàn)在,清除 ADCF 并設(shè)置 ADCS,即可開始 ADC 轉(zhuǎn)換。轉(zhuǎn)換后的值將在以下寄存器中可用 -

poYBAGLzZVqAEwHeAACzeoqmAjY817.png

pYYBAGLzZVeAMCyTAAFtjlk8cAs867.png

兩個寄存器都是 8 位的。由于 ADC 提供 12 位數(shù)據(jù),所以 ADCRH 用作全量(8 位)而 ADCRL 用作半量(4 位)。

為 ADC 編程 N76E003

每次為特定模塊編碼是一項繁重的工作,因此提供了一個簡單但功能強大的 LCD 庫,對于與 N76E003 連接的 16x2 字符 LCD 接口非常有用。

請擁有該庫(通過克隆或下載)并在您的Keil N76E003 項目中包含lcd.c和LCD.h文件,以便將 16x2 LCD 輕松集成到所需的應(yīng)用程序或項目中。該庫將提供以下有用的顯示相關(guān)功能-

初始化液晶顯示器。

向 LCD 發(fā)送命令。

寫入液晶顯示器。

在 LCD 中輸入一個字符串(16 個字符)。

通過發(fā)送十六進制值打印字符。

滾動超過 16 個字符的長消息。

將整數(shù)直接打印到 LCD 中。

ADC 的編碼很簡單。在設(shè)置函數(shù)Enable_ADC_AIN0中;用于將ADC設(shè)置為AIN0輸入。這是在文件中定義的。

#define Enable_ADC_AIN0 ADCCON0&=0xF0;P17_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT0;ADCCON1|=SET_BIT0 //P17

因此,上述行將引腳設(shè)置為輸入并配置ADCCON0、ADCCON1寄存器以及AINDIDS寄存器。以下函數(shù)將從ADCRH和ADCRL寄存器讀取 ADC,但分辨率為 12 位。

unsigned int ADC_read(void){

register unsigned int adc_value = 0x0000;

clr_ADCF;

設(shè)置_ADCS;

而(ADCF == 0);

adc_value = ADCRH;

adc_value 《《= 4;

adc_value |= ADCRL;

返回 adc_value;

}

該位左移 4 次,然后添加到數(shù)據(jù)變量中。在主要功能中,ADC 正在讀取數(shù)據(jù)并直接打印在顯示器上。然而,電壓也使用比率或電壓除以位值之間的關(guān)系進行轉(zhuǎn)換。

一個 12 位 ADC 將在 5.0V 輸入上提供 4095 位。因此除以 5.0V/4095 = 0.0012210012210012V

因此,1 位的位變化將等于 0.001V 的變化(大約)。這是在下面顯示的主函數(shù)中完成的。

void main(void){

int adc_data;

設(shè)置();

lcd_com (0x01);

while(1){

lcd_com (0x01);

lcd_com (0x80);

lcd_puts(“ADC數(shù)據(jù):”);

adc_data = ADC_read();

lcd_print_number(adc_data);

電壓 = adc_data * bit_to_voltage_ratio;

sprintf(str_voltage,“電壓:%0.2fV”,電壓);

lcd_com(0xC0);

lcd_puts(str_voltage);

Timer0_Delay1ms(500);

}

}

數(shù)據(jù)從位值轉(zhuǎn)換為電壓,并使用sprintf函數(shù)將輸出轉(zhuǎn)換為字符串并發(fā)送到 LCD。

閃爍代碼和輸出

代碼返回 0 warning 和 0 Errors 并且被 Keil 使用默認的刷機方式刷機,你可以看到下面的刷機信息。如果您是 Keil 或 Nuvoton 的新手,請查看Nuvoton 微控制器入門以了解基礎(chǔ)知識以及如何上傳代碼。

重建開始:項目:計時器

重建目標‘目標1’

組裝STARTUP.A51.。.

編譯main.c.。.

編譯lcd.c.。.

編譯Delay.c.。.

鏈接。..

程序大小:數(shù)據(jù)= 101.3 xdata=0 代碼=4162

從“。\Objects\timer”。..“。\Objects\timer”創(chuàng)建十六進制文件

- 0 個錯誤,0 個警告。

構(gòu)建時間已用:00:00:02

加載“G:\\n76E003\\Display\\Objects\\timer”

Flash 擦除完成。

Flash 寫入完成:已編程 4162 字節(jié)。

Flash 驗證完成:已驗證 4162 字節(jié)。

閃存加載于 11:56:04 完成

下圖顯示了使用直流適配器連接到電源中的硬件,顯示屏顯示右側(cè)電位器設(shè)置的電壓輸出。

poYBAGLzZUqAGEUQAAcQBPM9nY8282.png

如果我們轉(zhuǎn)動電位器,給 ADC 引腳的電壓也會發(fā)生變化,我們可以注意到 LCD 上顯示的 ADC 值和模擬電壓。

#include "N76E003.h"
#include "SFR_Macro.h"
#include "函數(shù)定義.h"
#include "Common.h"
#include "延遲.h"
#包括“l(fā)cd.h”
#define bit_to_voltage_ratio 0.001220703125 // 5.0V 除以 4096 對于 12 位 ADC
無效設(shè)置(無效);
無符號整數(shù) ADC_read(void);
浮動電壓;
字符str_電壓[20];
無效的主要(無效){
int adc_data;
設(shè)置();
lcd_com (0x01);
而(1){
lcd_com (0x01);
lcd_com (0x80);
lcd_puts("ADC數(shù)據(jù):");
adc_data = ADC_read();
lcd_print_number(adc_data);
電壓 = adc_data * bit_to_voltage_ratio;
sprintf(str_voltage,“電壓:%0.2fV”,電壓);
lcd_com(0xC0);
lcd_puts(str_voltage);
Timer0_Delay1ms(500);
}
}
無效設(shè)置(無效){
Set_All_GPIO_Quasi_Mode;
液晶初始化();
啟用_ADC_AIN0;
lcd_com (0x80);
LCD_ScrollMessage("歡迎來到 CircuitDigest.com");
lcd_com (0x80);
lcd_puts("ADC 接口");
lcd_com (0xC0);
lcd_puts("使用 N76E003 單片機");
Timer3_Delay100ms(5);
}
無符號整數(shù) ADC_read(void){
注冊無符號整數(shù) adc_value = 0x0000;
clr_ADCF;
設(shè)置_ADCS;
而(ADCF == 0);
adc_value = ADCRH;
adc_value <<= 4;
adc_value |= ADCRL;
返回 adc_value;
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7572

    瀏覽量

    151646
  • 模數(shù)轉(zhuǎn)換器

    關(guān)注

    26

    文章

    3209

    瀏覽量

    126888
  • 模擬電壓
    +關(guān)注

    關(guān)注

    6

    文章

    64

    瀏覽量

    18317
  • N76E003
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    5548
收藏 人收藏

    評論

    相關(guān)推薦

    請問如何讀取實際N76E003帶隙電壓

    如何讀取實際N76E003帶隙電壓
    發(fā)表于 12-22 06:30

    N76E003 PWM分辨率是多少?

    有沒有相關(guān)的方法,N76E003 ADC采集的電壓轉(zhuǎn)換為PWM,還有N76E003 PWM分辨率是多少。轉(zhuǎn)換的精度怎么樣,有沒能大神了解過。
    發(fā)表于 06-19 06:15

    用于實施受控制的近環(huán)BLDC發(fā)動機的N76E003示例代碼

    應(yīng)用:這一基于N76E003的示例代碼,用于實施受控制的近環(huán)BLDC發(fā)動機 BSP 版本: N76E003_BSP_Keil_C51_V1.0.6 硬件: NuTiny-N76E003
    發(fā)表于 08-23 07:30

    用于實施開放環(huán)BLDC發(fā)動機控制N76E003示例代碼

    應(yīng)用:這一基于N76E003的示例代碼,用于實施開放環(huán)BLDC發(fā)動機控制 BSP 版本: N76E003_BSP_Keil_C51_V1.0.6 硬件: NuTiny-N76E003
    發(fā)表于 08-23 06:11

    請問如何閱讀實際N76E003帶隙電壓?

    N76E003 ADC 可以選擇內(nèi)部帶寬電壓作為輸入針, 用于獲取 ADC 參考電壓, 以取得更準確的
    發(fā)表于 08-28 06:33

    N76E003 8位8051內(nèi)核微控制器的英文和中文數(shù)據(jù)手冊免費下載

    本文檔的主要內(nèi)容詳細介紹的是N76E003 8位8051內(nèi)核微控制器的英文和中文數(shù)據(jù)手冊免費下載。
    發(fā)表于 11-09 08:00 ?44次下載
    <b class='flag-5'>N76E003</b> 8位8051內(nèi)核<b class='flag-5'>微控制器</b>的英文和中文數(shù)據(jù)手冊免費下載

    N76E003 8位8051內(nèi)核微控制器的中文數(shù)據(jù)手冊免費下載

    N76E003為帶有flash的增強型8位8051內(nèi)核微控制器(1T工作模式),指令集與標準的80C51完全兼容并具備更高效能。
    發(fā)表于 11-09 08:00 ?80次下載
    <b class='flag-5'>N76E003</b> 8位8051內(nèi)核<b class='flag-5'>微控制器</b>的中文數(shù)據(jù)手冊免費下載

    N76E003增強型8位8051內(nèi)核微控制器的數(shù)據(jù)手冊免費下載

    N76E003為帶有flash的增強型8位8051內(nèi)核微控制器(1T工作模式),指令集與標準的80C51完全兼容并具備更高效能。N76E003內(nèi)嵌18K的Flash存儲區(qū),通常稱作APROM,用于
    發(fā)表于 12-11 08:00 ?12次下載
    <b class='flag-5'>N76E003</b>增強型8位8051內(nèi)核<b class='flag-5'>微控制器</b>的數(shù)據(jù)手冊免費下載

    N76E003 8051內(nèi)核微控制器的數(shù)據(jù)手冊免費下載

    N76E003為帶有flash的增強型8位8051內(nèi)核微控制器(1T工作模式),指令集與標準的80C51完全兼容并具備更高效能。
    發(fā)表于 03-04 08:00 ?37次下載
    <b class='flag-5'>N76E003</b> 8051內(nèi)核<b class='flag-5'>微控制器</b>的數(shù)據(jù)手冊免費下載

    N76E003的EEPROM問題解決方案:使用Data Flash模擬EEPROM

    N76E003的EEPROM問題解決方案:使用Data Flash模擬EEPROM(嵌入式開發(fā)與應(yīng)用專業(yè)開學(xué)要買電腦嗎)-N76E003的EEPROM問題解決方案,官方文檔,找了很久才找到。這份文件
    發(fā)表于 07-30 09:28 ?29次下載
    <b class='flag-5'>N76E003</b>的EEPROM問題解決方案:使用Data Flash<b class='flag-5'>模擬</b>EEPROM

    基于Nuvoton 1T 8051的微控制器N76E003數(shù)據(jù)表

    基于Nuvoton 1T 8051的微控制器N76E003數(shù)據(jù)表
    發(fā)表于 11-03 09:43 ?5次下載

    N76E003ADC 多通道采樣

    首先讓我們來看看N76E003單片機的ADC工作方式,從下圖中可以看到ADCHS寄存決定當(dāng)前使用哪一個通道的寄存。接下來我們再來看看具體的寄存
    發(fā)表于 12-04 11:51 ?30次下載
    <b class='flag-5'>N76E003</b>之<b class='flag-5'>ADC</b> 多通道采樣

    如何使用N76E003微控制器執(zhí)行串行通信

    在本文中,我們將學(xué)習(xí)如何使用 N76E003 微控制器執(zhí)行串行通信。
    發(fā)表于 08-09 17:34 ?3592次閱讀
    如何使用<b class='flag-5'>N76E003</b><b class='flag-5'>微控制器</b>執(zhí)行串行通信

    N76E003微控制器中文手冊

    N76E003為帶有flash的增強型8位8051內(nèi)核微控制器(1T工作模式),指令集與標準的80C51完全兼容并具備 更高效能。 N76E003內(nèi)嵌18K的Flash存儲區(qū),通常稱作APROM
    發(fā)表于 03-03 10:15 ?8次下載

    N76E003例程介紹

    電子發(fā)燒友網(wǎng)站提供《N76E003例程介紹.zip》資料免費下載
    發(fā)表于 12-21 09:45 ?1次下載
    主站蜘蛛池模板: 百度影音第四色| 2018高清国产一区二区三区| 最近中文字幕完整版免费| 午夜国产理论| 乳色吐息在线观看全集免费观看| 久久婷五月综合色啪网| 果冻传媒在线观看进入窗口| 国产人妻人伦精品98| 国产精品久久久久久熟妇吹潮软件| 岛国片在线看| 豆奶视频在线高清观看| 敌伦小芳的第一次| 东北真实仑乱| 国产AV白丝爆浆在线播放| 国产97碰免费视频| 国产精品高清免费网站| 国产精品一区二区人妻无码| 国产麻豆精品久久一二三| 国产美女影院| 国产自产第一区c国产| 黄色三级网址| 久久频这里精品99香蕉久网址| 快播理论片| 年轻漂亮的妺妺中文字幕版| 欧美亚洲国产专区在线| 日韩欧美中文字幕在线二视频| 色尼玛亚洲| 亚洲AV香蕉一区区二区三区蜜桃| 亚洲精品国偷拍电影自产在线| 亚洲乱码爆乳精品成人毛片| 亚洲一区二区三区乱码在线欧洲| 欲乱艳荡少寡妇全文免费| 99国产在线精品观看二区| 不知火舞vs精子| 国产精品高清视频在线| 和I儿媳妇激情| 恋夜秀场支持安卓版全部视频国产 | 免费特黄一区二区三区视频一| 老熟女毛茸茸浓毛| 欧美特级午夜一区二区三区| 色久悠悠无码偷拍自怕|