下面是操作AVR
I/O端口的代码。
由测试程序、操作程序及头文件组成。
/* *******************************************
* File name: main.c
* Function: AVR的I/O端口操作测试程序
* Description: 控制I/O端口的输入输出
* Author & Date: Joshua Chan, 2012/03/23
* *******************************************/
#include <ioavr.h>
#include
#include
#include
#include
#include "io_test.h"
/* 利用PA 0~5 输入状态控制PE, PF相关端口输出 */
void main(void)
{
input2output_setdir();
while (1) {
input2output_setbit();
_WDR();
}
}</io
/* *******************************************
* File name: io_test.h
* Function: AVR的I/O端口操作测试程序
* Description: 控制I/O端口的输入输出
* Author & Date: Joshua Chan, 2012/03/23
* *******************************************/
#ifndef _IO_TEST_H
#define _IO_TEST_H
/* 设置PA 0~5 及PE, PF相关端口方向 */
extern void input2output_setdir(void);
/* 设置PA0~5端口控制PE, PF相关端口输出 */
extern void input2output_setbit(void);
#endif
/* ******************************************* * File name: io_test.c * Function: AVR的I/O端口操作测试程序 * Description: 控制I/O端口的输入输出 * Author & Date: Joshua Chan, 2012/03/23 * *******************************************/#include #include #include #include #include #include "io_test.h"/* 设置PA 0~5 及PE, PF相关端口方向 */void input2output_setdir(void){ DDRA &= ~0x3F; /* PA 0~5 输入 */ DDRE |= 0x0C; /* PE 5~6 输出 */ DDRF |= 0x0F; /* PF 1~4 输出 */}/* 设置PA0~5端口控制PE, PF相关端口输出 */void input2output_setbit(void){ PORTF_Bit3 = PINA_Bit0; /* IN1的状态传至PF3 */ PORTF_Bit2 = PINA_Bit1; /* IN2的状态传至PF2 */ PORTF_Bit1 = PINA_Bit2; /* IN3的状态传至PF1 */ PORTF_Bit0 = PINA_Bit3; /* IN4的状态传至PF0 */ PORTE_Bit2 = PINA_Bit4; /* IN5的状态传至PE2 */ PORTE_Bit3 = PINA_Bit5; /* IN6的状态传至PE3 */ }
关键字:AVR I O端口操作 测试程序 |