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

📄 main.c

📁 51单片机C语言常用模块与综合系统设计实例精讲
💻 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 + -