📄 led_01.c
字号:
//*本实验用于熟悉8位流水灯的使用
// 先轮流点亮8个灯,再依次点亮1,3,5,7
// 2.4.6.8个灯;接着同时点亮1,3,5,7;同时点亮
// 2,4,6,8.交替进行三次。
// 硬件要求: 拨码开关S0全部置ON
//芯片配置字,看门狗关,上电延时开,掉电检测关
//低压编程关,加密,4M晶体HS振荡
//作者:龙爷。2009年01月11日
//------头文件及数据定义----------------
#include<pic.h>
__CONFIG(0xf739);
//------函数申明------------------
void delayUS(unsigned char j); //US级延时子函数
void delayMS(unsigned char b); //MS级延时子函数
//-------主函数-------------------
void main()
{
while(1) //死循环,让c口流水灯一直工作
{
int i; //定义局部变量
TRISC=0X00; //定义C为输出
PORTC=0X01; //RCO置高电平,点亮第一个灯
for(i=8;i>0;i--) //循环左移七次
{
delayMS(200); //调用延时函数
delayMS(200); //两次延时便于观察,也可以用一次长一点的延时函数。
PORTC=PORTC<<1; //显示左移
}
PORTC=0x01;
for(i=4;i>0;i--)
{
delayMS(200); //1,3,5,7亮
delayMS(200);
PORTC=PORTC<<2; //左移两位
}
PORTC=0X02;
for(i=4;i>0;i--)
{ //2,4,6,8依次亮
delayMS(200);
delayMS(200);
PORTC=PORTC<<2;
}
for(i=3;i>0;i--) //循环三次
{
PORTC=0XAA; //1,3,5,7同时亮
delayMS(200);
delayMS(200);
PORTC=0X55; //2,4,6,8同时亮
delayMS(200);
delayMS(200);
}
}
}
//----------子程序---------
void delayUS(unsigned char i) //US级延时子函数
{
while(--i);
}
void delayMS(unsigned char a) //MS级延时子函数
{ do{
delayUS(199);
}while(--a);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -