加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的电压表【正负5V,8255,ADC0808,扩展接线】(仿真)

11/22 09:43
2644
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

1、基于PROTUES仿真平台设计一个数字电压表,能够测量-5V-5V间的直流电压,通过数码管显示。

2、完成系统硬件资源选型(以51单片机ADC0808为核心),绘制软件流程图。

3、基于C语言编程和测试。

#include "reg51.h"
#include"absacc.h"
#define uchar unsigned char
#define uint unsigned int
#define PA XBYTE[0XFEF0]//8255
#define PB XBYTE[0XFEF1]
#define PC XBYTE[0XFEF2]
#define PD XBYTE[0XFEF3]
#define ADC XBYTE[0XFDFF]//ADC0808

//数码管编码
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0;//定时
float volt=0;//电压
//延时
void delay(uint i)
{
	while(i--);
}
//主函数
void main()
{
	uchar i=0;
	PD=0x80;//初始化8255	
	TMOD|=0X01;//初始化定时器
	TH0=0X3C;//50ms
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//显示
		if(volt>0)//正数
		{
		i=volt*10;
		/*PA=0;
		PB=0xff;
		PA=smgduan[set/100];
		PB=0xfe;
		delay(50);*/
		PA=0;
		PB=0xff;
		PA=smgduan[i/10]+0x80;//小数点
		PB=0xfd;
		delay(50);
		PA=0;
		PB=0xff;
		PA=smgduan[i%10];
		PB=0xfb;
		delay(50);
		}
		else//负数
		{
		i=-volt*10;
		PA=0;

  • 有需要资料的可了解一下.docx

相关推荐

电子产业图谱