电压表使用8051年。

本文展示了一个使用8051的简单0-5V电压表。该数字电压表的灵敏度为200mV,有点低,但该项目旨在演示如何将ADC和七段显示器连接到8051,以获得输入电压的数字读数。不久将添加一个31/2位高端电压表。ADC0804是ADC,AT89S51是本项目使用的控制器。在尝试此项目之前,请仔细阅读这些项目接口ADC到8051接口七段显示到8051这将给你一个关于基本知识的好主意。

线路图。

电压表使用8051
使用8051的0-5数字电压表

的电路。

在电路中,ADC的Vref/2 (pin9)是开路的,这意味着输入电压跨度可以是o到5V,步长将是5/255 = 19.6mV。ADC0804的数字输出公式为Dout = Vin/步长。在这个电路中,对于1V的输入电压,数字输出将是1/19.6mV = 51,因此相当于51的二进制即00110011。ADC的数字输出与单片机的P1.0接口。ADC的控制信号即CS, RD, WR和INTR分别可从微控制器的P3.7, P3.6, P3.5和P3.4引脚获得。2位多路七段显示接口到单片机的Port0。显示驱动晶体管Q1和Q2的控制信号由单片机的P3.2和P3.1得到。按键开关S1、电容C2和电阻R10构成去振复位电路。

程序。

ORG 00 h
MOV P1 # 11111111 b
MOV P0,#00000000 B
MOV P3, # 00000000 b
MOV DPTR,#标签
主要:CLR P3.7
SETB P3.6
CLR P3.5
SETB P3.5
等待:JB P3.4等
CLR P3.7
CLR P3.6
MOV, P1
MOV B, # 10 d
DIV AB
MOV B#2D
MUL AB
MOV B, # 10 d
DIV AB
SETB P3.2
驱使着显示
MOV P0,
驱使着延迟
MOV P0, # 10000000 b
驱使着延迟
MOV A、B
CLR P3.2
SETB P3.1
驱使着显示
MOV P0,
驱使着延迟
CLR P3.1
SJMP主要
延迟:MOV R3,#02H
DEL1: MOV R2, # 0 c大调
DEL2: DJNZ R2, DEL2
DJNZ R3, DEL1
受潮湿腐烂
显示:MOVC A、@A+DPTR
受潮湿腐烂
标签:DB 3跳频
DB 06H
DB 5黑洞
DB 4跳频
分贝66H
DB 6 dh
DB7DH
DB 07H
DB 7跳频
分贝6FH
结束

关于这个节目。

首先,程序控制ADC产生对应于输入电压的数字输出。这个数字输出通过P1.0扫描,并加载到累加器。然后将累加器中的值除以10,以省略最后一位数字。例如,设输入电压为4V。然后ADC相应的数字输出为204D (D代表十进制),除以10后,累加器中剩下的值为20D。然后将20D乘以2D,得到40D。该程序的下一个目标是操纵这个40D,并使显示4.0读数。40D再除以10D。结果是在累加器中是4,在B寄存器中是0。然后程序使用查找表获取4的数字驱动器模式,将该模式放在端口0并激活Q1。延迟1毫秒后,10000000B被加载到P0,这就是dot。 After a further 1ms delay Q1 is deactivated, content in B (ie 0) is moved to A, gets the correct digit drive pattern for 0 using the lookup table, puts this pattern on Port 0 and activates Q2. After a further 1ms delay Q2 is deactivated and the entire cycle is repeated.

作者

16评论

  1. 阿布索尼

    在EMU-8086汇编器和微处理器仿真器4.08中进行仿真时,上述程序出现了错误

    请帮帮我。

  2. 帕雷什

    我还没有尝试过这个电路,但我怀疑如果端口0上没有上拉电阻器,它是否能工作。

  3. 普拉萨德

    我可以用AT89s51代替AT89Sc51吗

    • 乔乔

      电路采用AT89S51单片机。您也可以使用AT89C51。但您需要查看其数据表,并进行必要的更改,如端口号。

  4. 拉胡尔

    请给出用8051显示在LCD上的数字电压表的代码。。

  5. 请帮帮我。我需要帮助设计一个数字万用表。这很紧急,我已经尽了最大努力搜索了几个网站,但没有找到合适的问题
    期待你的答复

  6. 谢谢你…。。但我想了解更多有关8051电压表的信息,如应用或优点,在日常生活中使用等

  7. 桑托什

    需要更多的信息

  8. 加达姆施里帕德酒店

    先生,我想了解更多关于使用8051电压表的信息,这是本项目的报告。请尽早发送,

  9. 桑迪普

    我可以用AT89C51代替AT89S51吗

  10. 拉胡尔jadhav

    我可以用AT89C51代替AT89S51吗

  11. 可以sindhav

    感谢您在学习嵌入式方面的帮助。

  12. 埃兹·罗伯特

    先生,请尝试将这个电压表更新为3位数字显示,采用proteus设计,例如220V

  13. 埃兹·罗伯特

    我宁愿建议你开始使用公共阳极类型而不是公共阴极,同时我测试了cct,它在proteus 7.8中不工作,但代码是仪式。请检查并尽可能改正

Ezoic报告这个广告
Baidu