屏幕截圖 2023-05-21 202647.png (223.08 KB, 下載次數: 68)
下載附件
2023-5-21 20:28 上傳
代碼
- #include <reg51.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit K1=P2^5;
- sbit K2=P2^4;
- sbit K3=P2^3;
- sbit K4=P2^2;
- sbit K5=P2^1;
- sbit K6=P2^0;
- sbit BE=P2^7;
- uchar code NUM[]={
- 0x00,0x10,0x30,0x10,0x10,0x10,0x38,0x00, //?????? 1
- 0x00,0x18,0x24,0x04,0x18,0x20,0x3c,0x00, //?????? 2
- 0x00,0x18,0x24,0x04,0x18,0x04,0x24,0x18, //?????? 3
- 0x00,0x08,0x18,0x28,0x48,0x7c,0x08,0x08, //?????? 4
- 0x00,0x3c,0x20,0x38,0x04,0x04,0x38,0x00,//?????? 5
- 0x00,0x18,0x24,0x20,0x38,0x24,0x24,0x18,//?????? 6
- };
- uint r;
- char offset=0;
- uchar Current_Level=1,Dest_Level=1,x=0,t=0;
- void delay(uint x) //????,??????????
- {
- uchar i;
- while(x--)
- for(i=0;i<120;i++);
- }
- void main() //???
- {
- P3=0x80; //? P3 ????
- Current_Level=1;
- Dest_Level=1;
- TMOD=0x01; //??? T0 ?????? 1
- TH0=-4000/256; // TL0=-4000%256;
- TR0=1; //?? T0 ????
- IE=0x82;
- while(1); //????
- }
- void LED_Screen_Display() interrupt 1 //????
- {
- uchar i;
- if(P1!=0xff&&Current_Level==Dest_Level)
- {
- if(P1==0xfe) {Dest_Level=5;K6=0;}
- if(P1==0xfd) {Dest_Level=4;K5=0;}
- if(P1==0xfb) {Dest_Level=3;K4=0;}
- if(P1==0xf7) {Dest_Level=2;K3=0;}
- if(P1==0xef) {Dest_Level=1;K2=0;}
- if(P1==0xdf) {Dest_Level=0;K1=0;}
- }
- TH0=-4000/256; //??
- TL0=-4000%256;
- P3=_crol_(P3,1); //??????
- i=Current_Level*8+r+offset;
- P0=~NUM[i];
- if(Current_Level<Dest_Level){
- if(++r==8){
- r=0;
- if(++x==4){
- x=0;
- if(++offset==8){
- offset=0;
- Current_Level++;
- }
- }
- }
- }
- else
- if(Current_Level>Dest_Level)
- {
- if(++r==8)
- {
- r=0;
- if(++x==4)
- {
- x=0;
- if(--offset==-8)
- {
- offset=0;
- Current_Level--;
- }
- }
- }
- }
- else
- {
- if(++r==8) {r=0;}
- }
- }
復制代碼 本人初學,僅供參考,存在錯誤和不足之處,請大家回帖多多指教,不勝感激.切勿照搬,文件下載:
Keil代碼與Proteus仿真下載:
電梯樓層.7z
(29.84 KB, 下載次數: 25)
2023-5-22 01:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|