單片機課程設計流水燈
『壹』 單片機16路流水燈課程設計
程序和流程圖寫著麻煩,給你個思路吧分別以P0,P1做兩個單八路流水等先P1全滅,讓P0單流水並計數,8次後P0全滅,讓P1單流水並計數,8次後返回循環.找我的話到 www.ahut.org,論壇中有我的電子製作實驗室版塊
『貳』 單片機用at89c51來製作一個16個燈的流水燈
用一個 16 位的變數,每隔一會,就把內容變化一下,
再輸出到介面,即可。
『叄』 AT89C51單片機控制流水燈課程設計
/*******************************************************************************
* 標題: ME300系列單片機開發系統演示程序 - LED流水燈 *
;* 硬體: ME300A,ME300S,ME300A+,ME300B *
* 文件: wl001.C *
* 日期: 2004-1-5 *
* 版本: 1.0 *
* 作者: 偉納電子 - Freeman *
* 郵箱: [email protected] *
* 網站: http://www.willar.com *
********************************************************************************
* 描述: *
* LED流水燈 *
* *
********************************************************************************
* 跳線設置: *
* ME300A+ JP1 全部短接,JP2短接在3-4端 *
* ME300B JP1 短接,JP2短接在3-4端 *
* *
* *
********************************************************************************
* 【版權】 Copyright(C)偉納電子 www.willar.com All Rights Reserved *
* 【聲明】 此程序僅用於學習與參考,引用請註明版權和作者信息! *
*******************************************************************************/
#include<reg51.h>
#include <intrins.h>
void delayms(unsigned char ms)
// 延時子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
main()
{
unsigned char LED;
LED = 0xfe;
P0 = LED;
while(1)
{
delayms(250);
LED = _crol_(LED,1); //循環右移1位,點亮下一個LED
P0 = LED;
}
}
『肆』 51單片機流水燈用C語言編寫的設計程序
/*********************************************************************************************
程序名: 8路流水燈
編寫時間:年5月13日
硬體支持:STC12C4052AD外部12MHZ晶振
介面說明:8個LED彩燈接P1口
修改日誌:
NO.1-2009年5月14日 在程序前面加入參數定義項
/*********************************************************************************************
說明:
根據參數設置產生流水LED效果。
/*********************************************************************************************/
#include <REG51.h> //51頭文件
/*********************************************************************************************/
#define DY_PORT P1 //設置LED連接的I/O組
#define DY_SPEED 100 //設置每一個明亮級的停留時間(值域:0~65535)
/*********************************************************************************************
bit [自定義名] ; //定義一個位(位的值只能是0或1)例:bit LED
#define [代替名] [原名] //用代替名代替原名(可以方便修改常改或調試的值)例:#define LED P1
sbit [自定義名] = [系統位名] ; //自定義系統位名。例:sbit Add_Key = P3 ^ 1;
unsigned char [自定義名] ; //定義一個0~255的整數變數.例:unsigned char a;
unsigned int [自定義名] ; //定義一個0~65535的整數變數
/*********************************************************************************************/
void delay (unsigned int a){ // 1ms延時程序
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);//STC單片機在外部晶振為12MHz時i值上限為600
} //AT89C51單片機在外部晶振為12MHz時i值上限為125
}
/*********************************************************************************************/
void main(void){
unsigned int i;
unsigned int temp;
while(1){
temp=0x01;
for(i=0;i<8;i++){ //8個流水燈逐個閃動
DY_PORT=~temp;
delay(DY_SPEED); //調用延時函數
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++){ //8個流水燈反向逐個閃動
DY_PORT=~temp;
delay(DY_SPEED); //調用延時函數
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++){ //8個流水燈依次全部點亮
DY_PORT=temp;
delay(DY_SPEED); //調用延時函數
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++){ //8個流水燈依次反向全部點亮
DY_PORT=temp;
delay(DY_SPEED); //調用延時函數
temp>>=1;
}
}
}
/*********************************************************************************************/
『伍』 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)
單片機流水燈C語言程序的源代碼如下:
#include //51系列單片機定義文件
#define uchar unsigned char //定義無符號字元
#define uint unsigned int //定義無符號整數
void delay(uint); //聲明延時函數
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
P1=temp;
delay(100); //調用延時函數
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
P1=temp;
delay(100); //調用延時函數
temp>>=1;
}
void delay(uint t) //定義延時函數
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
(5)單片機課程設計流水燈擴展閱讀
51單片機流水燈的源代碼如下
#include<reg51.h>
#include<intrins.h>
voiddelay(inta)
{
inti;
while(a--)for(i=0;i<110;i++);
}
main()
{
inti;
while(1)
{
P0=0xfe;
for(i=0;i<8;i++)
{
P0=_crol_(P0,1);
delay(500);
}
}
}
『陸』 如何用單片機簡單製作一個流水燈
工具:STC系列51單片機、串口轉換器(USB轉TTL 或232轉TTL)
材料:實驗板一塊(可以買現成的,也可以買麵包板自己搭建),電阻、LED燈 若干,5V電源等。
以下程序可以直接用Keil C 直接編譯執行。
//可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。
//具體實現方法可以參考如下程序:
#include<reg51.h>
#include<intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
voiddelay(uinta);
voidmain()
{
P1=0xfe;
while(1)
{
//向左循環點亮LED
for(i=0;i<7;i++)
{
P1=_crol_(P1,1);//左移一位,點亮下一位LED
delay(55);
}
//向右循環點亮LED
for(i=0;i<7;i++)
{
P1=_cror_(P1,1);//右移一位,,點亮上一位LED
delay(55);
}
}
}
//延時函數,延時a毫秒
voiddelay(uinta)
{
uintx,y;
for(x=a;x>0;x--)
for(y=110;y>0;y--);
}
『柒』 單片機流水燈課程設計
功能:先保持全滅一段時間,然後順序點亮8個燈,全亮後再保持一段時間,然後從從頭開始
SS2:
MOV A,#0FFH ;全部熄滅
MOV P1,A ;送顯示
ACALL DELAY1S ;延時一段時間,保持全滅1S
SS1:
RL A ;循環左移1位
CLR ACC.0 ;將最低位置0,點亮1個等
MOV P1,A ;送顯示
ACALL DELAY100ms ;延時一段時間,感覺上100ms比較合適,根據情況自己調整一下
JNZ SS1 ;A不等於0,說明還有燈未點亮,循環繼續下一個
ACALL DELAY1S ;A=0,保持全部點亮1S鍾
JMP SS2 ;再次開始
延時子程序我就不寫了,你應該會的。
建議:牽涉到延時,最好用定時中斷實現,實際運用中ms級的延時一般都會使用中斷實現,否則CPU的資源就浪費了。如果是作業就算了,如果你想學些東西最好用中斷的方式再嘗試一下。
『捌』 學習單片機流水燈的步驟
先用c語言入門,學得差不多時可以學習單片機匯編,這樣對理解單片機內部工作原理非常有幫助,跟著郭天祥<十天學會單片機> 的視頻來,相信你很快就能入門的
『玖』 單片機課程設計,按鍵控制6個LED流水燈設計:按下K1,執行A,按下K2,執行B,
你好,請問每次變換兩個燈是不是亮1,2;亮0.5S,熄滅,亮3,4,;以此類推 ?