📄 dma
字号:
//============================================================
// C异步写程序块:从模块读到数据从串口发出
//============================================================
#include <reg51.h>
#include "intrins.h"
#include "absacc.h"
#include <stdio.h>
void delay(unsigned int k );
//--------------------------------------------
sbit DMAING = P2^0;
sbit DMADIR = P2^1;
sbit FIFOEMPTY = P2^2;
sbit FIFOFULL = P2^3;
sbit DMACS = P3^4;
sbit DMAOE = P2^5;
sbit PTKEND = P2^6;
sbit DMAWR = P3^6;
sbit DMARD = P3^7;
//**********************************************************************
// 主程序开始
//**********************************************************************
void main(void)
{
unsigned char pdata *y; //Y为外部变量指针,用以残产生RD 脉冲
unsigned char i;
TMOD = 0x20; SCON = 0x40; PCON = 0x00; TL1 = 0xFD; TH1 = 0xFD; //波特率9600
EA = 0; SP = 0x70; TR1 = 1; DMACS = 0; PTKEND = 1; DMAOE = 1;
for(;;)
{
DMAOE = 0;
if ( (DMAING == 1) && (DMADIR == 0) && (FIFOEMPTY == 1))
{
y = 0xff;
ACC = *y;
SBUF = ACC;
delay( 2 ); //延时1MS,等待1个字节发送完成
}
}
}
void delay(unsigned int k )
{
unsigned int i,j;
for(i=0; i<k; i++)
{
for(j=0; j<60; j++)
{;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -