我在公车被蹭水后当晚就来了月经,在公车上露着奶被男人玩,公车上的人妻沦陷完整版,(NP、高H、纯肉)公车,公车娇喘抽搐喷潮H文苏小暖,公车全黄H全肉短篇公车之狼

技術熱線: 4007-888-234
設計開發(fā)

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

開發(fā)工具

提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享

技術支持

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

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

使用8051單片機如何制作數(shù)字電壓表?

更新時間: 2021-10-26
閱讀量:3417

在本文中,使用8051單片機制作一個簡單的0-5V電壓表。該數(shù)字電壓表的靈敏度為200mV,這有點低,但該項目旨在演示如何將ADC和七段顯示器連接到8051單片機以獲得輸入電壓的數(shù)字讀數(shù)。

在這個案例中,ADC0804是ADC,使用的單片機是AT89S51。在嘗試這個案例之前,請先了解怎么將ADC連接到8051單片機和將七段顯示器連接到8051單片機,這將使您對基礎知識有一個很好的了解。

一、數(shù)字電壓表電路圖

在電路中,ADC的Vref/2(pin9)保持開路,這意味著輸入電壓跨度可以是o到5V,步長將為5/255=19.6mV。ADC0804數(shù)字輸出的公式為Dout=Vin/步長。在該電路中,對于1V的輸入電壓,數(shù)字輸出將是1/19.6mV=51,因此51的二進制等效值,即00110011。ADC的數(shù)字輸出連接到微控制器的P1.0。ADC的控制信號,即CS、RD、WR和INTR分別來自微控制器的P3.7、P3.6、P3.5和P3.4引腳。2位多路復用七段顯示器連接到微控制器的端口0。顯示驅(qū)動晶體管Q1和Q2的控制信號從微控制器的P3.2和P3.1獲得。按鈕開關為S1。

0-5-voltmeter.jpg

首先,程序控制ADC產(chǎn)生與輸入電壓相對應的數(shù)字輸出。該數(shù)字輸出通過P1.0掃描并加載到累加器。然后將累加器中的值除以10以省略最后一位。例如,讓輸入電壓為4V。那么ADC對應的數(shù)字輸出將是204D(D代表十進制)。除以10后,累加器中剩下的值為20D。然后將該20D乘以2D,結果為40D。該程序的下一個目標是操縱這個40D并在顯示器上進行4.0讀數(shù)。為此,將40D再次除以10D。這導致累加器內(nèi)部為4,B寄存器內(nèi)部為0。然后程序使用查找表獲取4的數(shù)字驅(qū)動模式,將此模式放在端口0上并激活Q1。在1ms延遲后,10000000B被加載到P0,這就是點。再經(jīng)過1ms延遲Q1停用后,B中的內(nèi)容(即0)移至A,使用查找表獲取0的正確數(shù)字驅(qū)動模式,將此模式放在端口0上并激活Q2。再經(jīng)過1ms延遲后,Q2將停用,并重復整個周期。


二、基于8051數(shù)字電壓表程序

ORG 00H
MOV P1,#11111111B
MOV P0,#00000000B
MOV P3,#00000000B
MOV DPTR,#LABEL
MAIN: CLR P3.7
SETB P3.6
CLR P3.5
SETB P3.5
WAIT: JB P3.4,WAIT
CLR P3.7
CLR P3.6
MOV A,P1
MOV B,#10D
DIV AB
MOV B,#2D
MUL AB
MOV B,#10D
DIV AB
SETB P3.2
ACALL DISPLAY
MOV P0,A
ACALL DELAY
MOV P0,#10000000B
ACALL DELAY
MOV A,B
CLR P3.2
SETB P3.1
ACALL DISPLAY
MOV P0,A
ACALL DELAY
CLR P3.1
SJMP MAIN
DELAY: MOV R3,#02H
DEL1: MOV R2,#0FAH
DEL2: DJNZ R2,DEL2
DJNZ R3,DEL1
RET
DISPLAY: MOVC A,@A+DPTR
RET
LABEL: DB 3FH
DB 06H
DB 5BH
DB 4FH
DB 66H
DB 6DH
DB 7DH
DB 07H
DB 7FH
DB 6FH
END



以上就是英銳恩單片機開發(fā)工程師分享的“使用8051單片機制作數(shù)字電壓表”。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機。

安阳市| 黎城县| 永吉县| 定南县| 大埔区| 新津县| 平陆县| 桂平市| 龙里县| 高淳县| 讷河市| 施甸县| 合阳县| 新巴尔虎右旗| 盐山县| 来安县| 琼海市| 罗江县| 定西市| 临洮县| 雷山县| 临漳县| 乾安县| 乌拉特中旗| 安丘市| 邓州市| 巴里| 久治县| 屯昌县| 泌阳县| 新巴尔虎右旗| 盐池县| 邳州市| 罗定市| 高尔夫| 阜南县| 崇仁县| 塔河县| 合肥市| 溆浦县| 绥德县|