單片機用的是 AT89C51代碼如下
#include<reg52.h> //52系列單片機頭文件
#include <intrins.h> //包含_crol_(循環左移)函數所在的頭文件
void delay(int z); //聲明子函數
unsigned char temp; //定義一個變量,用來給P1口賦值
int i,j;
void main()
{
temp=0xfe; //賦初值11111110
P1=temp; //先點亮第一個發光二極管
while(1) //大循環
{
for(i=7;i>0;i--) //控制亮點從低位往高位移動7次
{
delay(500); //延時500毫秒
temp=_crol_(temp,1); //將temp循環左移一位后再賦給temp
P1=temp; //將移位后的值賦給P1口,從低位到高位逐個點亮發光二極管
}
for(j=7;j>0;j--) //控制亮點從高位往低位移動7次
{
delay(500); //延時500毫秒
temp=_cror_(temp,1); //將temp循環右移一位后再賦給temp
P1=temp; //將移位后的值賦給P1口,從高位到地位逐個點亮發光二極管
}
}
}
void delay(int z)
{
unsigned int x,y;
for(x=z;x>0;x--) //延時z毫秒
for(y=110;y>0;y--);
}
電路原理圖如下:
QQ圖片20181216222908.png (4.36 KB, 下載次數: 56)
下載附件
數碼管
2018-12-16 22:29 上傳
|