knrt.net
当前位置:首页 >> 51单片机C语言编程流水灯 >>

51单片机C语言编程流水灯

ORG 0000H LJMP MAIN ORG 0100H MAIN: CLR P1.5 MOV A,#0FEH LOP: MOV P0,A LCALL DELAY RL A SJMP LOP DELAY: MOV R7,#198 DEL1: MOV R6,#50 DEL2: MOV R5,#23 DJNZ R5,$ DJNZ R6,DEL2 DJNZ R7,DEL1 RET END

假如百8个灯在P0口.低度电平灯亮版 x=0x01; while(1) { for(i=0;i<7;i++) { P0=~x; delay(200); //延时权200毫秒 } x=0x01; }

我这是TX-1C的实验板.P1口接8个LED灯管.这是用延时程序编写的.晶振是11.0592HZ但是时间300MS是有偏差的.如果要更精确最好是用定时器中断完成.祝你学业成功.其实我也是自学的.非常辛苦.坚持下来就行了.先慢慢从流水灯

原发布者:4ktQ4FomVU73851单片机流水灯C语言源程序#include//51系列单片机定义文件#defineucharunsignedchar//定义无符号字符#defineuintunsignedint//定义无符号整数voiddelay(uint);//声明延时函数voidmain(void){uinti;uchartemp;while(1

#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);

其实很简单 就是用_cror_()函数或者 _crol_()函数,第一个是右移第二个是左移

#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++); }

/* 程序详细功能介绍: *做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上, *输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环. */#include <AT89X51.H>

代码已修改,并仿真通过.#include<reg51.h> //包含单片机寄存器的头文件#include "intrins.h"#define uchar unsigned char#define uint unsigned int sbit CLK=P1^0; sbit IN =P1^1;//uchar code a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uint code

流水灯实验:#include<reg51.h>#define unit unsigned int;#define uchar unsigned char;uchar temp;void delay(uint z);void main(){ temp=0xfe; /*让第一个LED发光*/ P1=temp; while(1) { delay(1000); temp=_crol_(temp,1); /*左移,移动变量temp,移动1位*/ P1=temp; }}void delay(uint z){ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}给个满意答案,谢谢

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com