2011.1.21(单片机数码管学习自己写的程序)

这篇博客通过单片机C语言编程展示了数码管的控制技巧,包括数码管的闪烁、上下流动、8位二进制数累加过程的演示,以及不同数量数码管的流动效果,提供了丰富的示例代码,帮助读者深入理解数码管控制和C语言在单片机编程中的应用。
摘要由CSDN通过智能技术生成

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

void delay(uint);
void ring_up();
void ring_down();
uchar light(uchar);
void stream(uchar);

void light_1();
void light_2();
void light_3();
void light_4();
void light_5();
void light_6();
void light_7();
void light_8();

sbit P1_1=P1^0;
sbit P1_2=P1^1;
sbit P1_3=P1^2;
sbit P1_4=P1^3;
sbit P1_5=P1^4;
sbit P1_6=P1^5;
sbit P1_7=P1^6;
sbit P1_8=P1^7;
sbit BEEP=P2^3;

uchar temp=0xfe;
uchar tp1=0xfe;
uchar tp2=0xfc;
uchar tp3=0xf8;
uchar tp4=0xf0;
uchar tp5=0xe0;
uchar tp6=0xc0;
uchar tp7=0x80;
uchar tp8=0x00;

void main()
{
//<1>第一个灯管以间隔200ms闪烁
/*
while(1)
{
   P1_1=0;
   delay(2);  //200ms;
   P1_1=1;
   delay(2);
}
*/
//<2>由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器发声。
/*
while(1)
{
   P1=temp;
   delay(5);
   ring_up();
   temp=_crol_(temp,1);//犯了一个C语法错误,如果没有temp=的话temp值是不会改变的,led1将一直亮
   ring_down();
}
*/
//<3>8个发光管来回流动,并发出滴滴声.
/*
while(1)
{
   int n1,n2;
  
     for(n1=0;n1<7;n1++)
     { 
        P1=temp;
        delay(1);
        ring_up();
        temp=_crol_(temp,1);
        ring_down();
     }
     for(n2=0;n2<7;n2++)
     {
        P1=temp;
        delay(1);
        ring_up();
        temp=_cror_(temp,1);
        ring_down();
     }
}
*/
//<4>8个发光管演示8位二进制数累加过程

while(1)
{
P1=0xff;
P1_1=0;
delay

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值