文章编号:661 .1333

『关闭窗口』

PSDPSD913F2 DS80c320(老片子)(dhd0)


//PSD913F2 DS80c320接口程序    
#include <REG320.H>
#include <ABSACC.H>
#include <INTRINS.H>
#define uchar unsigned char
#define unint unsigned int
//#################################################

//#################################################
#define CSIOPBASE    0x0200    //PSD特殊寄存器初始化
#define CTLA XBYTE[CSIOPBASE+0x0002]
#define DIRA XBYTE[CSIOPBASE+0x0006]
#define OUTA XBYTE[CSIOPBASE+0x0004]
#define INA  XBYTE[CSIOPBASE+0x0000]
#define CTLB XBYTE[CSIOPBASE+0x0003]
#define DIRB XBYTE[CSIOPBASE+0x0007]
#define OUTB XBYTE[CSIOPBASE+0x0005]
#define INB  XBYTE[CSIOPBASE+0x0001]
#define DIRC XBYTE[CSIOPBASE+0x0014]
#define OUTC XBYTE[CSIOPBASE+0x0012]
#define INC  XBYTE[CSIOPBASE+0x0010]
#define DIRD XBYTE[CSIOPBASE+0x0015]
#define OUTD XBYTE[CSIOPBASE+0x0013]
#define IND  XBYTE[CSIOPBASE+0x0011]
#define RAMSTART   XBYTE[0x2000]
#define CSLCD      XBYTE[0x030f]
//#################################################
sbit LS_SDA=P1^7;    //定义74LS164接口引脚
sbit LS_SCK=P1^3;
//#################################################

//#################################################
#include <delay.c>
//#################################################

//*******************************串行口0初始化、发送接收子程序
void Comstart0(void)    //
{            //
    TMOD=0X20;    T2CON=0x30;    //Baud=19200;    Fosc=11059200
    RCAP2H=0xff;RCAP2L=0xee;    //(RCAP2H,RCAP2L)=65536-
(Fosc/32/Baud)
    SCON0=0x40;PCON=0x00;TR2=1;    //方式1,波特率不加倍,计数器开
    IE=0x00;}    //中断总允许,允许串行中断    
//*************************************************
void Txd2a(uchar z)    //串口发送子程序
{    SBUF0=z;    while(TI==0);  TI=0;    }//为0等待
//*************************************************
void Pc_com0(unint a){    unint m,n;  uchar w;
    m=a/10000;w=(uchar)(m+0x0030);Txd2a(w);        //万位
    m=a%10000;n=m/1000;w=(uchar)(n+0x0030);Txd2a(w);    //千位
    n=m%1000;m=n/100;w=(uchar)(m+0x0030);Txd2a(w);    //百位
    m=n%100;n=m/10;w=(uchar)(n+0x0030);Txd2a(w);    //十位
    n=m%10;w=(uchar)(n+0x0030);Txd2a(w);Txd2a(0x0d);Txd2a(0x0a);}//个位
回车
//*************************************************

//*************************************************  串行口初始化、发送接收子程

void Comstart1(void)
{    
    T2MOD=0X20;
    TH1=0xfd;TL1=0xfd;    //256-11059200/384/9600=0xfd
    SCON1=0x40;PCON=0x00;TR1=1;    //方式1,波特率不加倍,计数器开
    IE=0x00;}    //中断总允许,允许串行中断    
//*************************************************
void Txd2b(uchar z)    //串口发送子程序
{    SBUF1=z;    while(TI1==0);  TI1=0;    }//为0等待
//*************************************************
void Pc_com1(unint a){    unint m,n;  uchar w;
    m=a/10000;w=(uchar)(m+0x0030);Txd2b(w);        //万位
    m=a%10000;n=m/1000;w=(uchar)(n+0x0030);Txd2b(w);    //千位
    n=m%1000;m=n/100;w=(uchar)(m+0x0030);Txd2b(w);    //百位
    m=n%100;n=m/10;w=(uchar)(n+0x0030);Txd2b(w);    //十位
    n=m%10;w=(uchar)(n+0x0030);Txd2b(w);Txd2b(0x0d);Txd2b(0x0a);}//个位
回车
//*************************************************

//*************************************************
main()
{    
    uchar a;unint m;
    Comstart0();    Comstart1();
    //*****************************************
    CTLA=0x00;DIRA=0xff;        //PSD端口初始化
    CTLB=0x00;DIRB=0xff;
    DIRC=0xff;DIRD=0x06;
    OUTC=0x00;Delayl(0xff);OUTC=0xff;Delayl(0xff);
    //*****************************************
    Pc_com0(12345);    Pc_com1(54321);
    OUTC=0x00;Delayl(0xaf);
    OUTC=0xff;Delayl(0xaf);    //PCB板上的LED闪烁
    //*****************************************
    while(1)
    {
        a=0x00;
        for(m=0;m<0xffff;m++)
        {
            Pc_com0(m);
            Pc_com1(0xffff-m);
            OUTC=a;    a=~a;
            Delayl(0x7f);Delays(0xaf);
        }    
    }    
}
 

(文章推荐人:电池)

 

返回大虾论坛 返回首页