广东哪家网站建设后台管理便捷,营销型网站的分类不包含,定西市建设局官方网站,做的好的奥运会网站学习目标#xff1a;
1、用汇编或者c语言实现D1 D3 D5 D7 为一组 #xff1b;D2 D4 D6 D8 为一组 #xff0c;两组实现 1#xff09;一组亮约一秒 另一组灭一秒#xff0c;这样的互闪现象五次后 25分 2#xff09;所有灯灭约一秒后#xff0c; … 学习目标
1、用汇编或者c语言实现D1 D3 D5 D7 为一组 D2 D4 D6 D8 为一组 两组实现 1一组亮约一秒 另一组灭一秒这样的互闪现象五次后 25分 2所有灯灭约一秒后 15分 3D1-D2-D3-D4-D5-D6-D7-D8 逐次间隔约0.5秒亮后等全亮后再 从D8-D7-D6-D5-D4-D3-D2-D1 逐次间隔0.5秒灭掉重复上面的全亮到全 灭五次后回到状态 1重复执行 1) 2 3。35分 学习内容
1、用汇编或者c语言实现D1 D3 D5 D7 为一组 D2 D4 D6 D8 为一组 两组实现 1一组亮约一秒 另一组灭一秒这样的互闪现象五次后 25分 2所有灯灭约一秒后 15分 3D1-D2-D3-D4-D5-D6-D7-D8 逐次间隔约0.5秒亮后等全亮后再 从D8-D7-D6-D5-D4-D3-D2-D1 逐次间隔0.5秒灭掉重复上面的全亮到全 灭五次后回到状态 1重复执行 1) 2 3。35分
代码如下
#include reg51.h
#include intrins.h#define LED_PORT P2
sbit led1 P2^0;
sbit led2 P2^1;
sbit led3 P2^2;
sbit led4 P2^3;
sbit led5 P2^4;
sbit led6 P2^5;
sbit led7 P2^6;
sbit led8 P2^7;typedef unsigned int u16;
typedef unsigned char u8;void delay_us(u16 a)
{while(a--);
}void delay500ms(void)
{unsigned char i,j,k;for(i15;i0;i--)for(j202;j0;j--)for(k81;k0;k--);
}
void Led_1(void)
{int i 0,k0;led2 1;led4 1;led6 1;led8 1;led1 1;led3 1;led5 1;led7 1;delay500ms();delay500ms(); for(i 0;i3;i){led1 0;led3 0;led5 0;led7 0;led2 1;led4 1;led6 1;led8 1;delay500ms();delay500ms();if(k 2){led1 1;led3 1;led5 1;led7 1;led2 0;led4 0;led6 0;led8 0;delay500ms();delay500ms(); k;}}led2 1;led4 1;led6 1;led8 1;led1 1;led3 1;led5 1;led7 1;delay500ms();delay500ms();
}
void Led_2(void)
{int j0,i0,k0;u8 table[]{0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};for(j0;j3;j){for(i0;i9;i) // 循环点亮8个LED{LED_PORT~table[8-i]; // 点亮第i个LEDdelay500ms(); // 延时0.5秒}LED_PORT 0xFF;delay500ms(); LED_PORT ~0x00;if( k 2){for(i0;i9;i) // 循环点亮8个LED{LED_PORTtable[i]; // 点亮第i个LEDdelay500ms(); // 延时0.5秒}k;}}for(i0;i5;i){LED_PORT ~0x00;delay500ms();delay500ms();LED_PORT ~0xFF;delay500ms();delay500ms();}
}
void main(void)
{while(1){Led_1();Led_2();}
}另外一种方法全由十六进制数控制 利用左移右移完成 这种方法明显还是优于上一种方法。
#include reg51.h#define uint unsigned int
#define uchar unsigned charvoid delay(uint z) {uint x,y;for(xz;x0;x--)for(y110;y0;y--);
}void main()
{int i,j;//第一功能for(i0;i5;i){P2 0x55;delay(500);P2 0xAA;delay(500);}//第二功能P2 0xFF;delay(500);//第三功能for(j0;j5;j){for(i0;i8;i){P20XFEi;delay(100);}for(i0;i8;i){P2~(0x7fi);delay(100);} }
}汇编解释 ORG 0000H MAIN: ACALL DELAY SETB P1.0 ACALL DELAY CLR P1.0 AJMP MAIN DELAY: MOV R1,#0FFH DJNZ R1,$ RET END ORG 0000H 程序首个地址
MAIN: 主函数标识符
ACALL DELAY 调用延时函数
SETB P1.0 置P1.0为1
ACALL DELAY 调用延时函数
CLR P1.0 清零P1.0
AJMP MAIN 返回主函数循环执行以上代码使P1.0输出脉冲信号或者使p1.0控制灯闪烁
DELAY: 延时函数标识符
MOV R1,#0FFH 传送立即数255给R1寄存器
DJNZ R1,$ R1减一不为零跳转自身位置循环执行255次
RET 函数返回 弹出压栈数据
END 程序到此结束信仰是伟大的情感一种创造力量