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

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

基于51单片机的数字电压表设计

8小时前
154
服务支持:
技术交流群

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

虚拟商品不可退

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

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

仿真原理图

部分程序:

#define LED_GLOBAL 1

#include "led.h"

void ledDelay(uint ms)

{

uchar delayi;

while(--ms)

{

for(delayi=0;delayi<124;delayi++);

}

}

void init_led(void)

{

LED=segLedCode[0];

LED_CS1=0;

LED_CS2=0;

LED_CS3=0;

LED_CS4=0;

}

void ledWrite(uchar c,uchar n,uchar mod)

{

if(CHARACTER==mod)

{

LED=c;

}

else if(DIGITAL==mod)

{

if((c-'0')<0x0a)

{

LED=segLedCode[c-'0'];

}

else

{

LED=segLedCode[0];

}

}

switch(n)

{

case 0x01:

{

LED_CS1=0;

ledDelay(10);

LED_CS1=1;

break;

}

case 0x02:

{

LED_CS2=0;

ledDelay(10);

LED_CS2=1;

break;

}

case 0x03:

{

LED_CS3=0;

ledDelay(10);

LED_CS3=1;

break;

}

case 0x04:

{

LED_CS4=0;

ledDelay(10);

LED_CS4=1;

break;

}

default:

break;

}

}

void ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)            //循环显示子函数

{

uchar segCount;

for(segCount=0;segCount<segNumber;segCount++)

{

if(segCodeMod&0x01)        //1代表此处显示任意字符 *

{

ledWrite(segCode[segCount],segCount+1,CHARACTER);

}

else

{

ledWrite(segCode[segCount],segCount+1,DIGITAL);

}

segCodeMod=segCodeMod>>1;

}

}

#define TLC2543_GLOBAL

#include "TLC2543.h"

uint read_TLC2543(uchar channel)

{

register uchar i;

uint tempAD = 0;

while(!TLC2543GetEoc());        //wait TLC2543 free

_delay_us(3);

channel <<= 4;

TLC2543Clk(TLC2543_CLR);

TLC2543_Cs(TLC2543_SET);

TLC2543_Cs(TLC2543_CLR);                //_CS TLC2543 select

_delay_us(3);

for( i = 0; i < 12; i ++ )

{

tempAD <<= 1;

if( TLC2543GetDo() )        //read value

{

tempAD |= 0x01;

}

if( channel&0x80 )

{

TLC2543Di(TLC2543_SET);

}

else

{

TLC2543Di(TLC2543_CLR);

}

channel <<= 1;

TLC2543Clk(TLC2543_SET);

nop();

TLC2543Clk(TLC2543_CLR);

}

temp=(uchar)(voltageRead/0x0fff);

if(i==4)

displayBuff[i-1]=digitalNumber[temp]|0x80;

else

displayBuff[i-1]=digitalNumber[temp];

voltageRead=voltageRead%0x0fff;

voltageReadTemp=voltageRead<<1;

voltageRead=0x0000;

for(j=0;j<5;j++)

voltageRead+=voltageReadTemp;//voltageRead=voltageRead*10

}

}

}

 

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

相关推荐

电子产业图谱