📄 main.c
字号:
/* LEDS.C example file for Motorola MC9S12DG128 Evaluation Board */
#include <hidef.h>
/* port A definitions */
#define PORTA (*((volatile unsigned char*)(0x0000)))
#define DDRA (*((volatile unsigned char*)(0x0002)))
/* port B definitions */
#define PORTB (*((volatile unsigned char*)(0x0001)))
#define DDRB (*((volatile unsigned char*)(0x0003)))
/*PORT P definitions */
#define PORTP (*((volatile unsigned char*)(0x0258)))
#define DDRP (*((volatile unsigned char*)(0x025A)))
#define INTCR (*((volatile unsigned char*)(0x001E)))
int number=0;
int i_1=8,j_2=8,k_3=8,h_4=8;
void display_sub(int t)
{
int i=t;
if(i==0)PORTP=0x14;
if(i==1)PORTP=0xD7;
if(i==2)PORTP=0x4C;
if(i==3)PORTP=0x45;
if(i==4)PORTP=0x87;
if(i==5)PORTP=0x25;
if(i==6)PORTP=0x24;
if(i==7)PORTP=0x57;
if(i==8)PORTP=0x04;
if(i==9)PORTP=0x05;
}
void display_chose_sub(int chose_display , int display)
{
int i=chose_display;
int j=display;
int display_chose;
switch(i)
{
case 0:
{
display_chose=0xEF;
PORTA |=0x80;/*in order to turn off LED*/
PORTA &=display_chose;/*chose the LED you want*/
display_sub(j);/*display the number*/
break;
}
case 1:
{
display_chose=0xDF;
PORTA |=0x10;
PORTA &=display_chose;
display_sub(j);
break;
}
case 2:
{
display_chose=0xBF;
PORTA |=0x20;
PORTA &=display_chose;
display_sub(j);
break;
}
case 3:
{
display_chose=0x7F;
PORTA |=0x40;
PORTA &=display_chose;
display_sub(j);
break;
}
}
}
void delay(void)/*delay 500us*/
{
int p=500;
for(;p>0;)
{
p--;
asm
{
nop
}
}
}
#pragma TRAP_PROC
void interrupt_count_ISR(void)
{
asm{
sei
}
number++;
h_4=number/1000;
k_3=(number-h_4*1000)/100;
j_2=(number-h_4*1000-k_3*100)/10;
i_1=number-h_4*1000-k_3*100-j_2*10;
asm
{
cli
}
}
#pragma TRAP_PROC
void UnimplementedISR(void)
{
/* Unimplemented ISRs trap.*/
asm
{
nop
}
}
void main(void)
{
INTCR=0xE0;/*for the down edge*/
DDRA=0xfe;/* PTA0 as input */
PORTA|=0xfe;
DDRB=0xff; /* PTB as output */
PORTB=0; /* LEDs on */
DDRP=0xff;
asm
{
cli
}
while(1)
{
display_chose_sub(0,i_1);
delay();
display_chose_sub(1,j_2);
delay();
display_chose_sub(2,k_3);
delay();
display_chose_sub(3,h_4);
delay();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -