百度知道 - 信息提示

日期:2025-01-12 16:11:25 人气:1

百度知道 - 信息提示

    A+
热门评论

求一个51单片机的C语言程序,8个LED4种亮法,自上而下,自下而上,高低4位交替亮,一个个灭直到全灭。

我给你做个例子吧,把接LED灯的io口赋值0,灯亮;把接LED灯的io口赋值1,灯灭 因为一般接io口的LED灯有个上拉高电平,io这端给他个低电平(0),造成电压差,就有电流通过,灯就亮了;反之,io给高电平(1),没有压差,无电流,灯灭。 下面的你自己应该可以写了,锻炼下手。 void delay(void) { int i=10000; //这个值调整亮灯灭等快慢,越小越快越大越慢 while(i--) return; } //从上到下亮灯 void LED_a(void) { LED_IO1 = 0; delay(); LED_IO2 = 0; delay(); LED_IO3 = 0; delay(); LED_IO4 = 0; delay(); LED_IO5 = 0; delay(); LED_IO6= 0; delay(); LED_IO7= 0; delay(); LED_IO8= 0; delay(); } //开始灯全灭 void LED_dengmie(void) { LED_IO1 = 1; LED_IO2 = 1; LED_IO3 = 1; LED_IO4 = 1; LED_IO5 = 1; LED_IO6= 1; LED_IO7= 1; LED_IO8= 1; } main() { LED_dengmie(); LED_a(); }

阅读全文

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮,并循环。

一、#include void delay(unsigned char Xms)//延时Xms { int i,j; for(X = i; X>0; X--) for(j=110;j>0;j--); } void main() { P0 = 0x00; //P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1) { delay(1000); P0 = 0xc0;//点亮前两个发光二极管P0.0和P0.1; delay(1000);//延时1秒 P0 = 0x30;//点亮第三个和第四个LED delay(1000); P0 = 0x0c; delay(1000); P0 = 0x03; } } 二、 #include #include #define uchar unsigned char #define uint unsigned int uchar temp, t0, t1; bit t2; sbit P10 = P1^0; void main() { P10 = 1; temp = 0xfe; P0 = temp; P2 = 0xff; TMOD = 0x01; TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; ET0 = 1; EA = 1; TR0 = 1; while(1); } void timer0() interrupt 1 { TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; t0++; if(t0 == 10) { t0 = 0; t1++; if(t1 == 8) {t1 = 0; t2 = ~t2; P10 = t2;} temp = _crol_(temp, 1); if(t2) {P0 = temp; P2 = 255;} else {P2 = temp; P0 = 255;} } } 扩展资料: 例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。 参考资料来源:百度百科-c语言

阅读全文