-基于单片机的数字万用表设计 -

2026/1/18 6:01:16

录unsigned int dacl() //AD0809读出数据处理 {unsigned char x; unsigned int dady=0; for(x=0;x<10;x++)

{dady=adc0809()+dady;}

dady=dady/10; //求平均值,提高精度 return(dady);//返回处理结果 }

/*显示数码处理*/

void send_byte( unsigned char out_byte) {

unsigned char i;

delay(1);//调用延时子程序 for (i=0;i<8;i++) {

SCP=0;

if ((out_byte&0x01)==0x01) { SI=1; } else {

SI=0;// 由于显示芯片是SPI总线,所以数据一位位送 }

delay(1); SCP=1;

out_byte=out_byte>>1; } }

void led_display(int val) { int i;

unsigned char digit[4];

unsigned char isHightFlag=0;

if (val>9999) val=9999;

digit[3]=val/1000; val=val-1000*digit[3];

digit[2]=val/100;

2

44

附录val=val-100*digit[2];

digit[1]=val/10;

digit[0]=val-10*digit[1]; if (digit[3]==0) {

digit[3]=table[10];//no echo } else {

digit[3]=table[digit[3]]; isHightFlag=1; }

if (digit[2]==0) {

if (isHightFlag==0) {

digit[2]=table[10];//no echo } else {

digit[2]=table[digit[2]]; } } else {

digit[2]=table[digit[2]]; isHightFlag=1; }

if (digit[1]==0) {

if (isHightFlag==0) {

digit[1]=table[10];//no echo } else {

digit[1]=table[digit[1]]; } else {

digit[1]=table[digit[1]];

2

45

isHightFlag=1; }

录2

digit[0]=table[digit[0]]; //显示程序,把数分到每一位,送显示 LCP=0; LCP=0;

for (i=0;i<4;i++) send_byte(digit[i]); send_byte(0x00); send_byte(0x00); send_byte(0x00); send_byte(0x00); LCP=1; LCP=1; }

void main(void) {

BEEP=0;// 蜂鸣器初始化 while(1) {

led_display(dacl()); //读值显示

if(dacl()<=1) //如果值小于1,则发出响声 {

BEEP=!BEEP; delay(100); BEEP=!BEEP; } }

}

46


-基于单片机的数字万用表设计 -.doc 将本文的Word文档下载到电脑
搜索更多关于: -基于单片机的数字万用表设计 - 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219