例程:
#include<reg51h> //51单片机头文件#include <intrinsh> //包含有左右循环移位子函数的库
#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;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函数
{
uchar a,i,j;
while(1) //大循环
{
a=0xfe; //赋初值
for(j=0;j<3;j++) for(i=0;i<8;i++) //左移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=0x7f;
for(j=0;j<3;j++) for(i=0;i<8;i++) //右移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_cror_(a,1); //将a变量循环右移一位
}
}
}
251单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。
做好中断现场保护和还原就可以解决这个问题了。
INT:PUSH PSW;先现场保护
PUSH ACC;
PUSH 00H;R0
PUSH 01H;R1
PUSH 02H;R2
PUSH 03H;R3
PUSH 04H;R4
PUSH 05H;R5
PUSH 06H;R6
PUSH 07H;R7
MOV A,#0AAH
MAG:
MOV P2,A
LCALL DELAY
RL A
JNB P33,MAG
MOV A,#1
MOV R2,#7
POP 07H;R7;现场还原
POP 06H;R6
POP 05H;R5
POP 04H;R4
POP 03H;R3
POP 02H;R2
POP 01H;R1
POP 00H;R0
POP ACC;
POP PSW;
RETI
#include "REG52H"
// 显示花样流水灯编码
const unsigned char Expetr_ROM[] = { 0xFD, 0xF7, 0xDF, 0x7F, 0xFE, 0xFB, 0xEF, 0xBF
} ;
// 延时1ms
void Delay_1ms(unsigned int Cnt)
{
unsigned int x, y;
for(x = Cnt; x > 0; x--)
for(y = 120; y > 0; y--);
}
int main(void)
{
unsigned char i;
while(1)
{
for(i = 0; i < 8; i++)
{
P1 = Expetr_ROM[i];
Delay_1ms(500);
}
}
}
以上就是关于设计8个流水灯灯从中间依次向两边闪烁的C语言程序,不胜感激全部的内容,包括:设计8个流水灯灯从中间依次向两边闪烁的C语言程序,不胜感激、单片机LED花样流水灯汇编程序、单片机流水灯c语言程序。灯按从左到右2468然后1357依次循环亮。速求啊!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)