key1 == 0){Delay_ms(10);if(key1 == 0){while(key1 == 0);P0 = _crol_(P0, 1);}}else if(key2 == 0){Delay_ms(10);if(key2 == 0){while(key2 == 0);P0 = _cror_(P0, 1);}}}

可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。 具体实现方法可以参考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=

/ void delay(void) //两个void意思分别为无需返回值,没有参数传递。{ unsigned int i; //定义无符号整数,最大取值范围65535。for(i=0;i<20000;i++) //做20000次空循环。; //什么也不做,等待一

电路图 如下:include define uint unsigned int define uchar unsigned char sbit duan=P2^6;sbit wei=P2^7;uchar code digit[6]={0xf9,0xa4,0xb0,0x99,0x92,0X82};void delay(xms){ uint i,j;for

void onboot(){/* 执行LED灯闪烁*/} void ongpio8(){/* 执行K1数码管显示。例如 */}

用c语言单片机led灯显示数字“28”,如何编程?

LOOP2:MOV A,20H; 0-9 MOVC A,@A+DPTR MOV P0,A INC 20H CALL DELL;YANSHI DJNZ R0,LOOP2 AJMP LOP TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DELL:MOV R7,#250;yanshi,SHIZHONG:1WEI

一位数码管循环显示1-9的汇编程序 ORG 00H :单片机启动地址 START:MOV R2,#0 ;要显示的第一个数为0 MOV R5,#10 ;要循环显示的次数10次 MAIN:MOV DPTR,#TAB ;显示编码表格首地址 MOV A,R2 ;取要显示的数

采用共阴极LED数码管,51单片机P1口输出数据:ORG 0000H JMP MAIN ORG 0100H MAIN:MOV DPTR,#TAB MOV R1,#00H DISP:MOV A,R1 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R1 CJNE R1,#0AH,DISP SJMP TAB:

你这是用于一位静态数码管的显示程序,P0口接有一位共阴数码管。程序中有不少的错误。修改如下,这是仿真测试通过的:include 仿真结果如下,请及时采纳。

1、小建议,釆用STC的51芯片替代AT的,釆用595替代164。2、新建项目,做好准备。数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0xf7;11110111第4位数码管显示,wk=0;关闭位选。while(1)//死循环效

1、新建项目,做好准备。2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) //死循环效果{} 。6、dk = 1;//打

单片机如何控制LED数码管循环显示数字0至9

程序如下:include unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9的段码表 void delay(){ unsigned int j;for(j=60000;j>0;j--);} void main(){

C0H ;0 ADRRESS 0024H DB F9H ;1 DB A4H ;2 DB B0H ;3 DB 99H ;4 DB 92H ;5 DB 82H ;6 DB F8H ;7 DB 80H ;8 DB 90H ;9 MAIN:MOV R0,#7FH ;CLR A ;CL MOV R0,A ;DJNZ R0,$CL ;初始

一、设置延时函数 延时函数在单片机中有着让现实延时的能力,本程序中可以通过采用for循环方式进行延时,具体代码如下:void delay(){ uinti,j;for(i=100;i>0;i--)for(j=1000;j>0;j--);} 二、设置数码管显

1、小建议,釆用STC的51芯片替代AT的,釆用595替代164。2、新建项目,做好准备。数码管段选表。延时函数。uchari;变量i;wk=1;打开位选,P0=0xf7;11110111第4位数码管显示,wk=0;关闭位选。while(1)//死循环效

单片机数字9到0显示程序代码?

mov r2,#6 ;六位显示器 mov dptr,#segtab ;段码表首地址 dp00: mov a,@r0 ;取要显示的数据 movc a,@a+dptr ;查表取段码 mov @r1,a ;段码暂存 inc r1 inc r0 djnz r2,dp00 disp0:

静态方式:输入123456 字码段 然后使能“显示”动态扫描方式:输入“1”字码段,打开LED1,关闭LED23456 然后持续0.05秒,输入“2”字码段,打开LED2,关闭LED13456 然后持续0.05秒,输入“3”字码段,打开LED3,关闭

LedOut[6]=Disp_Tab[LedNumVal%100/10]; //十位 LedOut[7]=Disp_Tab[LedNumVal%10]; //个位 for( i=0; i<9; i++){ P0 = LedOut[i];P1 = dispbit[i]; //使用查表法进行位选 /* swi

SET键:小时设定->分钟设定->结束设定,小时设定状态时表示小时的两位数码管闪烁,分钟设定时表示分钟的两位数码管闪烁 CHANGE键:在小时设定状态和分钟设定状态改变数值 SET S键:秒置零 C语言代码://main.c include

we = 1;//位选开 data = 0x00;//送入位选数据 we = 0;//位选关 while(1){ for(i = 0;i < 16 ; i++){ du = 1; //段选开 data = leddata[i]; //送入段选数据 du = 0; //段选

void delay()//延时子程序 { uint j;for(j=300;j>0;j--);} void display()//显示子程序 { uchar i,litbit=0xfe;for(i=0;i<6;i++){ P2=litbit;//输出位码 P0=table[buf[i]];//输出段码 litbit=

怎么用单片机实现6位led数码管显示?

假设你单片机的p1口连了led灯: #include sbit led = p1^0;//这是点第一位灯 int main(void) { while(1) { led = 0;//假设led灯为共阳极的 } return 0; } 点亮led灯的形式有很多,这里给出一种仅供参考
8个LED灯怎么可能显示出电子时钟! 8个数码管还差不多。