?? 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 + -