单片机~~用八个发光二极管实现8位二进制的累加

具体程序如下 :

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z);
void main()
{
uchar temp;
****temp=0xff;
while(1)
{
temp++;
P1=~temp;
delay(1000);
}*****
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

我有几个地方没看懂 那个***.....***之间的看不大明白 过程是什么样的啊??谢谢各位帮忙~~~~!!!

#include "reg51.h"
void delay(unsigned int ms)
{
unsigned char i;
while(ms--) for(i = 110; i-- ; i > 0);
}
//-------------------------
void main()
{
unsigned char abc = 0;
while(1) {
P1 = abc; //在P1口外接8个LED,低电平发光.
abc++; //加,负逻辑将显示为自减.
delay(500); //延时,供观察现象.
} }
=============================================
要求由最高位P0^0作为二进制的最高位。
这个新要求,可以在焊接LED器件的时候进行调整。
更改一下程序,也不难,如下:
#include "reg51.h"
unsigned char bdata abc = 0, bbb;
sbit a0 = abc^0;
sbit a1 = abc^1;
sbit a2 = abc^2;
sbit a3 = abc^3;
sbit a4 = abc^4;
sbit a5 = abc^5;
sbit a6 = abc^6;
sbit a7 = abc^7;

sbit b0 = bbb^0;
sbit b1 = bbb^1;
sbit b2 = bbb^2;
sbit b3 = bbb^3;
sbit b4 = bbb^4;
sbit b5 = bbb^5;
sbit b6 = bbb^6;
sbit b7 = bbb^7;

void delay(unsigned int ms)
{
unsigned char i;
while(ms--) for(i = 110; i-- ; i > 0);
}

void main()
{
while(1) {
b0 = a7;
b1 = a6;
b2 = a5;
b3 = a4;
b4 = a3;
b5 = a2;
b6 = a1;
b7 = a0;
P1 = bbb;
// P1 = abc; //在P1口外接8个LED,低电平发光.
abc++; //加,负逻辑将显示为自减.
delay(500); //延时,供观察现象.
} }
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-05
没见过,把它去掉,我想没有什么意义

用单片机控制八个LED灯实现二进制加法(程序没搞懂,请大神帮忙)
所以就无法通过编译,解决方法是在文件头“声明” 一下,让编译器知道在本文件中搜索 delay() 这个函数,从而成功调用。八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字...

.利用单片机的P1口接8个发光二极管(对应8位二进制数),P3.1接1个开关...
uchar key_scan(void){ if(P3^1==0) \/\/当按键按下是低电平时 { delay_ms(12);\/\/消抖 if(P3^1==0) return 1;} return 0;} void main(){ uchar cnt=0,key;uchar led[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};while(1){ key=key_scan();if(key==1) ...

...利用单片机控制8个发光二极管,设计8个灯同时亮的控制程序怎么写...
{ delay(你想要延时的时间);P1=0xff;delay(你想要延时的时间);P1=0;} 注意led最好加驱动,不然单片机会坏的。

利用单片机控制8个发光二极管,实现8个灯同时闪烁的控制程序
以51位例,使用P1的八个IO口控制。先定义:sbit LED0=P1^0;sbit LED1=P1^1;...以此类推,定义八个。然后在主循环中:LED0=0;延时一段时间;LED0=1;就可以看到闪烁了。

在单片机中如何用8个发光管演示出8位二进制数字自减过程?(用c语言)
P1 = abc; \/\/在P1口外接8个LED,低电平发光.abc++; \/\/加,负逻辑将显示为自减.delay(500); \/\/延时,供观察现象.} } === 要求由最高位P0^0作为二进制的最高位。这个新要求,可以在焊接LED器件的时候进行调整。更改一下程序,也不难,如下:include "reg51.h"unsigned char ...

51单片机控制八个发光二极管怎么编程
\/\/ 51单片机控制八个发光二极管 左右循环。include<reg52.h> define uchar unsigned char define uint unsigned int unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; \/\/ 改变这里 LED 各种花样 uchar t...

用单片机P0控制8个LED,要求8个LED按1357——2468的顺序轮流点亮_百度...
一键多功能按键识别技术 1.实验任务 开关K1接在P3.2管脚上,在AT89S51单片机的P0.0端口接有1个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在亮,当一次按下开关K1的时候,灯灭,再按一次,灯亮,如此轮流下去。 2.系统板上硬件连线 把“单片机系统”区域中的P3.2端口连接到“独立式...

利用单片机P1口接8个发光二极管,P0口接8个开关,编程实现,当开关动作时...
ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,P0 MOV P1,A SJMP MAIN END

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
本文详细介绍了如何使用C语言在五一单片机上编程,控制P1口实现八个发光二极管的交替点亮。首先,我们定义了一个延时函数delay(),通过两个for循环实现毫秒级的延时。在主函数中,程序初始化P0口为全灭状态,然后进入一个无限循环,每隔一秒,将P0口的特定位设置为1,点亮两个LED,延时1秒后切换到下一个...

单片机原理及接口技术多选题一个单片机应用系统的设计包括以下什么步 ...
六、设计题(1题13分;2题12分,共25分) 1.某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。 2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。 单片机模拟试卷001答案 一、选择题...

相似回答