|
编译环境CVAVR
1.IO口的控制
/*****************************************************
Project : M8
Version : 1.0
Date : 2006-5-5
Author : WCJ
Company :
Comments:AVR(ATMEGA8) 入门学习板
*****************************************************/
// 本章简介
/****************************************************
一,学习目的:AVR的IO口读写操作
二,基础知识:AVR采用3个8位寄存器控制I/O端口
方向寄存器:DDRx (可读写)
数据寄存器:PORTx (可读写)
输入引脚寄存器:PINx (只读)
* SFIOR寄存器中的上拉屏蔽位PUD为"1",则会屏蔽掉所有端口引脚中的内部上拉电阻
三,实验任务:
1:PD3读取高,低电平(PC串口第4脚),使接在PB1脚上LED(D2 0C1A) (低电平亮,高电平暗)
四,注意事项:
PC串口是RS232电平,所以通过板子上的MAX232进行电平转换
将JP2上的PB1跳针短路,将PORTB.1连接到D2的阴极
将JP3上的PD3跳针短路,PD3读取串口RTS脚(4)电平,通过程序控制D2
****************************************************/
#include //包含ATMEGA8L的寄存器定义,和中断向量表
#include //CVAVR 自带的延时函数
void main(void)
{
unsigned char i,j;
PORTB|=0x02;//输出为1;
DDRB|=0x02;//PORTB.1为输出方式;
/*
或者
PORTB=0b00000010;//输出为1;
DDRB=0b00000010;//PORTB.1为输出方式;
*/
/*
或者
PORTB.1=1;//输出为1;
DDRB.1=1;//PORTB.1为输出方式;
*/
PORTD.3=1;//输入上拉;
DDRD.3=0;//PORTD.3为输入方式;
while (1)
{
// if(PIND.3==0)//读取管脚状态
// {
// PORTB.1=0;//D2亮
// }
// else
// {
// PORTB.1=1;//D2暗
// };
for(i=1;i<10;i++)
{
for(j=5;j<100;j++)
{
PORTB.1=0;delay_ms(i);
PORTB.1=1;delay_ms(i);
}
}
}
}
[ 本帖最后由 蓝雨夜 于 2011-4-12 07:59 编辑 ]
|
|