四个跑马灯的c语言程序,入门编程语言跑马灯,C语言设计跑马灯程序
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;
}
}
void delay(uint t) //定義延時函數
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
跑馬燈程序最基本的,c語言還未入門啊!!!
C語言編程實現跑馬燈的四個不同的亮法
1:if里面的表達式應該是“==”,少了一個 “=” 編譯器不一定會報錯,但運行的時候一定進入不了;
2:最大的錯誤是那么多地方使用了變量“i “,但你卻只定義了一個全局變量,試想當你的程序進入了一個for后,再執行了“delay(10);”,等退出了這個延時后,i 的值已經變成了120了,所以緊接著這個for語句也會被退出,因為已經不滿足 i<10 這個條件了。再多定義幾個局部變量分開處理,不然是沒辦法搞定的。
3:你的P0=table2[]、P0=table2[]連下標都忘記寫了。
4:for(0;i<10;i++) 這句是錯的,你忘記了給“i ”賦值了。
5:你的延時太短點了吧,如果你的晶振用得快的話,估計燈跑起來一就一閃而過,連什么亮法都看不清楚。
能看出來的大概有這些,你再試下看有沒有別的
用匯編語言編寫跑馬燈程序
跑馬燈程序用匯編是很好實現的,只要用好循環移位指令就可以,以下是程序。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
LOOP:
MOV P1,A ;將控制字送端口
RL A ;控制字循環左移
LCALL DELAY ;延時
SJMP LOOP
DELAY: ;延時大概1秒
MOV R2,#10
DLY1:
MOV R3,#200
DLY2:
MOV R4,#250
DJNZ R4,$
DJNZ R3,DLY2
DJNZ R2,DLY1
RET
END
用C語言編寫簡單跑馬燈程序(4個燈的)
如下程序:
if(ledi==8)
{
ledi=0; //到了最后一個燈就換到第一個
//每跑一圈燈就根據預定設置的表格來決定下一圈的跑馬速度
speed=speedcode[i];
i++;if(i==2)i=0; ?你的速度設置不僅僅就2個呀(10個預定義的速度)
}
有兩種解決辦法:
一個就是將預定的速度加2倍
speedcode[30]={3,3,3,1,1,1,5,5,5,12,12,12,、、、、、、}
二是增加一全局變量uchar z=0;在i++前加上如下,前后不改:
、、、、、if(++z==3){z=0;i++;}、、、、、、、、、、、
求一個跑馬燈的C語言編程
參考:http://zhidao.baidu.com/link?url=vT0HMc_kojtX9us9LIHj3crC2GLu_DQfzIvw0nrXbcQnY9PMCMmShx5GYk0t79TB_c124h2GdXPDe8cIdcabhq
用51單片機(匯編語言寫)寫一個跑馬燈程序??知道的幫個忙寫寫。
答疑解難 跑馬燈程序
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: JB P0.7,MAIN ;等待開始鍵按下
LCALL YS ;按鍵延時
JB P0.7,MAIN
MOV A,#7FH ;是開始鍵按下 則跑馬燈開始運行
LL: MOV P1,A
LCALL YS ;顯示延時
RR A ;循環右移一位
JB P0.6,LL ;沒有按下停止鍵 則繼續跑馬
LCALL YS ;按鍵延時
JB P0.6,LL ;按下停止鍵則停止跑馬;否則繼續跑馬
MOV A,#0FFH
MOV P1,A
SJMP MAIN ;轉到程序開始處,等待開始鍵的按下
YS: MOV R7,#150 ;延時子程序
YL: MOV R6,#200
YY: NOP
DJNZ R6,YY
DJNZ R7,YL
RET
END
硬件接口電路如下:
哈哈 還滿意嗎 就請給俺選擇(滿意選項)吧
本文標簽:
總結
以上是生活随笔為你收集整理的四个跑马灯的c语言程序,入门编程语言跑马灯,C语言设计跑马灯程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript --- 堆栈内存
- 下一篇: 快速理解编程结构_为什么系统编程全都用英