#include<reg51.h>
#define ui unsigned int
#define uc unsigned char
sbit key=P3^2;
void delay(ui time)
{ui i;
for(i=0;i<=time;i++);}
uc led[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x00,0xFF};
void main(void)
{uc key_num=0;
P0=0xFF;
while(1){
if(key==0) delay(10);
if(key==0) {key_num++;
if(key_num==11) key_num=0;{
switch(key_num)
{
case 1: P0=led[0];break;
case 2: P0=led[1];break;
case 3: P0=led[2];break;
case 4: P0=led[3];break;
case 5: P0=led[4];break;
case 6: P0=led[5];break;
case 7: P0=led[6];break;
case 8: P0=led[7];break;
case 9: P0=led[8];break;
case 10: P0=led[9];break;
}
}
}}}
这是我写的程序。
下面是程序要求,这个是查询方式的,在线等解答,谢谢了。
实验题目:
用两种方法(即查询方式和中断方式)设计一种基于51单片机的八路流水灯,其点亮模式通过按下按钮SW触发外部中断实现,从而改变发光二极管D1~D8的亮、灭方式。
具体要求:当第一次按下按钮时,只有D1发光二极管亮;第二次按下按钮时,只有D2发光二极管亮;第三次按下按钮时,只有D3发光二极管亮;……第八次按下按钮时,只有D8发光二极管亮;第九次按下按钮时,D1~D8发光二极管全亮;第十次按下按钮时,D1~D8发光二极管全都不亮。以上过程循环重复进行。
好åè¿æ¯ä¸è¡é¢
追çæé½æµè¯äº å¥½ç¨ ä½ æç¨åº å¨å¥½å¥½å° çä¸ä¸ æ¯ä¸æ¯å¤å¶çæ¶å æé£ä¸ªå°æ¹ iæç¨åºæå好å«ç¶åä¸ä¸å°±å®äº
追é®ä¸å¥½ææåï¼è¿ä¸ªéé¢æä¸ä¼ä¼ å¾ç è½å¦ä½ å ä¸ææ£æè æå ä½ äºï¼
追çå åå¨åé¥ æQQ25502840
C51单片机编程 求按下按键 8盏LED灯变成流水灯 最后灯全灭
include <STC89C5xRC.H> define uchar unsigned char define uint unsigned int sbit k1=P3^5;void delay_ms(uint xms){ int i, j;for(i=0;i<xms;i++){for(j=0;j<7;j++);} } void main(){ P0=0xFF;k1=1;while(1){ if(k1==0){ uchar led=0xfe;uchar i;for(i=0;i<...
实现P0口驱动8个发光二极管流水灯点亮,设置三个按键 c51单片机 急...
XBR0 =0X02;return(0);\/\/返回0,表示没有按键按下
单片机编程,按下S1,流水灯一只灯亮,从D1到D8,循环两次。
include "reg52.h"sbit S1=P1^0;\/**延时1ms函数**\/ void delay_ms(unsigned int x){ unsigned int m,n;for(m=x;m>0;m--)for(n=115;n>0;n--);} void main(void){ unsigned char i,j;while(1){ if(S1==0){ delay_ms(5);if(S1==0){ while(!S1);for(j=0;j>2;i+...
单片机用计时中断控制一个流水灯电路 :每按一次键,发光二极管位置右移...
程序中加了按键防抖和按键释放判断功能。\/*STC51单片机编程实验第一课:彩灯控制器设计(跑马灯))*\/ \/*以下为汇编语言*\/ key0bitP2.0 key1bitP2.1 org 0000h jmpstart org0030h start:mov P0,#11111110B Begin:;jbkey0,next0 calldelay10ms jbkey0,next0 jnbkey0,mova,P0 rra mo...
用中断方法来控制流水灯的,,,教教我 是8个LED低电平灯亮接P2口,开始...
1)P2口的8个脚对应8个LED;设D1灯对应高位,D8灯对应低位;2)P1口的P1.0脚对应XO按钮;P1.1脚对应X1按钮;3)开始时,显示第一种方式:向P2口写入a=01111111,延时0.5S,a 循环右移一位,再延时0.5S,如此反复。4)当收到XO按钮信号后,向P2口写入a=01111111,延时1.5S,a 循环右移二位,再延时1.5S,如此反复。5...
C51单片机:在流水灯程序运行时,如何通过外部中断程序。中断时如何运行中...
是外部中断期间当前亮着的LED灯继续亮着,流水不动?很好办呀,进入外部中断时你保存流水灯当前的状态就可以了。比如:ORG 0000H LJMP MAIN ORG 0003H LJMP EXTI0 LED EQU 30H ORG 0030H MAIN:MOV SP,#5FH SETB EX0 SET IT0 SETB EA MOV LED,#FEH LOOP:MOV P0,LED LCALL DELAY MOV A,...
单片机用外部中断实现按键按第一次实现流水灯!第二次按下实现闪烁灯!第...
请你参考:电路 代码 include<reg51.h>#define LEDP2unsigned char step;void Delayms(unsigned int x){unsigned char t;while(x--)for(t=0;t<120;t++);}void main(){unsigned char i,j; TCON|=0x01;IE|=0x81;i=0;j=0xFF;step=0;while(1){ switch(step){ case 1:LED=~(1<...
在做单片机按键控制流水灯,我想达到按一下自己循环,再按一下就停止的...
if(K1==0){ Delayms(10); \/\/按键去抖动 if(K1==0) s=0; \/\/按键按下此时是键值s=0 } while(s==0) \/\/当按键第一次按下时进入循环点亮灯的循环 { temp=0x01; for(i=0;i<8;i++) {
...按键控制八个发光二极管以流水灯形式显示 按一下则显示另外一种形式...
选择菜单[项目|编译]或按编译按钮,进行编译。如果程序完全正确,编译成功,就会生成目标文件MY1.ASM,如下图所示。如果在编译过程中出现有错,可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。执行程序 选择[执行|跟踪]或按跟踪按钮进行单步跟踪调试...
...用按键模拟单片机外部中断输入源,当按键按下时产生中断,进行中断...
1、打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。2、首先要导入51单片机的头文件,否则后续使用的端口都会出现未定义的情况,然后在主函数中,使得EA=1,即总中断...