设为首页
收藏本站
家园
博客
课程平台
教材专区
主站
开启辅助访问
切换到窄版
登录
|
加入因仑
请
登录
后使用快捷导航
没有帐号?
加入因仑
搜索
搜索
热搜:
活动
交友
discuz
本版
用户
论坛
BBS
全部帖子汇总
全部技术帖
非技术帖汇总
大赛专区
因仑云商城
产品服务
因仑项目小组
快捷导航
因仑“3+1”工程特种兵精英论坛
»
论坛
›
单片机
›
AVR单片机
›
ATMEGA16单片机精简开发板图片
返回列表
查看:
952
|
回复:
0
ATMEGA16单片机精简开发板图片
[复制链接]
张衍波
张衍波
当前离线
积分
8235
电梯直达
沙发
发表于 2015-4-28 19:10:40
|
只看该作者
|
倒序浏览
|
阅读模式
/********************************************************************
实现功能:ATMGEA16单片机精简开发板测试程序
使用芯片:ATMEGA16
晶振:8.00MHZ
编译环境:ICC AVR
作者:zhangxinchunleo
网站:
www.ourhc.cn
淘宝店:汇诚科技
http://shop36330473.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char //宏定义字符型
#define uint unsigned int //宏定义字整行
uchar KEY;
/********************************************************************
N ms延时函数
*********************************************************************/
void delay_nms(uint n)
{
uint j,k;
for (j=0;j<n;j++)
{
for (k=0;k<1140;k++);//1ms延时
}
}
/********************************************************************
初始化I/O
*********************************************************************/
void Init_IO(void)
{
//设置A口为输出
DDRA=0xFF;
PORTA=0xFF;
//设置B口为输出
DDRB=0xFF;
PORTB=0xFF;
//设置C口为输出
DDRC=0xFF;
PORTC=0xFF;
//设置D口为输出
DDRD=0XFF;
PORTD=0xFF;
}
/********************************************************************
按键输入函数
*********************************************************************/
void Key_Process()
{
while((PIND&0X04)==0){KEY=1;}
while((PIND&0X08)==0){KEY=2;}
while((PIND&0X10)==0){KEY=3;}
while((PIND&0X20)==0){KEY=4;}
if(KEY==1){PORTB=0x55;KEY=0;}
if(KEY==2){PORTB=0xaa;KEY=0;}
if(KEY==3){PORTB=0xf0;KEY=0;}
if(KEY==4){PORTB=0x0f;KEY=0;}
}
/********************************************************************
主函数
*********************************************************************/
void main(void)
{
Init_IO();//初始化IO口
/**********所有IO口闪烁两次***********/
PORTA=0x00;
PORTB=0x00;
PORTC=0x00;
PORTD=0x00;
delay_nms(1000);//延时1秒
PORTA=0xFF;
PORTB=0xFF;
PORTC=0xFF;
PORTD=0xFF;
delay_nms(1000);//延时1秒
PORTA=0x00;
PORTB=0x00;
PORTC=0x00;
PORTD=0x00;
delay_nms(1000);//延时1秒
PORTA=0xFF;
PORTB=0xFF;
PORTC=0xFF;
PORTD=0xFF;
/**********闪烁结束***********/
DDRD=0X03;//设置PD口为输入
PORTD=0xFF;
while(1)
{
Key_Process();
}
}
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
加入因仑
x
收藏
0
分享
支持
0
反对
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入因仑
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
重庆能源职业学院
Android
智能家居
河南职业技术学院
北京工业大学
全部技术帖
PCB设计
Linux
Java
山东信息职业技术学院
快速回复
返回顶部
返回列表