从0开始学习51单片机第二集之流水灯
时间:10-02
整理:3721RD
点击:
首先,我在这里谢谢大家鼓励我!今天我写了一个流水灯程序,开始也是不太顺利,弄了好一阵子。希望大家看看我写的程序,帮忙指出程序中不规范的地方,我一定会加以改正!
/*******程序名称:八个LED灯左移流水显示*******/
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define led_port P0 /*定义显示端口*/
/*****1MS延时程序****/?
void delay(uchar x)
{
uchar j;
while(x--)
{ for(j=0;j<125;j++)
{;}
}
}
/*****主程序****/
void main()
{
uchar led_data; /*定义显示寄存器*/
uchar i;
while(1)
{
led_data=0xfe; /*初始化显示寄存器*/
led_port=led_data;`/*将数据输出到LED端口*/
delay(500); /*延时*/
for(i=0;i<8;i++) /*做8次左移的循环*/
{
led_data=(led_data<<1)+1;/* 数据左移一位并+1*/
led_port=led_data;
delay(500);
}
led_port=0xff;/*全部关闭*/
delay(500);
}
}
/*******程序名称:八个LED灯左移流水显示*******/
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define led_port P0 /*定义显示端口*/
/*****1MS延时程序****/?
void delay(uchar x)
{
uchar j;
while(x--)
{ for(j=0;j<125;j++)
{;}
}
}
/*****主程序****/
void main()
{
uchar led_data; /*定义显示寄存器*/
uchar i;
while(1)
{
led_data=0xfe; /*初始化显示寄存器*/
led_port=led_data;`/*将数据输出到LED端口*/
delay(500); /*延时*/
for(i=0;i<8;i++) /*做8次左移的循环*/
{
led_data=(led_data<<1)+1;/* 数据左移一位并+1*/
led_port=led_data;
delay(500);
}
led_port=0xff;/*全部关闭*/
delay(500);
}
}
这个程序调试过吗?
第一集在哪?要看!
我调试过了,在学习板上调试过,一开始不成功,因有以下两个错误:1、将#define led_port=P0了!2、将for(i=0;i<8;i--);后来我反复看了挻久的才发现到问题。改正后终于可以啦!
不错的程序,
