各位:
大家好,N久没有和大家见面了,由于生活所迫,以前计算机,现在单片机了,哈哈………………
废话少说,其程序原代码如下:
# include
sbit P17 = P3^7;//端口定义
sbit P18 = P3^5;
sbit P19 = P2^0;
void RColor( void )//显示红色函数
{
P19=0;
}
void GColor( void )//显示绿色函数
{
P18=0;
}
void BColor( void )//显示蓝色函数
{
P17=0;
}
void TimeDelay( int i )//时间延迟函数
{
int m;
int j;
int k;
for( m = i; m > 0; m-- )
for( j = 200;j > 0;j-- )
for( k = 200;k > 0;k-- )
;
}
unsigned char ID;//定义计数器
bit P5; //按钮定义
void CallFunction( void );
void main( void )
{
P17=1;//端口初始化
P18=1;
P19=1;
while( 1 )
{
if( P5 == 0 )//按钮按下了吗?
TimeDelay(5);//延迟函数,去抖动
if( P5 == 0 )//按钮确实按下了
{
ID++;
if( ID== 8)
ID = 0;
}
switch( ID )//根据计数器的不同显示不同的颜色
{
case 0x00:
RColor( );
break;
case 0x01:
GColor( );
break;
case 0x20:
BColor( );
break;
case 0x03:
RColor( );
GColor( );
break;
case 0x04:
GColor( );
BColor( );
break;
case 0x05:
GColor( );
BColor( );
break;
case 0x06:
RColor( );
GColor( );
BColor( );
case 0x07:
CallFunction( );
break;
while( 1 )
{
;
}
}
}
}
void CallFunction( void )//作用,通过不同端口输出的脉冲不同,组合起来以显示不同的颜色,且在不同颜色之间相互转换,
{
unsigned char i;
unsigned char j;
unsigned char k;
for( i = 20;i > 0;i--)
{
TimeDelay( i );
if( i==1 )
i = 20;
RColor( );
for( j = 20;j > 0; j--)
{
TimeDelay( j );
if(j == 1)
j=20;
GColor( );
for( k = 20;k > 0;k-- )
{
TimeDelay( k );
if( k==1 )
k = 20;
BColor( );
}
}
}
}
其功能是,利用RGB三基色原理,实现LED的不同颜色,用的芯片为EM78p417NM,调试,编译没有问题,现在硬件还没有弄好,提前请各位高人指点下有没有什么错误,如果有怎么改正,谢谢!!!
我给大家特别推荐的两款产品,非常棒!!!
1. c8051f 单片机(c2 ,jtag)和at89s5x单片机(isp)二合一串口编程下载线,支持3伏(c8051f 单片机),5伏(at89s5x单片机)电源,
目前通过实际验证可编程下载的芯片:c8051f310、c8051f320、c8051f330D、c8051f340、c8051f350、c8051f360、c8051f410、c8051f020、c8051f120、at89s51、at89s52、at89s8253等。
2. c8051f320 usb demo 板(是目前学习和应用usb 性价比特别高的一款单片机,资料全!上手快!)软硬件资源丰富:可提供硬件原理图;USB demo板上位机应用软件源代码(VB6 和VC6),以及usb底层驱动和驱动安装信息;USB demo板单片机固化程序的c51源代码。同样可以提供在keil下串口isd51源代码,可以硬件单步,连续运行和仿真!!!
c8051f320 usb demo 板+ c8051f 单片机(c2 ,jtag)和at89s5x单片机(isp)二合一串口编程下载线一套价格壹百肆拾元;外地另加20元邮资。
陕西杨工c8051f单片机博客
手机 13002928013
http://c8051fmcu.blog.sohu.com