led_128.c

来自「单片机开发资料光盘-双龙-686M.zip」· C语言 代码 · 共 58 行

C
58
字号
#include <iom128.h>
#define xtal 16
const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char led_buff[4]={0,0,0,0};	  
void delay_1ms(void)
	 {
	  unsigned int i;
 	  for(i=1;i<(unsigned int)(xtal*143-2);i++)
      	; 
	 }
/*void delay_ms(unsigned int n)
	 {
 	  unsigned int i=0;
   	  while(i<n)
   	  		{
			 delay_1ms();
			 i++;
   			}
	 }*/
void led_display(void)
	 {
	  unsigned char i;
	  DDRA=0xff;
	  PORTA=0xff;
	  DDRC|=0xf0;
	  PORTC|=0xf0;
	  for(i=0;i<4;i++)
	  	 {		  
		  PORTA=led_buff[i];
		  PORTC&=~(1<<(i+4));
		  delay_1ms();
		  PORTC|=0xf0;
		 }
	 }
void led_fill(unsigned char index)
	 {	 
	  unsigned char i;
	  for(i=0;i<4;i++)
	     {
		  led_buff[i]=seg_table[index+i];
		 }
	 }	 
void main(void)
	 {
	  unsigned char i,j;
	  while(1)
	  	   {
		    for(j=0;j<4;j++)
				{
		    	 led_fill(4*j);
				 for(i=0;i<200;i++)
			     	led_display();
				} 
		   }
	 }
	 	 

⌨️ 快捷键说明

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