2185|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

拜托大家帮帮忙,电子秤的程序,帮我看看哪里错了,谢谢!!! [复制链接]

#include   "60S2_V3.h"   
char bdata bittest ;
sbit TIbit = bittest ^ 0 ;
unsigned long i , sum = 0 , result = 0 , temp , ASC[] , count ;
u8 T_COUNT , adc_hi , adc_low , a , sign ;
void main(void)
{
//AD
ADC_CONTR|=80;
for(i=0;i<10000;i++);
P1ASF = 0x04;

ADC_CONTR=0xE2;
for(i=0;i<10000;i++);

TMOD = 0X11 ;
TH0     = ( 65536 - 50000 ) / 256 ;
TL0     = ( 65536 - 50000 ) % 256 ;
TR0     = 1 ;
ET0 = 1 ;

//串口
SCON = 0X40 ;
BRT = 0XFD ;
AUXR = 0X11 ;
IE2 = 0X01 ;
EA = 1 ;   
while(1)
{
//数码管显示
     temp  = result ;     
  for ( i = 0 ; i <9; i++ )
     {
//      SEND7279_CMD_DATA( 0x87 - i , temp % 10) ;
      temp = temp / 10 ;
     }
}
}

void et0(void) interrupt 1
{
TH0 = ( 65536 - 50000 ) / 256 ;
TL0 = ( 65536 - 50000 ) % 256 ;
T_COUNT ++ ;
               
ADC_CONTR |= 0x08 ;
sign = 0;
while( sign == 0 )
{
     sign = ADC_CONTR & 0X10 ;
}
ADC_CONTR &= 0XE7 ;
adc_hi = ADC_RES & 0x03 ;
    adc_low = ADC_RESL ;
sum = sum + ADC_RES * 256 + ADC_RESL ;
if ( T_COUNT == 40 )
{
  T_COUNT = 0 ;
  result = sum / 40 ;
  sum = 0 ;
  temp = result ;
     while( temp != 0 )
     {
         a = 0 ;
      ASC[a]= temp % 10 + 0x30 ;
      temp = temp / 10 ;
      a++ ;
     }
  SBUF = ASC[0] ;
}
}
void UART_ISR() interrupt 4
{
TIbit = 0 ;
SBUF = ASC[count] ;
count++ ;
SCON &= 0XFD ;
}

是个电子秤的软件,单片机STC12C5A60S2,
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表