//头文件
#include <AT89X51.h>
#include <intrins.h>
#include <ISD1700.h>
#define uchar unsigned char
#define uint unsigned int
unsigned int n,mb;
uint Data;
uchar y;
uchar flag;
int num;
sbit beep=P2^7;
uchar bai,shi,ge;
uchar TB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f}; //显示段码
void delay1(uchar a)//数码管显示部分延时函数
{
unsigned int i;
while( --a != 0)
{
for(i = 0; i < 100; i++); //一个 ; 表示空语句,CPU空转。
} //i 从0加到125,CPU大概就耗时1毫秒
}
void xianshi(int tt)//数码管显示函数,能够显示任意4位十进制数
{
P0=TB[tt]; //0111 0001 F 停止
}
sbit KEY0=P2^6;
sbit KEY1=P1^6;
sbit LED1=P1^0;
sbit KEY2=P1^7;
sbit LED2=P1^1;
sbit KEY3=P3^0;
sbit LED3=P1^2;
sbit KEY4=P3^1;
sbit LED4=P1^3;
sbit KEY5=P3^2;
sbit LED5=P1^4;
sbit KEY6=P3^3;
sbit LED6=P1^5;
sbit S1=P2^0;
sbit S2=P2^1;
uchar loucheng=1;
uchar count1;
uchar flag;//定时标志位
uchar flag1;//上、下标志 =1 上 =2 下
uchar num1,num2,num3,num4,num5,num6;
void delay(int num){//延时函数
while(num--)
{xianshi(loucheng);}
}
void Beep(void)
{//BELL-扬声器--整点报时
unsigned char a;//定义变量用于发声的长度设置
for(a=60;a>0;a--){//第一个声音的长度
beep = ~beep;//取反扬声器驱动口,以产生音频
delay(100);//音调设置延时
}
for(a=100;a>0;a--){//同上
beep = ~beep;
delay(50);//
}
for(a=100;a>0;a--){//同上
beep = ~beep;
delay(100);//
}
beep = 1;//音乐结束后扬声器拉高关闭
}
void T0_Init(void) //定时器T1定时中断50毫秒/每次,晶振频率为12.000MHz
{
TMOD= 0x01; //设置定时器模式
TL0 = (65536-50000)/256; //设置定时初值
TH0 = (65536-50000)%256; //设置定时初值
ET0 = 1; //开定时器1中断
// TR0 = 1; //定时器1开始计时
EA=1;
}
void timer0() interrupt 1 //中断服务程序
{
TL0 = (65536-50000)/256; //重新设置定时初值
TH0 = (65536-50000)%256; //重新设置定时初值
count1++;
if(count1==80)
{
count1=0;
flag=1;
}
}
void key()
{
if(KEY1==0)
{TR0=1;
num1=1;LED1=0;
while(KEY1==0);
}
if(KEY2==0)
{TR0=1;
num2=2;LED2=0;
while(KEY2==0);
}
if(KEY3==0)
{TR0=1;
num3=3;LED3=0;
while(KEY3==0);
}
if(KEY4==0)
{TR0=1;
num4=4;LED4=0;
while(KEY4==0);
}
if(KEY5==0)
{TR0=1;
num5=5;LED5=0;
while(KEY5==0);
}
if(KEY6==0)
{TR0=1;
num6=6;LED6=0;
while(KEY6==0);
}
}
void fangxiang()
{
if(flag1==2) {S1=0;S2=1;}//下
if(flag1==1) {S2=0;S1=1;}//上
}
void main(void)
{ISD_Init();
loucheng=1;flag1=1;
LED1=LED2=LED3=LED4=LED5=LED6=1;
KEY1=KEY2=KEY3=KEY4=KEY5=KEY6=1;
num1=num2=num3=num4=num5=num6=0;
S1=1;//上
S2=1;//下
T0_Init();
TR0=0;
while(1)
{
xianshi(loucheng);
key();
if(KEY0==0)
{
ISD_SET_PLAY(add1[7],0,add2[7],0);
while(KEY0==0);
}
if(loucheng==num1)
{
Beep();TR0=0;ISD_SET_PLAY(add1[0],0,add2[0],0);ISD_SET_PLAY(add1[1],0,add2[1],0);num1=255;LED1=1;
}
if(loucheng==num2)
{
Beep();TR0=0;ISD_SET_PLAY(add1[0],0,add2[0],0);ISD_SET_PLAY(add1[2],0,add2[2],0);num2=255;LED2=1;
}
if(loucheng==num3)
{
Beep();TR0=0;ISD_SET_PLAY(add1[0],0,add2[0],0);ISD_SET_PLAY(add1[3],0,add2[3],0);num3=255;LED3=1;
}
if(loucheng==num4)
{
Beep();TR0=0;ISD_SET_PLAY(add1[0],0,add2[0],0);ISD_SET_PLAY(add1[4],0,add2[4],0);num4=255;LED4=1;
}
if(loucheng==num5)
{
Beep();TR0=0;ISD_SET_PLAY(add1[0],0,add2[0],0);ISD_SET_PLAY(add1[5],0,add2[5],0);num5=255;LED5=1;
}
if(loucheng==num6)
{
Beep();TR0=0;ISD_SET_PLAY(add1[0],0,add2[0],0);ISD_SET_PLAY(add1[6],0,add2[6],0);num6=255;LED6=1;
}
if(flag==1) //进入下一层
{
flag=0;
if(flag1==1) //电梯上行
{
loucheng++;
if(loucheng>6) {loucheng=6;flag1=2;}
}
if(flag1==2)//电梯下行
{
loucheng--;
if(loucheng<1) {loucheng=1;flag1=1;}
}
fangxiang();//方向箭头指示
}
}
}
isd1700.rar_1760_isd1700_语音播报
版权申诉
191 浏览量
2022-09-23
13:13:28
上传
评论
收藏 42KB RAR 举报
朱moyimi
- 粉丝: 64
- 资源: 1万+
最新资源
- 设计1.ms14
- vscode-1.64.1.tar源码文件
- vscode-1.64.0.tar源码文件
- vscode-1.52.0.tar源码文件
- Music-Player +PlayerActivity+ rockplayer+ SeeJoPlayer 播放器JAVA源码
- vscode-1.46.0.tar源码文件
- 最近很火植物大战僵尸杂交版2.08苹果+安卓+PC+防闪退工具V2+修改工具+高清工具+通关存档整合包更新
- 超级好用的截图工具PixPin,可录制Gif图
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
- 毕业设计参考 - 基于树莓派、OpenCV及Python的人脸识别
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈