中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術(shù)熱線: 4007-888-234

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

技術(shù)支持

基于PIC單片機(jī)開(kāi)發(fā)的數(shù)字電壓表

更新時(shí)間: 2019-11-19

對(duì)于單片機(jī)初學(xué)者來(lái)說(shuō),數(shù)字電壓表是一個(gè)不錯(cuò)的練習(xí)項(xiàng)目。在本文中,英銳恩單片機(jī)開(kāi)發(fā)工程師們分享了一個(gè)使用PIC單片機(jī)開(kāi)發(fā)的簡(jiǎn)易數(shù)字電壓表。該數(shù)字電壓表的范圍是0-20V,當(dāng)然你也可以自己增加或減少輸入電壓的范圍。

在這個(gè)方案中,使用的是microchip的PIC16F688單片機(jī),該P(yáng)IC單片機(jī)通過(guò)8個(gè)模擬通道之一讀取輸入電壓,并使用內(nèi)部ADC將其轉(zhuǎn)換為10位數(shù)字。用ADC轉(zhuǎn)換做一些數(shù)學(xué)運(yùn)算,該數(shù)字可以轉(zhuǎn)換為實(shí)際測(cè)得的電壓。電壓顯示在基于HD44780的字符LCD上。

一、數(shù)字電壓表電路圖和說(shuō)明

你無(wú)法將20V信號(hào)直接饋入PIC單片機(jī)的輸入通道。它的工作電壓過(guò)高,可能會(huì)損壞單片機(jī)。因此,首先我們需要一個(gè)電壓縮放器,該電壓縮放器會(huì)將輸入電壓縮小到PIC16F688的安全工作電壓范圍??梢酝ㄟ^(guò)下面所示的簡(jiǎn)單電阻分壓器來(lái)實(shí)現(xiàn)。

VoltageScaler.png

使用兩個(gè)電阻R1和R2,可以將0-20V的輸入電壓下轉(zhuǎn)換為0-5V。對(duì)于R1和R2的選定值,你可以看到電阻分壓器網(wǎng)絡(luò)的輸出(Va)是輸入電壓的1/4。如果輸入電壓超過(guò)20V,則Va將超過(guò)5V,這可能對(duì)PIC單片機(jī)有害。如果在R1電阻兩端連接一個(gè)5.1V穩(wěn)壓二極管,則輸出電壓Va將永遠(yuǎn)不會(huì)超過(guò)5.1V。這樣可以保護(hù)單片機(jī)免受高壓輸入可能造成的任何損害。電壓Va將流到PIC16F688單片機(jī)的AN2(引腳11)通道。其余電路如下所示:

Circuit_Project_DVM_PIC16F688-520x450.jpg

LCD顯示器以4位模式連接。如果LCD模塊中只有14個(gè)引腳,則可能沒(méi)有背光功能,可以忽略引腳15和16。對(duì)比度調(diào)整通過(guò)連接在+ 5V和Gnd之間的5K電位計(jì)完成。提供了一個(gè)在線串行編程(ICSP)頭,以便你將來(lái)進(jìn)行任何更改時(shí)都可以輕松升級(jí)PIC單片機(jī)內(nèi)部的固件。當(dāng)單片機(jī)由于某種原因停止執(zhí)行程序時(shí),外部復(fù)位有助于使整個(gè)系統(tǒng)進(jìn)入已知的初始狀態(tài)。

此處顯示了基于面包板的完整電路。你需要為此項(xiàng)目使用+ 5V穩(wěn)壓電源。為此,可以使用LM7805線性穩(wěn)壓器IC。

該方案使用C語(yǔ)言開(kāi)發(fā),并使用Mikroelektronika的mikroC Pro for PIC編譯器進(jìn)行了編譯。PIC16F688單片機(jī)使用4.0 MHz的內(nèi)部時(shí)鐘振蕩器。啟用了MCLR并且打開(kāi)了開(kāi)機(jī)定時(shí)器。你需要通過(guò)將ANSEL寄存器中的相應(yīng)位置1,將RA2 / AN2輸入定義為模擬輸入。將ADCON1寄存器的VCFG位清零,以使用Vdd = + 5V作為AD轉(zhuǎn)換的參考電壓。ADCON0 = 8將AN2輸入通道連接到內(nèi)部采樣和保持電路。端口A和C引腳上的比較器也必須被禁用(分配CMCON0 = 7)。其他設(shè)置:

振蕩器->內(nèi)部RC無(wú)時(shí)鐘;
看門(mén)狗定時(shí)器->關(guān)閉;
電定時(shí)器->開(kāi)啟;
主清除啟用->啟用;
代碼保護(hù)->關(guān)閉;
數(shù)據(jù)EE讀保護(hù)->關(guān)閉;
欠壓檢測(cè)-> BOD啟用,SBOREN禁用;
內(nèi)部外部切換模式->啟用;
監(jiān)視器時(shí)鐘故障保護(hù)->啟用;

二、基于PIC單片機(jī)開(kāi)發(fā)的數(shù)字電壓表源代碼

 sbit LCD_RS at RC4_bit;
 sbit LCD_EN at RC5_bit;
 sbit LCD_D4 at RC0_bit;
 sbit LCD_D5 at RC1_bit;
 sbit LCD_D6 at RC2_bit;
 sbit LCD_D7 at RC3_bit;
 sbit LCD_RS_Direction at TRISC4_bit;
 sbit LCD_EN_Direction at TRISC5_bit;
 sbit LCD_D4_Direction at TRISC0_bit;
 sbit LCD_D5_Direction at TRISC1_bit;
 sbit LCD_D6_Direction at TRISC2_bit;
 sbit LCD_D7_Direction at TRISC3_bit;
// End LCD module connections
char Message1[] = “DVM Project”;
unsigned int ADC_Value, DisplayVolt;
char *volt = "00.0";
void main() {
 ANSEL = 0b00000100; // RA2/AN2 is analog input
 ADCON0 = 0b00001000; // Analog channel select @ AN2
 ADCON1 = 0x00;   // Reference voltage is Vdd
 CMCON0 = 0x07 ; // Disable comparators
 TRISC = 0b00000000; // PORTC All Outputs
 TRISA = 0b00001100; // PORTA All Outputs, Except RA3 and RA2
 Lcd_Init();        // Initialize LCD
 Lcd_Cmd(_LCD_CLEAR);      // CLEAR display
 Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
 Lcd_Out(1,1,Message1);
 Lcd_Chr(2,10,'V');
 do {
  ADC_Value = ADC_Read(2);
  DisplayVolt = ADC_Value * 2;
  volt[0] = DisplayVolt/1000 + 48;
  volt[1] = (DisplayVolt/100)%10 + 48;
  volt[3] = (DisplayVolt/10)%10 + 48;
  Lcd_Out(2,5,volt);
  delay_ms(500);   // Hold for 500 ms
 } while(1);
} // End main()

以上就是英銳恩單片機(jī)開(kāi)發(fā)工程師分享的基于PIC單片機(jī)開(kāi)發(fā)的數(shù)字電壓表。英銳恩專注單片機(jī)應(yīng)用方案設(shè)計(jì)與開(kāi)發(fā),提供8位單片機(jī)、16位單片機(jī)、32位單片機(jī)、運(yùn)算放大器和模擬開(kāi)關(guān)。

404
返回首頁(yè) |  返回上一頁(yè)
墨竹工卡县| 阿荣旗| 齐河县| 平顶山市| 余干县| 迁安市| 商水县| 屏东县| 泸定县| 海淀区| 平南县| 敦煌市| 兴和县| 清流县| 沙河市| 西充县| 泸溪县| 大竹县| 梅州市| 安化县| 邵武市| 秦皇岛市| 府谷县| 保定市| 中西区| 苍溪县| 德江县| 乐亭县| 闵行区| 屏东县| 武义县| 灌阳县| 贡嘎县| 武邑县| 三台县| 甘德县| 满城县| 农安县| 芮城县| 颍上县| 临海市|