📄 mini51test.c
字号:
#include <reg52.h>
#include <INTRINS.H>
#include <math.H>
#include <stdio.H>
unsigned char xdata CPLD_WREG _at_ 0xffe4;
unsigned char xdata CPLD_RREG _at_ 0xffe5;
unsigned char xdata ERAM_READ _at_ 0xffe6;
sbit OVER_FLAG=P1^0;//IO12
//REG[5..4]时钟分频选择
//REG0=1 时钟禁止
//REG1=0 地址寄存器复位
void delay_ms(unsigned int n)
{
unsigned char j;
while(n--)
for(j=0;j<230;j++);//230是实验测试所得!
}
void adc_start(void)
{
CPLD_WREG = 0x01;//地址寄存器清零,时钟禁止
_nop_();
CPLD_WREG = 0x02;//时钟开启
}
void rs232_port_init(void)
{
SCON|=0x50; //串口工作在方式1,异步模式
PCON|=0x80; //波特率翻倍
TMOD|=0x20; //定时器1工作在方式2
TH1=0xff; //波特率115200,晶振为22.1184MHz
TL1=0xff;
TR1 = 1; //启动定时器,产生波特率
RI = 0; //接收标志位清零
TI = 0; //发送标志位清零
// ES = 1; //中断允许
// EA = 1;
}
void uart_putc(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
main()
{
unsigned int i;
// unsigned char temp;
rs232_port_init();
delay_ms(1000);
while(1)
{
adc_start();
while(!OVER_FLAG);
CPLD_WREG = 0x01;//地址寄存器清零
_nop_();
CPLD_WREG = 0x03;//时钟禁止
for(i=0;i<0x8000;i++)//32K
{
uart_putc(ERAM_READ);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -