问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用keil 转换hex文件时候,编译程序报错 bADcs :undefined identifier...

发布网友 发布时间:2024-04-01 19:18

我来回答

1个回答

热心网友 时间:2024-08-11 23:51

好了,我给你调好了,有一段程序你多了一个大括号。

#include<reg51.h>

#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

sbit bADcs=P2^2; //片选位
sbit bADcl=P2^1; //时钟位
sbit bADda=P2^0; //数据位

sbit g1=P1^0; //第一位
sbit g2=P1^1; //第二位
sbit g3=P1^2; //第三位
sbit g4=P1^3; //第四位
code uchar TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定义数码管显示数值
uchar str_TME[4]={0,0,0,0,}; //定义数码管显示初始值
unsigned char data1; //data1用来存放转换以后的数据
void delay(uchar ms) //定义ms延迟程序
{
uchar j;
while(ms--)
for(j=0;j<125;j++);
}
uchar tmel=0;
bit sim=1;
/***********************计数器中断函数,用于控制电压转*********************
*******************时间间隔,此程序设定间隔为1S电压转换一次***************/
void tme_tr0(void) interrupt 1
{
TL0=0x58;
TH0=0x9e; //设置25ms 延时的初值
if(++tmel==40)
{
tmel=0;
sim=1;

}
}

/***************************************************************************
AD0832AD转换子程序
***************************************************************************/
//sbit bADcs=P2^2; //片选位
//sbit bADcl=P2^1; //时钟位
//sbit bADda=P2^0; //数据位
void ad()
{ uchar i;
bADcs = 0;//当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,开始工作CS为低电平
bADcl=0; //第一个时钟下降沿前da为1,第二个与第三时钟下降沿前的数据为通道选择
bADda=1; //选置起始位
bADcl=1;
bADcl=0; // 1down
bADda=1; //通道选择第1位
bADcl=1;
bADcl=0; // 2 down
bADda=0; //通道选择第2位,通道选择为
for(i=8;i>0;i--)
{
data1<<=1; //从第7位开始,要左移data1=data1<<1
bADcl=0;
bADcl=1;
if(bADda==1) data1|=0x01; //如果输出1,data1最后一位补1
}
bADcs=1; //转换完后CS置1
}
void changs() //转换程序
{
double sum;
uchar val_Integer; //定义整数变量
unsigned int val_Decimal; //定义小数变量
sum=data1*0.0196078 ;
val_Integer=(uchar)sum;
val_Decimal=(unsigned int)((sum-val_Integer)*1000);
str_TME[3]=val_Decimal%10;
str_TME[2]=val_Decimal/10%10;
str_TME[1]=val_Decimal/100;
str_TME[0]=val_Integer;
}

/*****************定义数码管显示(共阳数码管)***************************/
//sbit g1=P1^0; //第一位
//sbit g2=P1^1; //第二位
//sbit g3=P1^2; //第三位
//sbit g4=P1^3; //第四位
void VAL_xs()
{
P3=(TAB[str_TME[0]])&0x7f; //显示小数点
g1=0; //第一位显示
delay(4);
g1=1;
P3=TAB[str_TME[1]];
g2=0; //第二位显示
delay(4);
g2=1;
P3=TAB[str_TME[2]];
g3=0; //第三位显示
delay(4);
g3=1;
P3=TAB[str_TME[3]];
g4=0; //第四位显示
delay(4);
g4=1;
}

/*****************************************************
主程序
*******************************************************/
main()
{
P1=0xc0;
IE=0x82; //中断请求
TMOD=0x01;
IP=0x01;
TL0=0x58;
TH0=0x9e;
TR0=1; //运行控制位
while(1)
{
VAL_xs();
if(sim==1)
{
ad(); //电压转换
changs(); //数据转换
sim=0;
}

}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
老板用老公的身份和他注册了一家公司,实际上只是挂名但他只是一个打工... fraps录制的魔兽视频,然后我用绘声绘影X4做的后期,可是渲染成MP4格式... 极少数人知道的氨基酸态氮 工装夹克什么牌子的好? 有哪些质量好的工装夹克推荐? 什么品牌的工装夹克质量好? 有什么质量好的工装夹克值得推荐? 哪些牌子的工装夹克值得入手? 哪些品牌的工装夹克质量好? 哪些品牌的工装夹克质量比较好? 看图,速度 10 11 12 13 14 15 16怎么写 英语大神来→_→给好评 excel表格怎么批量在单元格内输入后缀呢? 赵一博为什么没参加种地吧第二季 安培力是洛伦兹力的宏观表现,为什么安培力可以对通电导线做功而洛伦兹... 从成都公交车站搭几路公交车到成都市郫都区浦兴街 联通流量卡可以注册吗 为什么我用手机注册会封号? 我一吃我喜欢吃的辣椒,多吃一点念珠菌的毛病就复发了,怎样彻底治好啊... 海门到沙溪怎么坐车(上高速的路线) 纵横天下二十载打一字 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 断面年轮明显,有的可见暗棕色、质松、带亮星髓的药材是 什么植物能辨别方向 ? 3个睡前儿童晚安故事适合孩子讲的3个睡前故事 商细蕊和多少人睡过 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... ...贵的。顺便问下车门上的喇叭是几寸的啊?不好意思我菜鸟 皑皑雪山的近义词是什么? 孩子三岁半说话不清楚而且还不会说三个字以上的句子是什么原因 主播一分钱卖黄金是什么套路 ...与普通话混在一起,说得还不清楚。请问是自闭症吗? 什么是abs材料abs材料的解释 ...一个成交了聊天框没有显示交易成功,动态也没显示赚了多少。但是支付... ...一百七十斤,每天下午五点左右跳绳半小时,三千个左右,每次都是跳十... 请问要多少颗氢弹或原子弹才能毁灭地球,我只是设想而以 你是如何与自己的卡路里说拜拜的? 由5个亿,1个千万,4个百万和6个千组成的数是___,省略这个数万后面的尾数... 我去了一个地方后感觉人生倒霉很多,该怎么破解? 经济师工商管理可以做档案管理员吗 会莫使金樽空对月上一句 金寨县公安局的电话号码 镇海炼化生活区的液化气多少一立方米 周迅个人资料简介身高周迅资料介绍 去身上角质用滑石粉还是滑石块 如何创建职工年龄的查询? 缩写小茶匙来太太作文300字 直径为85 K8的公差为多少? 标准基准轴&#xFFFD;0&#xFFFD;385f8公差-多少至-多少