我最近在用单片机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应该怎么定义啊
想请教各位大牛,看看我犯了什么错误,怎么改进?
谢谢各位了!!!
|