Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 818|回复: 2

杨晓静个人帖

[复制链接]

1

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-10-12 13:43:48 | 显示全部楼层 |阅读模式
流水灯
回复

使用道具 举报

1

主题

4

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2023-11-16 10:46:32 | 显示全部楼层
电子时钟
#include<Reg52.h>
char a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
char b[]={0xFF,0xFB,0xF7,0xF3,0xEF,0xEB,0xE7,0xE3};
long unsigned int n=0,cc=0;
int hour=0,minite=0,second=0;
int T1MS = 65536-50000;
sbit key1=P3^1;
sbit key2=P3^0;
sbit key3=P3^2;
sbit key4=P3^3;
void dis_play(int hour,minite,second);
void transform(int num);
void init_interrupt();
void system();
void delay(int i)
{
        int x,y;
        for(x=i;x>=0;x--)
                for(y=0;y<40;y++);
}
void system()
{
        if(key1==0)
        {
                delay(2);
                if(key1==0)
         {
                        n+=3600;
                }
                while(key1==0);
        }
        if(key2==0)
        {
                delay(2);
                if(key2==0)
                {
                        n+=60;
                }
                while(key2==0);
        }
        if(key4==0)
        {
                delay(2);
                if(key4==0)
                {
                        n+=1;
                }
                while(key4==0);
        }
        dis_play(hour,minite,second);
}
void transform(long unsigned int num)
{
        hour=num/3600;
        num-=(long unsigned int)hour*3600;
        minite=num/60;
        num-=(long unsigned int)minite*60;
        second=num;
        if(hour>=24)
        {
                n=0;
        }
        dis_play(hour,minite,second);
}
void dis_play(int hour,int minite,int second)
{
        P0=0x00;
        P2=0xFF;
        P0=a[hour/10];
        delay(2);
        P0=0x00;
        P2=0xFB;
        P0=a[hour%10];
        delay(2);
       
        P0=0x00;
        P2=0xF7;
        P0=0x40;
        delay(2);
       
        P0=0x00;
        P2=0xF3;
        P0=a[minite/10];
        delay(2);
        P0=0x00;
        P2=0xEF;
        P0=a[minite%10];
        delay(2);
       
        P0=0x00;
        P2=0xEB;
        P0=0x40;
        delay(2);
       
        P0=0x00;
        P2=0xE7;
        P0=a[second/10];
        delay(2);
        P0=0x00;
        P2=0xE3;
        P0=a[second%10];
        delay(2);
}
void init_interrupt();
void main()
{
        init_interrupt();
        while(1)
        {
                transform(n);
                system();
        }
}
void init_interrupt()
{
        TMOD = 0x00;
        TL0 = T1MS%256;
        TH0 = T1MS/256;
        TR0=  1;
        ET0 = 1;
        EA = 1;
}
void T0_interrupt() interrupt 1
{
        TL0 = T1MS%256;
        TH0 = T1MS/256;
        cc++;
        if (cc>=20)
        {
                cc = 0;
                n++;
        }
}
回复

使用道具 举报

1

主题

4

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2023-11-16 11:35:45 | 显示全部楼层
#include<Reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
void uart_init()
{
        TMOD=0x20;
        TH1=0xFD;
        TL1=0xFD;
        PCON=0x00;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        EA=1;
        ES=1;
}
void uart() interrupt 4
{
        if(RI)
        {
                        num=SBUF;
                        RI=0;
                        SBUF=num;
                        while(!TI);
                        TI=0;
        }
}
void main()
{
        uart_init();
        while(1);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2024-11-23 16:57 , Processed in 0.051820 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表