找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1505|回復: 0
收起左側

基于51單片機實現的電子沙漏

[復制鏈接]
ID:1033323 發(fā)表于 2022-6-22 18:47 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#include<intrins.h>

int a[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int b[9]={0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};
int dz1[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
int dz2[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void delay(int x){
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<121;j++);
}

//顯示點陣
void disp(){
  unsigned int n,j;
  for(n=0;n<20;n++){
    for(j=0;j<8;j++){
   P2=a[j];//控制列
   P3=dz1[j];//控制下方點陣的行
      P1=dz2[j];//控制上方點陣的行
   delay(1);
  }
}
}

void main(){
  unsigned int i,j,x,y,n;//x,y表示當前坐標,i,j,n用以循環(huán)
  for(i=2;i<10;i++){
    for(j=1;j<i;j++){
      x=j;
      y=i-j;
    dz2[x-1]=b[8-y];
      for(n=0;n<8-i/2;n++){

        dz1[7-n]=dz1[7-n]^a[7-n];
        disp();
        dz1[7-n]=dz1[7-n]^a[7-n];        
      }

     dz1[x-1]=b[y];
      disp();
    }
  }
  for(i=10;i<17;i++){
    for(j=i-8;j<9;j++){
      x=j;
      y=i-j;

    dz2[x-1]=b[8-y];
      for(n=0;n<8-i/2;n++){
        dz1[7-n]=dz1[7-n]^a[7-n];
        disp();
        dz1[7-n]=dz1[7-n]^a[7-n];
      }
      dz1[x-1]=b[y];
      disp();

    }
  }
}

沙漏仿真圖

沙漏仿真圖

電子沙漏.zip

35.61 KB, 下載次數: 51

沙漏源程序

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表