飞思卡尔单片机编程实例!!


#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define RowSize 4
#define ColumnSize 4
const unsigned char DisplayDecode[]={~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,
~0x6f,~0x77,~0x7c,~0x39,~0x5e,~0x79,~0x71};
const unsigned char KeyDecode[]={ 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x0a,0x0b,
0x0c,0x0d,0x0e,0x0f};
unsigned char showdata[4];
unsigned char k;
void Init_PORT() {
DDRA=0x0F;//输出
/*Ports ABEK, BKGD pin Pull-up Control Register (PUCR)
7 PUPKE
6 BKPUE
5 0
4 PUPEE
3 0
2 0
1 PUPBE
0 PUPAE
*/
PUCR|=0x01;
DDRB=0xFF;//输出
DDRP=0xFF;
DDRT=0xFF;

}



void delay(unsigned int countert)
{
unsigned int i,j;
for(i=0;i<countert;i++)
for(j=0;j<4000;) j++;
}

unsigned char KeyScan()
{
unsigned char Input,Output,Keynumber,Keyvalue1;
unsigned char i;

Keyvalue1=0xFF;
Output=0xF0;
PORTA=Output;
Input=PORTA>>4;
if(Input!=0x0F)
{
delay(4);
Input=PORTA>>4;
if(Input!=0x0F)
{
Output=0x01;
; for(i=0;i<RowSize;i++)
{
PORTA=~Output;
Input=PORTA>>4;
if(Input!=0x0F)
{
switch(Input)
{
case 0x0E:
Keynumber=0;
break;
case 0x0D:
Keynumber=1;
break;
case 0x0B:
Keynumber=2;
break;
case 0x07:
Keynumber=3;
break;
}
Keynumber=Keynumber+i*ColumnSize;
Keyvalue1=KeyDecode[Keynumber];
break;
}
else Output<<=1;
}
}

}
k++; //有一次按键操作,K就+1次;
return(Keyvalue1);
}

void Show(unsigned char m)
{
unsigned int n;
PTT=0x0f;
for(n=0;n<4;n++) {

switch(n) {
case 0:
PTP=~0x08;
PTT=0xfe; break;
case 1:
PTP=DisplayDecode[m%10];
PTT=0xfd; break;
case 2:
PTP=DisplayDecode[m/10];
PTT=0xfb; break;
default:
PTP=~0x08;
PTT=0xf7; break; }
delay(1); }
}
unsigned char m_length(unsigned int year,unsigned char month)
{

int leap;
if(month==2)
{ if(year%4==0) {


if(year%100==0)

{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap)
return(29);
else
return(28) ;






}


else {
if((month==4)||(month==6)||(month==9)||(month==11))
return(30);
else return(31);
}

}

void main(void)
{
/* put your own code here */
unsigned char p;
unsigned char M[6];
unsigned int year;
unsigned char m

你可能喜欢

  • 单片机C语言程序
  • 单片机开发
  • 飞思卡尔单片机
  • 工程电路
  • 看懂电路图
  • 单片机编程

飞思卡尔单片机编程实例!!相关文档

最新文档

返回顶部