📄 main.c
字号:
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>
#include <./Atmel/at89x52.h>
#include "source.h"
void delay_10us(unsigned char tus){//在晶振频率为18.432MHZ时延时10微秒的函数
tus--;
while(tus--){
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
}
}
main(void){
unsigned char temp,i;
test_sram();//测试写入SRAM的值是否和写入RAM的值是一致的
delay_10us(100);//延时1毫秒
temp=test_ADC();
delay_10us(100);//延时1毫秒
test_DAC(0x55);
delay_10us(100);//延时1毫秒
temp=test_SWITCH();
delay_10us(100);//延时1毫秒
test_LED_ON();
for(i=0;i<500;i++){ //延时LED灯亮500毫秒
delay_10us(100);//延时1毫秒
}
test_LED_OFF();
for(i=0;i<500;i++){ //延时LED熄灭500毫秒
delay_10us(100);//延时1毫秒
}
test_GPIO();
}
void test_sram(void){
unsigned char SRAM_BUFFWR[8]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
unsigned char SRAM_BUFFRD[8];
unsigned char i;
for(i=0;i++;i<8)
XBYTE[SRAM+i]=SRAM_BUFFWR[i]; // 向SRAM写数据
for(i=0;i++;i<8)
SRAM_BUFFRD[i]=XBYTE[SRAM+i]; // 从SRAM读数据
}
unsigned char test_ADC(void){
unsigned char result,i;
XBYTE[ADC0804]=0; // 启动ADC
for(i=0;i<500;i++){ //延时500毫秒或检测ADC_INT,为低电平时读AD转换值
delay_10us(100);//延时1毫秒
}
result=XBYTE[ADC0804];//AD转换完毕,读取转换后的值
return result;
}
void test_DAC(unsigned char dac){//测试DA转换,把数值dac转换成模拟电压输出
XBYTE[AD5330]=dac;//把dac值转换成模拟值
}
unsigned char test_SWITCH(void){//测试开关
unsigned char ret;
ret=XBYTE[SWITCH];//读开关的的状态
return ret;
}
void test_LED_ON(void){//LED点亮
XBYTE[LED]=0;//LED灯寄存器D0设置为0
}
void test_LED_OFF(void){//LED等熄灭
XBYTE[LED]=1;//LED灯寄存器D0设置为1
}
void test_GPIO(void){
unsigned char IO3,IO4;
XBYTE[GPIO_C]=0x55; // 写GPIO16~GPIO23输出状态
XBYTE[GPIO_D]=0xAA; // 写GPIO31~GPIO24输出状态
IO3=XBYTE[GPIO_A]; // 读GPIO7~GPIO0的状态
IO4=XBYTE[GPIO_B]; // 读GPIO15~GPIO8的状态
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -