闪烁灯
来源:互联网 发布:vb数值类型 编辑:程序博客网 时间:2024/04/24 09:45
- #include <reg52.h>//
- sbit gate=P2^0;// 定义P2-0口
- void main(void)
- {
- unsigned int i,j;
- while(1)
- {
- for(i=500;i>0;i--)
- for(j=500;j>0;j--);// 双重循环,延时约1秒
- gate=!gate;// 对P-0口取反,控制小灯的亮灭
- }
- }
- #include <reg52.h>
- #define uint unsigned int
- sbit gate1=P2^0; // 定义P2-0口
- sbit gate2=P2^1; // 定义P2-1口
- sbit gate3=P2^2; // 定义P2-2口
- sbit gate4=P2^3; // 定义P2-3口
- void main(void)
- {
- uint i,j;
- while(1)
- {
- for(i=250;i>0;i--)
- for(j=250;j>0;j--); // 双重循环,延时约0.2秒
- gate1=!gate1; // 对P-0口取反,控制小灯的亮灭
- gate2=!gate2; // 对P-1口取反,控制小灯的亮灭
- gate3=!gate3; // 对P-2口取反,控制小灯的亮灭
- gate4=!gate4; // 对P-3口取反,控制小灯的亮灭
- }
- }
- #include <reg52.h>
- #include <absacc.h>
- #define unit unsigned int
- #define uchar unsigned char
- sbit L0=P2^0;
- sbit L1=P2^1;
- sbit L2=P2^2;
- sbit L3=P2^3;
- uchar data BUFFER[1]={0}; /*定时器计数变量*/
- void main(void)
- {
- P2=0x0f; // 初始化端口
- EA=1; IT1=1; ET0=1;
- TMOD=0x01; /* T0方式1计时0.01秒 */
- TH0=-5000/256;
- TL0=-5000%256;
- TR0=1; /* 开中断,启动定时器 */
- for (;;);
- }
- /* 定时计数器0的中断服务子程序 */
- void intserv1(void) interrupt 1 using 1
- {
- TH0=-5000/256; // 定时器T0的高四位赋值
- TL0=-5000%256;
- BUFFER[0]=BUFFER[0]+1; // 定时器T0的低四位赋值
- if (BUFFER[0]==100) // 百分秒进位
- {
- L3=!L3;
- L2=!L2;
- L1=!L1;
- L0=!L0;
- }
- }