📄 io_example.c
字号:
/************************************************************************************
* Copyright (c), 2004-2007,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* Http: www.mlarm.com
* Email: mlarm@mlarm.com
*
* File name: IO_Example.c
* Project : ML-F020ICB
* Processor: C8051F020
* Compiler : Keil C51 Compiler
*
* Author: 李林利
* Version: 1.20
* Date: 2007.6.1
* Email: GavinLi@126.com
*
* Description: 本文件是16路IO端口测试程序文件;
*
* Others: none;
*
* Function List:
* 1. void IO_Proc(void)
*
* History:
* 1. Author: 李林利
* Version: 1.10
* Date: 2007.3.12
* Modification: none
*
* 2. Author: 李林利
* Version: 1.00
* Date: 2004.11.24
* Modification: 建立文件
*
*************************************************************************************/
/************************************************************************************/
// 引用外部头文件
#include "..\config\Const.h"
#include "..\driver\uart.h"
#include "..\driver\delay.h"
#include "..\driver\IO.h"
/************************************************************************************/
/************************************************************************************/
// 常量及全局变量定义
/************************************************************************************/
/*************************************************************************************/
//
// IO端口测试程序函数定义
//
/*************************************************************************************/
/***********************************************************************************
* Function: IO_Proc;
*
* Description: IO端口测试程序;
*
* Input: none;
*
* Return: none;
*
* Note: none;
************************************************************************************/
void IO_Proc(void)
{
unsigned char i,cmd;
unsigned int val;
Uart0_SendBlock("IO test starting!\n\r",19,&i);
IO_Init();
while(1)
{
cmd = 0;
if (Uart0_GetCharsRxBuf()>0)
{
Uart0_RecvChar(&cmd);
}
switch (cmd)
{
case 'A':
IO_SetDir(0xFFFF);
Uart0_SendBlock("DIR = 0xFFFF\n\r",16,&i);
cmd = 0;
break;
case 'B':
for(i=1;i<=16;i++)
IOx_SetDir(i,1);
Uart0_SendBlock("DIRx = 1\n\r",16,&i);
cmd = 0;
break;
case 'M':
IO_SetDir(0x0);
Uart0_SendBlock("DIR = 0x0000\n\r",13,&i);
cmd = 0;
break;
case 'N':
for(i=1;i<=16;i++)
IOx_SetDir(i,0);
Uart0_SendBlock("DIRx = 0\n\r",16,&i);
cmd = 0;
break;
case '1':
IO_PutVal(0xFFFF);
Delay_s(1);
IO_PutVal(0x0);
Delay_s(1);
break;
case '2':
for(i=1;i<=16;i++)
{
IOx_PutVal(i,1);
Delay_ms(100);
}
//Delay_ms(10);
for(i=1;i<=16;i++)
{
IOx_PutVal(i,0);
Delay_ms(100);
}
//Delay_s(1);
break;
case '3':
for(i=1;i<=16;i++)
{
val=IOx_GetVal(i);
Uart0_SendChar(val);
}
Delay_s(1);
break;
case '4':
val=IO_GetVal();
Uart0_SendChar((unsigned char)(val>>8));
Uart0_SendChar((unsigned char)val);
Delay_s(1);
break;
case 'E':
Uart0_SendBlock("IO test end!\n\r",15,&i);
return;
break;
default:
break;
}
}
}
/***********************************************************************************/
// 文件结束
/***********************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -