實驗目的: 理解並掌握 led 燈的點亮原理; 理解並掌握單片機的 C 語言編程方法; 理解並掌握單片機位操作與埠操作的方法;實驗模塊:核心板+8 位流水燈與獨立按鍵模塊 模塊連接圖: 電路原理圖: 電路原理:將8位流水燈LED1——LED8的陰極與單片機的I/O口P1埠相連,當單片機P1埠相 ...
實驗目的: 理解並掌握 led 燈的點亮原理;
理解並掌握單片機的 C 語言編程方法;
理解並掌握單片機位操作與埠操作的方法;
實驗模塊:核心板+8 位流水燈與獨立按鍵模塊
模塊連接圖:
電路原理圖:
電路原理:將8位流水燈LED1——LED8的陰極與單片機的I/O口P1埠相連,當單片機P1埠相應的位賦低電平時,LED燈被點亮
實驗源碼:使用單片機的P1口做輸出口,依次全部點亮8位發光二極體。
#include "reg51.h" //包含頭文件
sbit led=P1^5; //表示用led等效於P1^5, P1^0就是指頭文件里定義的P1寄存器的第5BIT #define uchar unsigned char
#define uint unsigned int //延時函數
//************************************************************************************************** delay(uint time) //int型數據為16位,所以最大值為65535
{
uint i,j; //定義變數i,j,用於迴圈語句
for(i=0;i<time;i++) //for迴圈,迴圈50*time次
for(j=0;j<50;j++); //for迴圈,迴圈50次
} //**************************************************************************************************
//主函數
//**************************************************************************************************
void main() //主函數
{
uchar i,j; //定義變數i,j;
while(1) //進入while死迴圈
{
j=0xfe; //0xfe即為二進位1111 1110,即最低位為0,其他位為1
for(i=0;i<8;i++) //進入for迴圈,迴圈8次
{
P1=j; //依次點亮8位LED
delay(5000); //延時,修改延時即可修改時間間隔
j<<=1; //j左移1位,j<<=1等效於j=j<<1
}
}
}