如何用c语言编程实现用89c51单片机控制8个led灯像电子时钟那样显示?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-09-13
如何用c语言编程实现用89c51单片机控制8个led灯像电子时钟那样显示?

假设你单片机的p1口连了led灯:
#include

sbit
led
=
p1^0;//这是点第一位灯
int
main(void)
{
while(1)
{
led
=
0;//假设led灯为共阳极的
}
return
0;
}
点亮led灯的形式有很多,这里给出一种仅供参考

#include 包含单片机专用头文件
#include 这个是什么俺也不知道,但这个程序不需要这个头文件
void Delay10ms(unsigned int c); 自定义的延时函数声明
main() 主函数
{
unsigned int LED; 建立一个数值型变量,变量名 LED
LED=0xfe; 给这个变量赋值,0xfe 换成二进制数为 1111 1110
while(1) 主循环
{
P2=LED; 点亮发光管,即先点亮右边的第一个
Delay10ms(50); 延时一段时间
LED=LED<<1; 点亮的发光管,向左移动一位
if (P2==0x00) 判断是否8个全部点亮了
{
LED=0xff; 如果全部点亮,则将全部发光管熄灭
}
}
}

void Delay10ms(unsigned int c)延时函数主程序
{
unsigned char a, b;建立两个变量 a b
for(;c>0;c--)循环语句,不断改变变量数值,已达到延时目的
{
for(b=38;b>0;b--)
{
for(a=130;a>0;a--);
}
}
}

给你翻译了,希望能帮到你

假设你单片机的p1口连了led灯:
#include
sbit
led
=
p1^0;//这是点第一位灯
int
main(void)
{
while(1)
{
led
=
0;//假设led灯为共阳极的
}
return
0;
}
点亮led灯的形式有很多,这里给出一种仅供参考

  • 怎么用c语言写单片机89C51的程序,要写的程序是,0~99秒的秒表,到99s停...
    答:include<reg52.h> define uchar unsigned char define uint unsigned int uchar a , b=0;sbit wei1=P1.0;sbit wei2=P1.1;//共阴数码管七段码 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};void Delay1ms(uint i) //1ms延时程序 { uint ...
  • 89c51单面机c语言时钟控制器编程
    答:再给一个:用内部的定时器做数字钟,通过数码管显示出来。#include <regx52.h> #define uchar unsigned char#define uint unsigned intuchar dispcode[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00}; //定义0到F的段选码uchar dispbit...
  • 求89C51单片机程序,用C语言编写,利用外部中断
    答:方法类似,补写程序如下:include<reg51.h> define uint unsigned int define uchar unsigned char sbit LED=P0^0;sbit LED1=P0^1;void delay1ms (uint z){ uint x,y;for (x=z;x>0;x--)for (y=110;y>0;y--);} void exter() interrupt 2 { delay1ms(600);LED=0;delay1ms(200)...
  • 用C语言使用89C51 做一个电子琴实验,求程序和图!谢谢了
    答:include<reg52.h> define uint unsigned int define uchar unsigned char unsigned int code tab[]= {63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110};//频率表 uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x...
  • 单片机89C51 C语言编程问题
    答:第一步:将开关状态存入temp中,其过程是,将高四位(开关状态值)右移四位,移入低四位中,高四位补零,并存入temp。第二步:用temp的值与0xf0或运算。第三步:将运算后的值给P1端口输出。比方说仿真电路中我们按下K4,这时读P1口应该是0111 xxxx,将这个数右移四位,高位补零后得到0000 0111...
  • 单片机C程序:89C51 开关(P1-1)按下并持续10秒后,LED(P1-0)亮并保持亮...
    答:} void T0time() interrupt 3 using 1//定时器 { TH0=(65535-45872)/256;// 重装初值 TL0=(65535-45872)%256;num++; //自加一次 50ms if(num==200) //判断是否为十秒 { num=0;P1_0=0;//开灯 } } 试过了,好用!仿真时注意LED灯的接法。大半夜写的,不容易哈,给分吧 ...
  • 求89C51单片机简单中断程序,用C语言编写,题目如图
    答:include<reg51.h>#include "intrins.h"#include "absacc.h"#define uchar unsigned charuchar ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0xff};//0-9uchar num,cnt;bit flag=0;void ext1() interrupt 2{flag=~flag;}void t1isr() interrupt 3//显示{...
  • 用C语言编写,单片机89C51控制,四个按键控制灯亮,用一个P3口控制8个LED...
    答:define LED0 P3^4 define LED0 P3^5 define LED0 P3^6 define LED0 P3^7 main(){ while(1){ if(Key0==0){ LED0=0; /*具体你如何控制LED ?*/ } else if(Key1==0){ LED1=0;} else if(Key2==0){ LED2=0;} else if(Key3==0){ LED3=0;} } ...
  • 用C语言实现89C51串口通信程序
    答:=0){ Send_Byte(*string);string ++;} } void Com_A_Int() interrupt 4 { uchar idata status;status = SBUF;RI = 0;if (status == 0x02)Send_String("HELLO")if (status == 0x55)Send_String("THIS IS A WELL BEGIN!")} 这是串口中断程序,其他的你可以自己根据实际情况编写 ...
  • 求单片机89c51课程设计
    答:C语言的,采用51单片机,矩阵键盘,外接HC57C,6个数码管,调时间采用中断模式。include<reg51.h> include<intrins.h> define uchar unsigned char define uint unsigned int uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x77,0x7c,0x39,0x5e,0x79,0x71};...