找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2900|回复: 0
打印 上一主题 下一主题
收起左侧

left side of asn op not an lvalue

[复制链接]
跳转到指定楼层
楼主
ID:237942 发表于 2017-10-24 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在用单片机C8051F300 做一个驱动TCD1206SUP的驱动电路,就是基于单片机的CCD门禁系统设计。
基本要求就是单片机P0.0-P0.3输出
Q1:50%占空比的方波
Q2:与Q1反相
RS:在Q1,Q2上下沿触发处为1.
SH:一个积分的脉冲。

我的单片机程序如下:
//------------------------------------------------------------------------
//包含文件
//------------------------------------------------------------------------

#include<c8051f000.h>
#include<stdio.h>

//------------------------------------------------------------------------
//全局常量
//------------------------------------------------------------------------

#define PCA0CPM0 0xDA;
#define PCA0CPL0 0xFB;
#define PCA0CPH0 0xFC;
#define P0MDIN 0xF1;
#define P0MDOUT 0xA4;
#define XBR0 0xE1;
#define XBR1 0xE2;
#define XBR2 0xE3;
#define OSCXCN 0xB1;
#define OSCICL 0xB3;
#define OSCICN 0xB2;
#define PCA0L 0xF9;
#define PCA0CN 0xD8;
sbit p03 = P0^3;
sbit p02 = P0^2;

//-------------------------------------------------------------------------
//函数原型
//-------------------------------------------------------------------------

void main(void);

//-------------------------------------------------------------------------
//主程序
//-------------------------------------------------------------------------

void main(void)
{
int count=1;
//EA=1;

PCA0CPM0 = 0x4d; //选择高速输出方式

//根据频率写入比较值
PCA0CPH0 = 0;//PCA Capture Module Low Byte,PCA0CPL0 = 0xFB
PCA0CPL0 = 3;//PCA Capture Module High Byte,PCA0CPH0 = 0xFC

//引脚输出配置
P0MDIN = 0xFF; //P0.n pin is configured as a digital input.
P0MDOUT = 0xFF;//Corresponding P0.n Output is push-pull.推挽式输出

//交叉开关配置
XBR0 = 0xfe;
XBR1 = 0x80; //CEX0, CEX1 routed to Port pins.
XBR2 = 0x40; //Crossbar enabled.

//晶振配置
OSCXCN = 0x00; //External Oscillator Control
OSCICL = 0x00; //Internal Oscillator Calibration
OSCICN = 0x17; //内部晶振器频率按照IFCN位指定的速度运行。选择外部时钟源作为时钟。内部振荡器允许,典型频率是4MHZ。

//CCF0: PCA Module 0 Capture/Compare Flag.This bit is set by hardware when a match or capture occurs.
//The PCA0L register holds the low byte (LSB) of the 16-bit PCA Counter/Timer.

while(1)
{
PCA0L=0;
CCF0=0;
p03=1;
count++;
p03=0;

p02=0;
if(count>=5000)
{
//CEX0PORT=1;
CEX0=1;
PCA0CN=0x00;//软件清0;
p02=1;
count=0;
PCA0CN=0x43;//允许PCA计数器,CPU转向CCF中断服务程序。
}
}

}

//**************文件结束********************

可是在DEBUG时总是出现以下错误:
QUYONGJIA.C(52): error C213: left side of asn-op not an lvalue
QUYONGJIA.C(79): error C202: 'CEX0': undefined identifier

不知道是我哪里编写错误了。

特别是那个CEX0应该怎么定义啊

想请教各位大牛,看看我犯了什么错误,怎么改进?
谢谢各位了!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表