onekey._c

来自「protues_atmeg8学习之:按键篇源代码」· _C 代码 · 共 51 行

_C
51
字号
/******************************************/
//文件名:Int0.c
//功能: 外部中断的应用
//作者:  young
//时间: 2006.10.1
//目标MCU:ATmega8   
//晶振:  8MHZ
/******************************************/
#include <iom8v.h>
//#include <macros.h>
#include "Delay.h"

unsigned char CountNum;   //全局变量,用来计数

//按键扫描函数
void ScanKey(void)
{
    unsigned char key;	
	key=PINC;
    if(1==key&0x01)	
	    return;	
	delay_ms(10);
		
	key=PINC;
	if(1==key&0x01)	
	    return;
	CountNum++;
	while(0==key&0x01)	
	    key=PINC;	
}

//主函数,显示数据时先关中断,然后再打开
void main()
{
	unsigned char num[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 
	                       0x6D, 0x7D, 0x07, 0x7F, 0x6F};
	//初始化端口
	DDRB=0xFF;	  //设置B口为输出模式
	PORTB=0xFF;	  //置高电平
	DDRC=0x00;
	//PORTC=0xFF;	    	
	
	CountNum=0;   //初始化全局变量	
	while (1)
	{	
	    ScanKey();//扫描按键
		if(CountNum>=10)
		    CountNum-=10;        			
		PORTB=num[CountNum];		
     }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?