标题:
PIC单片机开发板之流水灯代码
[打印本页]
作者:
51黑芯片
时间:
2016-1-17 02:22
标题:
PIC单片机开发板之流水灯代码
这个是我自己diy的单片机开发板:
http://www.51hei.com/bbs/dpj-42590-1.html
/*
这是自已写的流水灯,速度为500ms
*/
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
void delay(uint x)
{
uint a,b; for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
uchar i; //变量定义最好放在第一行,否则会出错(提示一大堆的错误)
TRISD=0x00;
TRISC=0x00; PORTC=0x00; //把数码管屏蔽掉
//------------左移效果,向高位移动------------------------------
while(1)
{
PORTD=0x01;
/* RD0=1; //这是静态的,PORTD=0x??是动态的,如果加了蜂鸣器就得用动态的,用静态的蜂鸣器会一直响。
同样,573锁存器是静态的,而38译码器是动态的,无法做到静态同时选中8个数码管。38译码器每次译一个码,每次只能选中一个数码管,所以无法做到同时选中8个数码管*/
for(i=8;i>0;i--)
{
delay(500);
PORTD=PORTD<<1; //左移(向高位移动,显示效果为向右边高位移动),移动形成流水效果
}
//------------右移效果,向低位移动------------------------
/*
心得:通过调试窗口,实践得知PORTD=0x80才能形成右移效果。
犯的错:之前设为0x08则为0000 1000。而0x80则为1000 0000
*/
PORTD=0x80;
for(i=8;i>0;i--) //循环8次
{
delay(500);
PORTD=PORTD>>1; //右移(向低位移动,显示效果为向左边高位移动),移动形成流水效果
}
}
}
复制代码
作者:
seataozhang
时间:
2020-1-4 06:46
学习了,受益良多,感谢楼主分享,顶一下!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1