实现的功能:此单片机模拟电梯用绿色发光二极管组成的箭头来指示电梯当前是处于上升状态还是下降状态,用数码管显示当前是处于哪一层,用红色发光二极管指示电梯走到哪一层会停电源接通后,若没有人按下停止按键,它就以每层2秒的速度一直上下运行,若有人按下某一层的停止按键,它就会在相应的那一层停止4秒钟,并伴有开门和关门的声音提示。
程序初始化1
tcount航天4ch
航天4dh曾
0000h丙
ljmp开始
000bh丙
ljmp int0x
0030h丙
;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;
启动:mov tmod,# 1小时
mov th0,# 3针
mov tl0,# 0 B0H;50毫秒
mov ie,#小时
setb tr0
mov tcount,4号
CLR F0
mov 20h,# 0
mov r0、# 30小时
mov r1,# 30
清:mov @r0,# 00 H
公司r0
djnz r1、清;把30H到4DH这30个单元清0
并打动,# 6小时
mov p3,# 0 F8H
2主程序调用
lcall ys10ms
简森-巴顿p10,一个,判断一层的停止按键是否按下
clr p20;若按下则把对应的红色发光二极管点亮
一:简森-巴顿p11,两个
lcall ys10ms
简森-巴顿p11,两个,判断二层的停止按键是否按下
clr p21;若按下则把对应的红色发光二极管点亮
二:简森-巴顿p12、射孔
lcall ys10ms
简森-巴顿p12、射孔
clr p22
各段:简森-巴顿p13,精打细算
lcall ys10ms
简森-巴顿p13,精打细算,
clr p23
台北县:简森-巴顿p14,FIV的猫咪
lcall ys10ms
简森-巴顿p14,FIV的猫咪
clr p24
FIV的猫咪:简森-巴顿p15、共六人
lcall ys10ms
简森-巴顿p15、六
clr p25
六:简森-巴顿p16,SEV
lcall ys10ms
简森-巴顿p16,SEV
clr p26
SEV:简森-巴顿p17、训
lcall ys10ms
简森-巴顿p17、训
clr p27
ljmp鲁迅
中断程序调用3
INT0X:mov th0,# 3针
mov tl0,# 0 B0H
公司tcount
mov,TCOUNT
cjne,5 #,ZHUAN2;50毫秒= 250 5女士
mov tcount,# 00 H
简森-巴顿f0,《左传》
ljmp zhuan1
《左传》:ljmp虾酱
ZHUAN1:mov p3,# 0 F8H;上升的箭头
mov,蹭
cjne,# 00 H、社里
并打动,# 06 h,显示
简森-巴顿p20,SS1_1
公司30h
mov,30小时
cjne,# 1、SSX1_1
clr p34;一层门开的声音开
SSX1_1:cjne,2号,SSX1_2
setb p34;一层门开的声音关
SSX1_2:cjne,# 16,SSX1_3
clr p34;一层门关的声音开
SSX1_3:cjne,17号,ZHUAN2;16 250毫秒= 4 S(总共次,但实际在这里停止的时间只有次MS)
mov 30h,# 0
setb p34;一层门关的声音关
setb p20;熄灭对应的红色发光二极管
SS1_1:公司31h
mov,31 H
cjne,# 9,ZHUAN2;8 250毫秒= 2秒(总共次,但实际上升一层只用次MS)
mov 31h,# 0
公司曾
社里:mov,蹭
cjne,# 1小时,SS3
并打动,5 # BH,显示
简森-巴顿p21,SS2_1
公司32h
mov一个32小时
cjne,# 1、SSX2_1
clr p34;二层门开的声音开
SSX2_1:cjne,2号,SSX2_2
setb p34;二层门开的声音关
SSX2_2:cjne,# 16,SSX2_3
clr p34;二层门关的声音开
SSX2_3:cjne,17号,ZHUAN2;16 250毫秒= 4 S(总共次,但实际在这里停止的时间只有次MS)
mov 32h,# 0
setb p34;二层门关的声音关
setb p21;熄灭对应的红色发光二极管
SS2_1:公司33h
mov,33 H
cjne,# 9,ZHUAN2;8 250毫秒= 2秒,但实际上升一层只用次MS(总共次吗
mov 33h,# 0
ljmp zhuan3
刚敲完,测试过,没有任何问题,放心使用
#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;}
}
}
以上就是关于小弟要做电梯模拟设计,下面代码不懂,求高手帮翻译每一行是代码是什么意思。(我把金币都给你,重谢!)全部的内容,包括:小弟要做电梯模拟设计,下面代码不懂,求高手帮翻译每一行是代码是什么意思。(我把金币都给你,重谢!)、求一个c语言程序,用单片机,8*8点阵屏,和按键做一个电梯仿真系统……要求;按第一个键点阵屏显示1、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)