刚敲完,测试过,没有任何问题,放心使用
#include <reg51h>
#include <intrinsh>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P2^4;
sbit K2=P2^3;
sbit K3=P2^2;
sbit K4=P2^1;
sbit K5=P2^0;
sbit BE=P2^7;
uchar code NUM[]=
{0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00,
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,
0x00,0x22,0x49,0x49,0x49,0x26,0x00,0x00,
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00};
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;
Current_Level=1;
Dest_Level=1;
TMOD=0x01;
TH0=-4000/256;
TL0=-4000%256;
TR0=1;
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;K5=0;}
if(P1==0xfd) {Dest_Level=4;K4=0;}
if(P1==0xfb) {Dest_Level=3;K3=0;}
if(P1==0xf7) {Dest_Level=2;K2=0;}
if(P1==0xef) {Dest_Level=1;K1=0;}
}
TH0=-4000/256;
TL0=-4000%256;
P3=_crol_(P3,1);
i=Current_Level8+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;}
}
}
电梯系统需要以下几个程序功能:
(1)处理电梯呼叫:乘客呼叫电梯、电梯按钮明灭、电梯控制器处理电梯呼叫、处理按钮信息更新等
(2)处理楼层呼叫:包括乘客选择楼层、楼层按钮明灭、电梯控制器处理楼层呼叫、处理按钮信息更新等
(3)移动停止电梯:包括驱动速度的改变、停止的判定、电梯的运动方向驱动
(4)标志移动方向:让乘客知道电梯目前运动方向、决定是否进入电梯
(5)标志电梯位置:让乘客知道乘客的目的层是否到达。决定是否离开电梯
(6)开关门:乘客进出电梯,电梯应该开关门。应包括电梯正关闭而乘客想进入时乘客可以使电梯门打开
(7)触发紧急处理器:电梯有安全机制确定一个不安全的状态不是瞬时产生的
以上就是关于求一个c语言程序,用单片机,8*8点阵屏,和按键做一个电梯仿真系统……要求;按第一个键点阵屏显示1全部的内容,包括:求一个c语言程序,用单片机,8*8点阵屏,和按键做一个电梯仿真系统……要求;按第一个键点阵屏显示1、电梯编程都包括什么程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)