我最近在用單片機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應該怎么定義啊
想請教各位大牛,看看我犯了什么錯誤,怎么改進?
謝謝各位了!!!
|