⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nw8980.c

📁 单片机C51 源程序
💻 C
字号:
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>

#define uchar unsigned char
#define MSG 0x58
#define CMH 0x18
#define CML 0x10
#define X_W 0x20
#define X_R 0x60

sbit p32 = P3^2;
sbit p33 = P3^3;
sbit p27 = P2^7;

#define DS8980 p33
#define CS8980 p27
#define DTA p32

void w8980_ctl(uchar data_w);
void w8980_mem(uchar channel, uchar data_w);
void r8980_dat(uchar hwi, uchar channel);
void message(uchar hwo, uchar channel, uchar msg_val);
void delayxs(uchar time);

void main(void)
{
    /*  while(1){
        message(5,6,0xaa);
	delayxs(5);
	message(5,7,0x55);
	delayxs(5);
        message(5,8,0xaa);
	delayxs(5);
	message(5,9,0x55);
	delayxs(5);
        message(5,6,0x55);
	delayxs(5);
	message(5,7,0xaa);
	delayxs(5);
        message(5,8,0x55);
	delayxs(5);
	message(5,9,0xaa);
	delayxs(5);
        }
       */
       r8980_dat(5, 9) ;

}

void w8980_ctl(uchar data_w)
{
	DS8980 = 0;
	P2 = 0x00;
        P1 = data_w;
	DS8980 = 1;
	while(DTA == 1);
        DS8980 = 0;
	CS8980 = 1;
}

void w8980_mem(uchar channel, uchar data_w)
{
	DS8980 = 0;
	P2 = X_W | channel;
        P1 = data_w;
        DS8980 = 1;
        while(DTA == 1);
	DS8980 = 0;
	CS8980 =1;
}

void r8980_dat(uchar hwi, uchar channel)
{
        uchar temp;
        w8980_ctl(0x85);
        DS8980 = 0;
        P2 = X_R | channel;
        DS8980 = 1;
        temp = P1;
        while(DTA == 1);
	DS8980 = 0;
	CS8980 =1;
}

void message(uchar hwo, uchar channel, uchar msg_val)
{
	w8980_ctl(MSG+hwo);
        w8980_mem(channel, 0x05);
        w8980_ctl(0x55);
	w8980_mem(channel, msg_val);
}

void delayxs(uchar time)
{
       uchar i,j, k;

       for(i=0;i<time;i++)
          for(j=0;j<0xff;j++)
              for(k=0;k<0xff;k++)
                   _nop_();

       _nop_();
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -