本文目錄一覽:
- 1、單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)
- 2、c語言流水燈程序 求具體代碼
- 3、如何用c語言編寫流水燈?
- 4、很簡的51單片機C語言流水燈程序
- 5、用C51單片機控制12個LED流水燈的C語言程序怎麼寫?
- 6、51單片機流水燈用C語言編寫的設計程序是什麼?
單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)
1、用精確定時的方法,設置流水燈運行時的時間間隔,延時時間為500MS。
2、#include “reg51.h”首先寫出單片機的頭函數。
3、#include “intrins.h”輸入位移函數。
4、unsigned int count=0,led;定義函數。
5、輸入主函數,定義單片機的端口,寫入延時函數。
6、中斷跳轉,使流水燈運行起來。
c語言流水燈程序 求具體代碼
1滅)。編譯器keil
C代碼如下:
#include
#include
//包含循環左移函數
_cro_l頭文件
unsigned
char
tmp;
//中間變量
//////////////////////////////////////////////////////////////////////////////////////////////////
//
延時子程序
////////////////////////////////////////////////////////////////////////////////////////////////
void
delay(unsigned
int
cnt)
{
while(–cnt);
}
//////////////////////////////////////////////////////////////////////////////////////////////////
//
主函數
////////////////////////////////////////////////////////////////////////////////////////////////
main()
{
while(1)
//外層循環
{
tmp
=
0xfe;
P1
=
tmp;
while(1)
//內層循環,執行1、3、5、7亮燈循環
{
delay(30000);
//延時以便能觀察到燈亮移動,自己可以調整時間,由晶振和實參決定
tmp
=
_crol_(tmp,2);
P1
=
tmp;
if(tmp
==
0xbf)
//判斷是否已經點亮到第7燈。是,則退出進入2、4、6、8循環
{
break;
}
}
tmp
=
0xfd;
P1
=
tmp;
while(1)
//內層循環,執行2、4、6、8亮燈循環
{
delay(30000);
//延時以便能觀察到燈亮移動,自己可以調整時間,由晶振和實參決定
tmp
=
_crol_(tmp,2);
P1
=
tmp;
if(tmp
==
0x7f)
//判斷是否已經點亮到第8燈。是,則退出進入1、3、5、7循環
{
break;
}
}
}
}
如何用c語言編寫流水燈?
C語言流水燈程序是學習的基礎,一定要搞懂!給你發兩個!\x0d\x0a(一)\x0d\x0a#include //51系列單片機定義文件\x0d\x0a#define uchar unsigned char //定義無符號字符\x0d\x0a#define uint unsigned int //定義無符號整數\x0d\x0avoid delay(uint); //聲明延時函數\x0d\x0avoid main()\x0d\x0a{\x0d\x0a uint i;\x0d\x0a uchar temp;\x0d\x0a while(1)\x0d\x0a {\x0d\x0a temp=0x01;\x0d\x0a for(i=0;i=1;\x0d\x0a }\x0d\x0a temp=0xFE;\x0d\x0a for(i=0;i=1;\x0d\x0a }\x0d\x0a }\x0d\x0a}\x0d\x0avoid delay(uint a) //延時函數,毫秒級別\x0d\x0a{\x0d\x0a uint i;\x0d\x0a while(–a!=0) //執行空操作循環,其中a為形參,由調用該函數的函數語句提供值\x0d\x0a {\x0d\x0a for(i=0;i\x0d\x0a#define uint unsigned int\x0d\x0a#define uchar unsigned char\x0d\x0a#define ulong unsigned long\x0d\x0a sbit p2=P2^0;\x0d\x0avoid main()\x0d\x0a{\x0d\x0a TMOD=0x01;\x0d\x0a TR0=1;\x0d\x0a ET0=1;\x0d\x0a EA=1;\x0d\x0a while(1)\x0d\x0a {\x0d\x0a ;\x0d\x0a }\x0d\x0a}\x0d\x0a\x0d\x0atimer0() interrupt 1\x0d\x0a{\x0d\x0a TH0=0x00;\x0d\x0a TL0=0x06;\x0d\x0a p2=!p2;\x0d\x0a}\x0d\x0a\x0d\x0a(三)\x0d\x0a定時流水燈//\x0d\x0a#include\x0d\x0a#define uint unsigned int\x0d\x0a#define uchar unsigned char\x0d\x0a#define ulong unsigned long\x0d\x0abit ldelay=0;\x0d\x0avoid main()\x0d\x0a{\x0d\x0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};\x0d\x0a uchar leda;\x0d\x0a TMOD=0x00;\x0d\x0a TR0=1;\x0d\x0a ET0=1;\x0d\x0a EA=1;\x0d\x0a while(1)\x0d\x0a {\x0d\x0a if(ldelay)\x0d\x0a {\x0d\x0a ldelay=0;\x0d\x0a P2=led[leda];\x0d\x0a leda++;\x0d\x0a if(leda==9)leda=0; \x0d\x0a }\x0d\x0a }\x0d\x0a}\x0d\x0atimer2() interrupt 1\x0d\x0a{\x0d\x0a static uchar t;\x0d\x0a TF0=0;\x0d\x0a t++;\x0d\x0a if(t==10)\x0d\x0a {\x0d\x0a t=0;\x0d\x0a ldelay=1;\x0d\x0a }\x0d\x0a} \x0d\x0a\x0d\x0a(四)\x0d\x0a變速流水燈//\x0d\x0a#include\x0d\x0a#define uint unsigned int\x0d\x0a#define uchar unsigned char\x0d\x0a#define ulong unsigned long\x0d\x0abit ldelay=0;\x0d\x0auchar speed=100;\x0d\x0avoid main()\x0d\x0a{\x0d\x0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};\x0d\x0a uchar leda;\x0d\x0a TMOD=0x00;\x0d\x0a TR0=1;\x0d\x0a ET0=1;\x0d\x0a EA=1;\x0d\x0a while(1)\x0d\x0a {\x0d\x0a if(ldelay)\x0d\x0a {\x0d\x0a ldelay=0;\x0d\x0a P2=led[leda];\x0d\x0a leda++;\x0d\x0a if(leda==9)\x0d\x0a {\x0d\x0a leda=0;\x0d\x0a speed-=10;\x0d\x0a if(speed==0)speed=100;\x0d\x0a } \x0d\x0a }\x0d\x0a }\x0d\x0a}\x0d\x0atimer2() interrupt 1\x0d\x0a{\x0d\x0a static uchar t;\x0d\x0a TF0=0;\x0d\x0a t++;\x0d\x0a if(t==speed)\x0d\x0a {\x0d\x0a t=0;\x0d\x0a ldelay=1;\x0d\x0a }\x0d\x0a} \x0d\x0a\x0d\x0a(五)\x0d\x0a//每2兩圈改變一次亮度\x0d\x0a#include\x0d\x0a#define uint unsigned int\x0d\x0a#define uchar unsigned char\x0d\x0a#define ulong unsigned long\x0d\x0abit ldelay=0;\x0d\x0auchar speeda=30;\x0d\x0auint k=0;\x0d\x0avoid main()\x0d\x0a{\x0d\x0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};\x0d\x0a uchar leda;\x0d\x0a uchar speed[10]={5,80,70,60,50,40,30,20,10,5};\x0d\x0a uint i;\x0d\x0a uint k;\x0d\x0a TMOD=0x00;\x0d\x0a TR0=1;\x0d\x0a ET0=1;\x0d\x0a EA=1;\x0d\x0a while(1)\x0d\x0a {\x0d\x0a if(ldelay)\x0d\x0a {\x0d\x0a ldelay=0;\x0d\x0a P2=led[leda];\x0d\x0a leda++;\x0d\x0a if(leda==9)\x0d\x0a {\x0d\x0a leda=0;\x0d\x0a k++;\x0d\x0a if(k==2){\x0d\x0a k=0;\x0d\x0a speeda=speed[i];\x0d\x0a i++;\x0d\x0a if(i==9)i=0;\x0d\x0a }\x0d\x0a } \x0d\x0a }\x0d\x0a }\x0d\x0a}\x0d\x0atimer2() interrupt 1\x0d\x0a{\x0d\x0a static uchar t;\x0d\x0a TF0=0;\x0d\x0a t++;\x0d\x0a if(t==speeda)\x0d\x0a {\x0d\x0a t=0;\x0d\x0a ldelay=1;\x0d\x0a }\x0d\x0a} \x0d\x0a\x0d\x0a(六)\x0d\x0a//在上面基礎上調燈的亮度(調占空比)\x0d\x0a#include\x0d\x0a#define uint unsigned int\x0d\x0a#define uchar unsigned char\x0d\x0a#define ulong unsigned long\x0d\x0abit ldelay=0;\x0d\x0auchar speeda=30;\x0d\x0auint k=0;\x0d\x0auchar scale; \x0d\x0avoid main()\x0d\x0a{\x0d\x0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};\x0d\x0a uchar leda;\x0d\x0a uchar speed[10]={5,80,70,60,50,40,30,20,10,5};\x0d\x0a uint i;\x0d\x0a uint k;\x0d\x0a TMOD=0x00;\x0d\x0a TR0=1;\x0d\x0a ET0=1;\x0d\x0a EA=1;\x0d\x0a while(1)\x0d\x0a {\x0d\x0a if(ldelay==1)\x0d\x0a {\x0d\x0a ldelay=0;\x0d\x0a P2=led[leda];\x0d\x0a leda++;\x0d\x0a scale++;\x0d\x0a if(scale==10)scale=0;\x0d\x0a if(leda==9)\x0d\x0a {\x0d\x0a leda=0;\x0d\x0a k++;\x0d\x0a if(k==2){\x0d\x0a k=0;\x0d\x0a speeda=speed[i];\x0d\x0a i++;\x0d\x0a if(i==9)i=0;\x0d\x0a }\x0d\x0a } \x0d\x0a }\x0d\x0a }\x0d\x0a}\x0d\x0atimer2() interrupt 1\x0d\x0a{ \x0d\x0a static uchar t;\x0d\x0a TH0=0x1c;\x0d\x0a TL0=0xbf;\x0d\x0a TF0=0;\x0d\x0a t++;\x0d\x0a if(t==speeda)\x0d\x0a {\x0d\x0a t=0;\x0d\x0a ldelay=1;\x0d\x0a }\x0d\x0a if(scale==10)P2=0;\x0d\x0a if(scale==0)P2=1;\x0d\x0a}
很簡的51單片機C語言流水燈程序
1、51單片機C語言實現循環8個流水燈左移三次,後右移三次。
例程:
#includereg51.h //51單片機頭文件
#include intrins.h //包含有左右循環移位子函數的庫
#define uint unsigned int //宏定義
#define uchar unsigned char //宏定義
sbit beep=P2^3;
void delay(uint z) //延時函數,z的取值為這個函數的延時ms數,如delay(200);大約延時200ms.
{ //delay(500);大約延時500ms.
uint x,y;
for(x=z;x0;x–)
for(y=110;y0;y–);
}
void main() //主函數
{
uchar a,i,j;
while(1) //大循環
{
a=0xfe; //賦初值
for(j=0;j3;j++) for(i=0;i8;i++) //左移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關閉蜂鳴器
delay(50); //再延時50毫秒
a=_crol_(a,1); //將a變量循環左移一位
}
a=0x7f;
for(j=0;j3;j++) for(i=0;i8;i++) //右移三次
{
P1=a; //點亮小燈
beep=0; //開啟蜂鳴器
delay(50); //延時50毫秒
beep=1; //關閉蜂鳴器
delay(50); //再延時50毫秒
a=_cror_(a,1); //將a變量循環右移一位
}
}
}
2、51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8031單片機,後來隨着Flash rom技術的發展,8031單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。
用C51單片機控制12個LED流水燈的C語言程序怎麼寫?
#include “REG52.H”
//控制引腳定義
sbit LED1 = PX.X; //P0.0-P3.7任意引腳
…. …. …….
sbit LED12 = PX.X;
//宏定義燈亮燈滅
#define LED1_ON( ) LED1 =0 //陽極接電源
#define LED1_OFF( ) LED1 =1 //陽極接電源
……. …………. ………….
#define LED12_ON( ) LED12 =0 //陽極接電源
#define LED12_OFF( ) LED12 =1 //陽極接電源
void Init_GPIO( )//端口引腳初始化,關閉所有指示燈
{
LED1_OFF( ) ;
…………..
LED12_OFF( ) ;
}
void Delay_ms( u16 dat ) //延時函數
{
u16 i, j;
for(i = dat; i0; i–)
{
for (j=300; j0; j–);
}
}
int main( ) //主函數
{
Init_GPIO( );//引腳初始化
while(1) //大循環
{
LED1_ON( );//點亮第一個LED
LED2_OFF( );
………….
LED12_OFF( );
Delay_ms(1000);//延時 參數自己可以根據晶振頻率自己調節
LED1_OFF( ); //點亮第二個LED
LED2_ON( );
LED3_OFF( );
………….
LED12_OFF( );
Delay_ms(1000);
…………. //按照上面修改;
LED1_OFF( );//點亮第十二個LED
LED2_OFF );
LED3_OFF( );
………….
LED12_ON( );
Delay_ms(1000);
}
}
51單片機流水燈用C語言編寫的設計程序是什麼?
#includereg51.h
#includeintrins.h
#define uchar unsigned char
void delay(void)
{
uchar i,j;
for(i=0;i150;i++)
for(j=0;j240;j++);
}
main()
{
uchar led,i,j;
while(1)
{
for(i=0;i8;i++)
{
led=0xfei;
for(j=0;j8-i;j++)
{
P0=led;
led=_crol_(led,1);
delay();
}
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/291654.html