找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1876|回复: 1
打印 上一主题 下一主题
收起左侧

语音控制台灯电路图及C51单片机源码(不带校验码)

[复制链接]
跳转到指定楼层
楼主
开源   stc15w4k58s4单片机

单片机源程序如下:
  1. //注意,这里以控制台灯举例,实际上不一定是用来控制台灯的,
  2. //增加多路请对比1路的程序和两路的程序,按照同样的方法修改程序。

  3. //使用此程序前,模块要设置好关键词。

  4. #include <at89x51.h>
  5. #define kai 0; //定义字符串kai代表低电平0
  6. #define guan 1;//定义字符串guan代表高电平1
  7. unsigned char a;//a用来存放串口接收到的数据(即模块的返回值)
  8. sbit JDQ=P2^7; //继电器接P2.7,P2.7脚出来接一个10K电阻再接到S8550三极管的基极
  9.                //集电极接地,发射极接继电器的线圈到5V电源上,
  10.                            //线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
  11.                            //正极接三极管的发射极。
  12.                           
  13. sbit JDQ2=P2^6; //第二路继电器接P2.6,P2.6脚出来接一个10K电阻再接到S8550三极管的基极
  14.                //集电极接地,发射极接继电器的线圈到5V电源上,
  15.                            //线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
  16.                            //正极接三极管的发射极。  下同... 请参照控制1路的源码根目录下的原理图。
  17. sbit JDQ3=P2^5;
  18. sbit JDQ4=P2^4;
  19. sbit JDQ5=P2^3;
  20. sbit JDQ6=P2^2;
  21. sbit JDQ7=P2^1;
  22. sbit JDQ8=P2^0;
  23. sbit JDQ9=P1^7;
  24. sbit JDQ10=P1^6;
  25. main()
  26. {
  27.         TMOD=0x20;//定时器1使用初值自动重装方式,方式2
  28.         TH1=0xfd;
  29.         TL1=0xfd;//9600波特率初值
  30.         TR1=1;//允许定时器计数
  31.         SM0=0;//方式1设置
  32.         SM1=1;
  33.         REN=1; //允许串口接收
  34.         EA=1;  //开总中断
  35.         ES=1;  //开串口中断
  36.         while(1)
  37.         {
  38.                 //======================================================//
  39.            if(a==1)//如果a=1,P1.7=0,继电器吸合,台灯打开
  40.            {
  41.                     JDQ=kai; //P1.7=0,
  42.            }
  43.            else if(a==2)//如果a=2,P1.7=1,继电器松开,台灯关闭
  44.            {
  45.                            JDQ=guan;//P1.7=1,
  46.            }
  47.            //=====================================================//
  48.            else if(a==3)
  49.            {
  50.                            JDQ2=kai;//如果a=3,第二路开
  51.            }
  52.            else if(a==4)
  53.            {
  54.                            JDQ2=guan;//如果a=4,第二路关
  55.            }
  56.            //====================================================//
  57.            else if(a==5)
  58.            {
  59.                            JDQ3=kai;//如果a=3,第三路开
  60.            }
  61.            else if(a==6)
  62.            {
  63.                            JDQ3=guan;//如果a=4,第三路关
  64.            }
  65.            //====================================================//
  66.            else if(a==7)
  67.            {
  68.                            JDQ4=kai;//如果a=3,第四路开
  69.            }
  70.            else if(a==8)
  71.            {
  72.                            JDQ4=guan;//如果a=4,第四路关
  73.            }
  74.            //====================================================//
  75.            else if(a==9)
  76.            {
  77.                            JDQ5=kai;//如果a=3,第五路开
  78.            }
  79.            else if(a==10)
  80.            {
  81.                            JDQ5=guan;//如果a=4,第五路关
  82.            }
  83.            //====================================================//
  84.            else if(a==11)
  85.            {
  86.                            JDQ6=kai;//如果a=3,第六路开
  87.            }
  88.            else if(a==12)
  89.            {
  90.                            JDQ6=guan;//如果a=4,第六路关
  91.            }
  92.            //====================================================//
  93.            else if(a==13)
  94.            {
  95.                            JDQ7=kai;//如果a=3,第七路开
  96.            }
  97.            else if(a==14)
  98.            {
  99.                            JDQ7=guan;//如果a=4,第七路关
  100.            }
  101.            //====================================================//
  102.            else if(a==15)
  103.            {
  104.                            JDQ8=kai;//如果a=3,第八路开
  105.            }
  106.            else if(a==16)
  107.            {
  108.                            JDQ8=guan;//如果a=4,第八路关
  109.            }
  110.            //====================================================//
  111.            else if(a==17)
  112.            {
  113.                            JDQ9=kai;//如果a=3,第九路开
  114.            }
  115.            else if(a==18)
  116.            {
  117.                            JDQ9=guan;//如果a=4,第九路关
  118.            }
  119.            //====================================================//
  120.            else if(a==19)
  121.            {
  122.                            JDQ10=kai;//如果a=3,第十路开
  123.            }
  124.            else if(a==20)
  125.            {
  126.                            JDQ10=guan;//如果a=4,第十路关
  127.            }
  128.           
  129.            else ;
  130.                   
  131.                    //也可以用switch语句写,各人喜好吧...
  132.        
  133.         }

  134. }

  135. void serial() interrupt 4 //中断法
  136. {
  137.         if(RI==1)//如果是接收中断,进行下面工作
  138.         {
  139.                 a=SBUF;//串口接收到到的数据存放到a中
  140.                 RI=0;//接收中断标志位标志
  141.         }
  142.         if(TI==1)//如果是发送中断,直接清零发送中断标志,不做任何工作
  143.         {
  144.                 TI=0; //发送中断标志位清零
  145.         }
  146. }
复制代码

所有资料51hei提供下载:
语音识别模块.rar (1.4 MB, 下载次数: 37)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-5-9 18:23 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表