在单个数码管上跳动数字,0至9
seg.c delay.c delay.h
//seg.c #include <reg52.h> #include <intrins.h> #include "delay.h" #define SEGPORT P0 unsigned char segdata[16] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E}; void main() { unsigned char i; while(1) { for(i = 0; i < 16; i++) { SEGPORT = segdata[i]; delay_s(1); } } } //delay.c void delay_us(unsigned char t) { while(--t); } void delay_ms(unsigned char t) { while(t--) { delay_us(245); delay_us(245); } } void delay_s(unsigned char t) { while(t--) { delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); delay_ms(200); } } //delay.h #ifndef _DELAY_H #define _DELAY_H extern void delay_us(unsigned char t); extern void delay_ms(unsigned char t); extern void delay_s(unsigned char t); #endif