51单片机c语言编写一个流水灯程序,要求如下(不能用数组,8个led指示灯从两边往中间移动,然后再分开)
#include
voiddelay(void)
{
unsignedinti,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
voidmain(void)
{
while(1)
{
P3=0xfe;//第一个灯亮
delay();//延时
P3=0xfd;//第二个灯亮
delay();
P3=0xfb;//第三个灯亮
delay();
P3=0xf7;//第四个灯亮
delay();
P3=0xef;//第五个灯亮
delay();
P3=0xdf;//第六个灯亮
delay();
P3=0xbf;//第七个灯亮
delay();
P3=0x7f;//第八个灯亮
delay();
}
}
扩展资料
单片机C语言16种方式流水灯
voidmain()
{
while(1)
{
P1=0xfe;//点亮第一个发光管
Delay(5000);
P1=0xfd;//点亮第二个发光管
Delay(5000);
P1=0xfb;
Delay(5000);
P1=0xf7;
Delay(5000);
P1=0xef;
Delay(5000);
P1=0xdf;
Delay(5000);
P1=0xbf;
Delay(5000);
P1=0x7f;//点亮第八个发光管
}
}
可以用一个数组存放LED灯的状态,在定时器里面为LED赋值数组里面的值就行
例如 LED_arr[10] = {0x81,0x42,0x24,0x18,0x24,0x42,0x81};
LED = LED_arr[pos++];
//流水灯
#include "reg52.h"
#define LED_PORT P3
void delay(unsigned char time)
{
unsigned char i,j,k;
for(i=0;i<time;i++)
{
for(j=0;j<200;j++)
{
for(k=0;k<200;k++);
}
}
}
void main()
{
unsigned char i,halfbyteh=0x80,halfbytel=0x01;
while(1)
{
halfbyteh=0x80;
halfbytel=0x01;
for(i=0;i<8;i++)
{
//LED_PORT=halfbyteh|halfbytel;//高电平点亮
LED_PORT=~(halfbyteh|halfbytel);//低电平点亮
halfbyteh=halfbyteh>>1;
halfbytel=halfbytel<<1;
delay(10);
}
}
}
单片机C语言如何编写?
1、首先在电脑桌面中,双击“Keil4”图标打开软件。2、点击上部菜单栏中的“工程”,在下拉菜单中选择“新建工程文件”。3、把工程文件保存到目标文件夹里去,工程文件命名可以随意写入一些数字。4、选择单片机类型,根据实际情况进行选择,例如“Atmel”中的“89C52”。5、点击“文件”,在“文件”的下拉...
请问单片机的C语言怎么编写啊?
单片机C语言编译错误:requires ANSI-style prototype,是编译过程错误造成的,解决方法如下:1、编程前保存文件,单击文件菜单,下拉菜单中选择保存按钮。2、输入文件名,文件类型选择为.c类型。3、然后开编辑,首先,定义头文件,头文件一般为stdio.h。4、接着,定义主函数,主函数名为main。5、然后,...
编写简单的单片机c语言程序 1、指定数组找最大值 2、排序
intsecond;\/*先获取前两个数的第一大和第二大值*\/ ar[0]>ar[1]?(max=ar[0],second=ar[1]):\\ (max=ar[1],second=ar[0]);\/*从第2个数开始比较查找*\/ for(i=2;i<NR;i++){ if(ar[i]>max)\/\/查找最大值:目的是为了比较第二大值 { second=max;\/\/先把最大值保存给第二...
谁能帮我写一下单片机C语言程序?
sbit K1=P1^1;sbit K2=P1^2;void delay(int ms){ unsigned char i;while(ms--)for(i=0;i<120;i++);} void t0isr(void) interrupt 1 { TH0=(65536-10000)\/256;TL0=(65536-10000)%256;LED=~LED;} main(){ TMOD=0x01;TH0=(65536-10000)\/256;TL0=(65536-10000)%256;ET0=1;E...
单片机 c语言编写
单片机C语言编写与普通电脑C语言类似,只不过硬件成分更多些。比如:include<reg51.h> define uchar unsigned char uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/0-9 unsigned char sec=0,min=0,hour=12,scanled;unsigned char key,time;unsigned char ...
怎么用c语言编程51单片机读写程序?
编程代码如下:ORG 0000H MOV DPTR,#1000H ;给源数据块地址指针DPTR赋初值 MOV P2, #20H ;给目的数据块地址指针P2和R0赋初值 MOV RO,#00H LOOP: MOVX A, @DPTR .MOVX @RO, A .INC DPTR INC RO CJNE RO,#64H, LOOP SJMP
求大神用c语言编写一个单片机代码,要求1~6和a~f循环显示,间隔0.5秒_百...
while(1);}void time0() interrupt 1 using 1{TH0=(65535-50000)\/256; \/\/ 12MHz 50mSTL0=(65535-50000)%256;n++;if(n>=10) { n=0; m++; P1=LED[m]; if(m==6){m=m+3;} \/\/ 跳过 7 8 9 if(m==15){m=0;} \/\/ = f 清零 }} ...
c51单片机c语言交通灯的程序
接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系统需要控制红、黄、绿三种颜色的灯的亮灭,每种颜色的灯对应一个I\/O端口。此外,我们还需要使用定时器来设置交通灯的切换时间。在编写...
...要求使用定时计数器1,用C语言 编写程序实现?
系统晶振为12MHz时,定时器的计数脉冲周期即为 1uS;要求输出周期为200us,占空比为50% 的方波,即方波的高电平时间=100uS,低电平时间=100uS。所以每定时100uS便产生一次中断,并将输出信号状态翻转一次;sbit cp=P1^7;void timer1 interrupt 3 { cp=~cp; } void main(){ TMOD=0x20; \/\/ ...
单片机 用C语言怎么编程!
void main(void) \/\/主函数名 { \/\/这是第一种注释方式 unsigned int a; \/\/定义变量a 为int 类型 \/ 这是第二种注释方式 \/ do{ \/\/do while 组成循环 for (a=0; a<50000; a++); \/\/这是一个循环 P1_0 = 0; \/\/设P1.0 口为低电平,点亮LED for (a=0; a<50000; a++); \/\/...
桐咱罗每: #include<reg52.h> #include <intrins.h> #define LED P2void delay(char i);void main() { unsigned char LedVablue=0xFE;while(1) {LedVablue= _crol_(LedVablue,1); //_crol_(x,Y)是<intrins.h> //里面的一个库函数,相当于汇编的带进位循环 LED=LedVablue; delay(100);} }void delay(char i) { char j; for(;i>0;i--) for(j=0;j<250;j++); }
江汉区15950802527: 51单片机用C语言如何写四个数码管的流水灯程序? - ?
桐咱罗每: 用个移位处理就行了 set(void) {static char cnt = 0;P1 = 0x01 << cnt; cnt ++;if (cnt == 4) {cnt = 0; } }
江汉区15950802527: 求一个用c语言编译的流水灯程序,要求灯从中间向两边亮 - ?
桐咱罗每: #include<reg52.h> #define uchar unsigned char void delay(z); uchar code t[]={0x18,0x24,0x42,0x81};//这是编码表 void main() {int i=0;while(1)//死循环{for(i=0;i<4;i++)P1=t[i];//取码,我用的P1口,你要用其他的端口你就把取出来的码送给你要用的端口delay(5);}} void delay(z) { int a,i; for(a=0;a<z;a++) for(i=0;i<110;i++); }
江汉区15950802527: 很简的51单片机C语言流水灯程序?
桐咱罗每: #include #define LED P2 void delay(char i); void main() { unsigned char LedVablue=0xFE; while(1) { LedVablue= _crol_(LedVablue,1); //_crol_(x,Y)是 //里面的一个库函数,相当于汇编的带进位循环 LED=LedVablue; delay(100); } } void delay(char i) { char j; for(;i>0;i--) for(j=0;j<250;j++); }
江汉区15950802527: 51单片机c语言编写一个流水灯程序,要求如下(不能用数组,8个led指示灯从两边往中间移动,然后再分开) - ?
桐咱罗每: 简单点的,用表格,事先计算好,放到ROM中,用的时候逐行编译输出就可以. 复杂点的,开一个缓冲区,用循环程序,根据花样的不同,每次填充一行,并输出,然后再计算一下行.除非表格太大,不建议这样用. #define len 8 char tablelist[][len] = { "", "", "", "", "", } outline( char * s ) { int i; for(i=0; i{ if ( s[i] == '0' ) { // 对应的灯亮 } else { // 对应的灯灭 } } } main() { for(;;) { outline( tablelist[i]); delay(..); } }
江汉区15950802527: 用c语言编写流水灯. - ?
桐咱罗每: C语言流水灯程序是学习的基础,一定要搞懂!给你发两个! (一) #include<reg51.h> //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void ...
江汉区15950802527: 求教大婶们~51单片机单个按键控制流水灯C程序 - ?
桐咱罗每: 很简单啊,只提供一个简单思路, 所以只提供简单的程序,自己理解 char flag=0;viod main() { while(1) { if(key==0 ) //假设0 按下按键 { flag=~flag; } if(flag==0) { leds(); //流水灯函数 } } }
江汉区15950802527: 如何用51单片机写两LED灯两两一起闪烁的流水灯C程序 - ?
桐咱罗每: 这个比较简单吧uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void delay();//自己写吧 延迟一秒 void led_blink();//~~~~~~~~~~~~ void single_stream();//单向流水函数声明 void double_stream();//~~~~~~~~void led_blink() //全...
江汉区15950802527: 51单片机c语言定时器控制流水灯 - ?
桐咱罗每: #include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void) { uint i; uchar temp; while(1) { temp=0xFE; for(i=0;i<8;i++) //8个流水灯依...
江汉区15950802527: 51单片机一个按键多种功能的流水灯C程序 - ?
桐咱罗每: 判断两次按键的时间间隔 如果大于1s就实现一种功能 小于1s实现另外一种功能