#include<reg51.h> <br />#include<intrins.h> <br />#define uchar unsigned char <br />#define uint unsigned int <br />sbit P2_7=P2^7; <br /><br />uchar code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, <br /> 0x7d,0x07,0x7f,0x6f,0x40,0x00}; <br /><br />uchar code disbuf[]={1,2,3,4,5,6}; <br />/******************************************************************/ <br />void delay_10us(uchar n) <br />{ <br /> do <br /> { <br /> _nop_(); <br /> _nop_(); <br /> _nop_(); <br /> _nop_(); <br /> _nop_(); <br /> } <br /> while(n--); <br />} <br /><br />void delay_ms(uint n) <br />{ <br />do <br />delay_10us(131); <br />while(n--); <br />} <br /><br /><br /><br />void display_led(uchar t) <br />{ <br /> uchar i,temp; <br /> P2=0x00; <br /> temp=0x7f; //led显示 <br /> SBUF=temp; <br /> while(!TI);TI=0; <br /> for(i=0;i<6;i++) <br /> { <br /> P2=seg[disbuf]; <br /> delay_ms(t); <br /> if(temp==0xfd) break; <br /> P2=0x00; <br /> temp=temp<<7|temp>>1; <br /> SBUF=temp; <br /> while(!TI);TI=0; <br /> } <br /> <br /> } <br />main() <br />{ <br />while(1) <br />display_led(5); <br />} <br /><br />上面程序,Proteus 可以仿真,可是硬件实现不了 <br />第一次用到164,请高手指点 |
|