学习C语言,编译器提示错误,不知道怎样修改,帮帮忙

2020-02-09 09:21发布

//************************************
//****
//**** at89c51   24M
//************************************
///#include <reg51.h>
#include <stdio.h>//一般I/O函数
#include <stdlib.h>//标准函数
//#include <absacc.h>//绝对地址
//#include <intrins.h>//内部函数
//#include <setjmp.h>
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
#define Byte unsigned char
#define Word unsigned int
#define ulong unsigned long
#define bool bit
#define true 1
#define false 0
#define V_TH0   0xfb  /* 时间常数高8位 (65536-500)/256   */
#define V_TL0   0x00  /* 时间常数低8位 (65536-500)%256   11.0592*/
#define ADD 2
#define reg01 XBYTE[0xc000]
#define reg02 XBYTE[0xc001] //控制寄存器
#define WriteDeviceAddress  0xa0
#define ReadDviceAddress  0xa1
uchar BBB, AAA ;
uchar dis_buf[10] ;
uchar  flag ;
//**********************************
#define  sw    flag,0
#define  keyin  PORTD,4
#define  io0   PORTC,7
#define  io1   PORTC,6
#define  io2   PORTC,5
#define  io3   PORTC,4
#define  io4   PORTC,3
#define  io5   PORTC,2
#define  io6   PORTC,1
#define  io7   PORTC,0
//***************************************
void pwm_oe(void)
{
uchar i ;
for(i=1 ;i<BBB ;i++)
{
io0=(dis_buf[0]<=i)?1:0 ;
io1=(dis_buf[1]<=i)?1:0 ;
io2=(dis_buf[2]<=i)?1:0 ;
io3=(dis_buf[3]<=i)?1:0 ;
io4=(dis_buf[4]<=i)?1:0 ;
io5=(dis_buf[5]<=i)?1:0 ;
io6=(dis_buf[6]<=i)?1:0 ;
io7=(dis_buf[7]<=i)?1:0 ;

}
}
/*/HI-TECH SoftwarePICC9.80在此处提示错误
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 49.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 50.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 51.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 52.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 53.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 54.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 55.29 only lvalues may be assigned to or modified
Error   [202] D:PICxue-cc8LEDPWM8LED_PWM.C; 56.29 only lvalues may be assigned to or modified
**********************************************************************************************************************/
//**************************
void as1(uint speed)
{
uchar i ;
uint j ;
dis_buf[0]=0 ;
dis_buf[1]=0 ;
dis_buf[2]=0 ;
dis_buf[3]=0 ;
dis_buf[4]=0 ;
dis_buf[5]=0 ;
dis_buf[6]=8 ;
dis_buf[7]=AAA ;
for(i=0 ;i<32 ;i++)
{
dis_buf[8]=dis_buf[7] ;
dis_buf[7]=dis_buf[6] ;
dis_buf[6]=dis_buf[5] ;
dis_buf[5]=dis_buf[4] ;
dis_buf[4]=dis_buf[3] ;
dis_buf[3]=dis_buf[2] ;
dis_buf[2]=dis_buf[1] ;
dis_buf[1]=dis_buf[0] ;
dis_buf[0]=dis_buf[8] ;
for(j=0 ;j<speed ;j++){pwm_oe() ;}
}
}
//****************
void as2(uint speed)
{
uchar i ;
uint j ;
dis_buf[0]=0 ;
dis_buf[1]=1 ;
dis_buf[2]=2 ;
dis_buf[3]=4 ;
dis_buf[4]=5 ;
dis_buf[5]=6 ;
dis_buf[6]=8 ;
dis_buf[7]=12 ;
dis_buf[8]=AAA ;
for(i=0 ;i<32 ;i++)
{
dis_buf[8]=dis_buf[7] ;
dis_buf[7]=dis_buf[6] ;
dis_buf[6]=dis_buf[5] ;
dis_buf[5]=dis_buf[4] ;
dis_buf[4]=dis_buf[3] ;
dis_buf[3]=dis_buf[2] ;
dis_buf[2]=dis_buf[1] ;
dis_buf[1]=dis_buf[0] ;
dis_buf[0]=dis_buf[8] ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
}
//**************************
void as3(uchar speed)
{
uchar i,j ;
uint m ;
dis_buf[0]=AAA ;
dis_buf[1]=AAA ;
dis_buf[2]=AAA ;
dis_buf[3]=AAA ;
dis_buf[4]=AAA ;
dis_buf[5]=AAA ;
dis_buf[6]=AAA ;
dis_buf[7]=AAA ;
for(m=0 ;m<5000 ;m++)
pwm_oe() ;
for(i=AAA ;i>0 ;i--)
{dis_buf[0]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[1]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[2]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[3]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[4]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[5]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[6]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=AAA ;i>0 ;i--)
{dis_buf[7]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
//-------------------
for(i=0 ;i<BBB ;i++)
{dis_buf[0]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[1]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[2]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[3]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[4]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[5]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[6]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
for(i=0 ;i<BBB ;i++)
{dis_buf[7]=i ;
for(j=0 ;j<speed ;j++)pwm_oe() ;
}
}
//*****************
void as4(uint speed)
{
uint n ;
uchar i,j ;

for(j=0 ;j<BBB ;j++)
{
for(i=0 ;i<8 ;i++)
   {
        dis_buf=~(dis_buf&0x0f) ;
        }
/*//HI-TECH SoftwarePICC9.80在此处提示错误
Error   [209] D:PICxue-cc8LEDPWM8LED_PWM.C; 206.23 type conflict
Error   [209] D:PICxue-cc8LEDPWM8LED_PWM.C; 206.25 type conflict
*/
for(n=0 ;n<speed ;n++)
  pwm_oe() ;

}
}
//************************
main()
{
uchar ci ;
BBB=16 ;
AAA=15 ;
while(1)
{
as1(230) ;
for(ci=0 ;ci<2 ;ci++){ as2(200) ;}
for(ci=0 ;ci<2 ;ci++){ as3(120) ;}
as4(620) ;
}
}
/////////////////////////////////////////////////////////////////////////////
在论坛下载了,用51单片机的程序;想改用PIC。
不过编译错误,不会改。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
amity
1楼-- · 2020-02-09 10:39
我把编译错误信息,黏贴插入了程序中
surf_131
2楼-- · 2020-02-09 11:19
回复【1楼】amity 小华
-----------------------------------------------------------------------

dis_buf在前面是数组变量,

for(i=0 ;i<8 ;i++)
   {
dis_buf=~(dis_buf&0x0f) ;
}

到这里变成单一变量了???还有,~是什么运算?
不写注释的程序,有时候就等于垃圾。


还有这个,这是什么东西?请找本语法书学习一下,再参考一下手册。
#define  io3   PORTC,4
millwood0
3楼-- · 2020-02-09 16:33
"还有,~是什么运算?"

bit NOT.

"不写注释的程序,有时候就等于垃圾。"

不写注释的程序,always就等于垃圾。


"还有这个,这是什么东西?请找本语法书学习一下,再参考一下手册。"

right on.


"#define  io3   PORTC,4"

s/he probably meant "PORTC.4"
amity
4楼-- · 2020-02-09 16:34
 精彩回答 2  元偷偷看……
amity
5楼-- · 2020-02-09 17:45
#define  io0   PORTC,7
#define  io1   PORTC,6
#define  io2   PORTC,5
#define  io3   PORTC,4
#define  io4   PORTC,3
#define  io5   PORTC,2
#define  io6   PORTC,1
#define  io7   PORTC,0
###########################################################################
谢谢大家把以上内容改一下就行了
#define  io0   RC7
#define  io1   RC6
#define  io2   RC5
#define  io3   RC4
#define  io4   RC3
#define  io5   RC2
#define  io6   RC1
#define  io7   RC0
surf_131
6楼-- · 2020-02-09 22:05
回复【3楼】millwood0
-----------------------------------------------------------------------

谢谢指教。抛开那个具体变量属性,请问,
dis_buf=~(dis_buf&0x0f) ;  

是否等价于这个:
dis_buf^=0x0f;  

这个异或运算就让每个是1的比特位都翻转,0的都保持。........哦,不是,前面那个运算让高4位都置1,低4位按比特翻转。一般输出端口,用我这样的运算比较常见,只对那个常数是1的位翻转状态,不会影响到常数中为0的任何位。

一周热门 更多>