单片机编程: P1口8个灯从低位到高位依次点亮(流水灯),遇到外部中断1,8个灯亮点 。求电路原理 某单片机系统的P1口接了8个LED,每按下开关一次,对应的L...
作者&投稿:貂府 (若有异议请与网页底部的电邮联系)
单片机:P1口8个灯从低位到高位依次点亮(流水灯),遇到外部中断0,8个灯闪烁5次~
#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个流水灯依次全部点亮
{
P1=temp;
delay(500); //调用延时函数
temp<<=1;
}
}} void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
数字量输入输出
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP EXT1
ORG 0030H
MAIN:
MOV A,#0FEH
LOOP:
MOV P1,A
RL A
LCALL DELAY
SJMP LOOP
EXT1:
MOV P1,#00H
MOV R7,#10
DD:
LCALL DELAY
DJNZ R7,DD
RETI
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END