#include <reg52.h>
#include "delay.h"
#include "servo.h"
#include "uart.h"
#include "timer.h"
#include "voice.h"
/*主函数入口*/
void main(void)
{
//angle与对应角度关系
//4 5 6 ...... 19 20
//0 11 22 ...... 166 177
uart_Init();
timer0_Init();
while(1)
{
switch(comFlag)
{
case 0:
TIM0_OFF;
voiceAck();//语音播报:我在
delay600ms();
comFlag = 10;
MP30 = 1;
break;
//干垃圾
case 1:
openTrash(); //开垃圾桶
voiceOpenGan();//语音播报:这个是干垃圾
delay2s(); //延时2s
voiceCloseGan();
closeTrash(); //关垃圾桶
break;
//湿垃圾
case 2:
openTrash(); //开垃圾桶
voiceOpenShi();//语音播报:这个是干垃圾
delay2s(); //延时2s
voiceCloseShi();
closeTrash(); //关垃圾桶
break;
//有害垃圾
case 3:
openTrash(); //开垃圾桶
voiceOpenYou();//语音播报:这个是有害垃圾
delay2s(); //延时2s
voiceCloseYou();
closeTrash(); //关垃圾桶
break;
//可回收垃圾
case 4:
openTrash(); //开垃圾桶
voiceOpenKe(); //语音播报:这个是可回收垃圾
delay2s(); //延时2s
voiceCloseKe();
closeTrash(); //关垃圾桶
break;
default:
TIM0_OFF;
break;
}
}
}
/*串口通信中断处理函数*/
void uartDispose() interrupt 4
{
unsigned char command; //存放命令
command = SBUF;
switch(command)
{
case 'e': comFlag = 0; break;
case 'g': comFlag = 1; break;
case 'G': comFlag = 1; break;
case 's': comFlag = 2; break;
case 'S': comFlag = 2; break;
case 'y': comFlag = 3; break;
case 'Y': comFlag = 3; break;
case 'k': comFlag = 4; break;
case 'K': comFlag = 4; break;
default : comFlag = 10; break;
}
while(!RI);
RI = 0;
}
/*定时器0中断处理函数*/
void Timer0Dispose() interrupt 1
{
TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值
switch(comFlag)
{
case 1:
{
if(count < angle) //判断次数是否小于角度标识
pwmg=1; //确实小于,PWM输出高电平
else
pwmg=0;
break;
}
case 2:
{
if(count < angle) //判断次数是否小于角度标识
pwms=1; //确实小于,PWM输出高电平
else
pwms=0;
break;
}
case 3:
{
if(count < angle) //判断次数是否小于角度标识
pwmy=1; //确实小于,PWM输出高电平
else
pwmy=0;
break;
}
case 4:
{
if(count < angle) //判断次数是否小于角度标识
pwmk=1; //确实小于,PWM输出高电平
else
pwmk=0;
break;
}
default: break;
} //大于则输出低电平
count=(count+1); //0.1ms次数加1
count=count%160; //保持周期为20ms,普通51单片机定时100us有误差,经示波器测量约为50Hz
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
51-MP3——语音识别分类垃圾桶.zip (40个子文件)
51-MP3——语音识别分类垃圾桶
delay.OBJ 2KB
delay.LST 2KB
timer.OBJ 1KB
main.__i 34B
STARTUP.LST 14KB
timer.LST 1KB
voice.LST 2KB
uart.h 162B
main.OBJ 7KB
handler.lnp 128B
handler 16KB
handler.M51 20KB
servo.__i 35B
handler.plg 366B
STARTUP.A51 6KB
handler_uvopt.bak 60KB
timer.c 255B
servo.h 438B
handler.uvopt 60KB
handler.uvgui.86180 90KB
main.LST 8KB
timer.__i 35B
uart.__i 34B
servo.c 599B
uart.LST 2KB
handler.hex 3KB
delay.h 197B
uart.c 384B
timer.h 161B
voice.OBJ 3KB
STARTUP.OBJ 749B
delay.c 950B
servo.OBJ 3KB
voice.h 599B
uart.OBJ 2KB
voice.c 530B
main.c 3KB
handler_uvproj.bak 13KB
servo.LST 2KB
handler.uvproj 15KB
共 40 条
- 1
资源评论
..H
- 粉丝: 580
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (Vim)mamba-ssm-1.1.1-cp310-cp310-win-amd64.whl
- mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、
- 通信原理实验:PCM编译码
- java毕业设计-基于SSM的二手市场平台【代码+论文+PPT】.zip
- 同步代码工具,主要应用于git中
- causal-conv1d win Python3.10 CUDA11.8 for Vim
- Megaman 和使用 DirectX 的游戏引擎.zip
- 初探IvorySQL 3.0数据库在CentOS 7.9下的源码安装及兼容模式测试
- MASM 和 DirectX 教程.zip
- xz-5.2.2-1.el7.src.rpm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功