| 注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 | 
|  | 
| 首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 | 
| 选择分类:当前分类——学单片机   相关联或者相类似的文章:    电鱼机电路图大全(404) PT2262/2272编解码集成电路介绍(402) yudongyang制作的雕刻机(402) 集成运算放大器的单电源供电电路(401) 互补管脉冲电路(401) 23. 模拟计算器数字输入及显示(400) GG帐号被K,厚着脸皮抗议到底!(400) 应急灯用6V电瓶自动充电器 (399) 电池使用小常识(398) VBScript 函数 (397) 自己做红外遥控接收装置 (396) 运算放大器的实验(396) 电路板厂电路板样品图片欣赏(396) 省电实用的电话灯(395) 对一个电学实验的又一改进(392) 岩石中的动物(391) 非法传销组织的“洗脑”骗术五(390) 正则表达式(390) 常用接口电路及其编程(389) 连接IDE设备时的注意事项 (388) 首页 前页 后页 尾页  本站推荐: | 18.            “嘀、嘀、……”报警声 1. 实验任务  用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出,产生频率为1KHz,根据上面图可知:1KHZ方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去,就形成我们所需的报警声了。 2. 电路原理图   图4.18.1 3. 系统板硬件连线  (1.       把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上, (2.       在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭;  4. 程序设计方法  (1.生活中我们常常到各种各样的报警声,例如“嘀、嘀、…”就是常见的一种声音报警声,但对于这种报警声,嘀0.2秒钟,然后断0.2秒钟,如此循环下去,假设嘀声的频率为1KHz,则报警声时序图如下图所示:  上述波形信号如何用单片机来产生呢? (2.       由于要产生上面的信号,我们把上面的信号分成两部分,一部分为1KHZ方波,占用时间为0.2秒;另一部分为电平,也是占用0.2秒;因此,我们利用单片机的定时/计数器T0作为定时,可以定时0.2秒;同时,也要用单片机产生1KHZ的方波,对于1KHZ的方波信号周期为1ms,高电平占用0.5ms,低电平占用0.5ms,因此也采用定时器T0来完成0.5ms的定时;最后,可以选定定时/计数器T0的定时时间为0.5ms,而要定时0.2秒则是0.5ms的400倍,也就是说以0.5ms定时400次就达到0.2秒的定时时间了。  5. 程序框图  主程序框图 
 
 
 
 
 
 
 中断服务程序框图  
 
 
 
 
 
 
 
 
 
 图4.18.2  6. 汇编源程序  T02SA                EQU 30H  T02SB                EQU 31H  FLAG                 BIT 00H                              ORG 00H                              LJMP START                              ORG 0BH                              LJMP INT_T0  START:               MOV T02SA,#00H                              MOV T02SB,#00H                              CLR FLAG                              MOV TMOD,#01H                              MOV TH0,#(65536-500) / 256                              MOV TL0,#(65536-500) MOD 256                              SETB TR0                              SETB ET0                              SETB EA                              SJMP $  INT_T0:                              MOV TH0,#(65536-500) / 256                              MOV TL0,#(65536-500) MOD 256                              INC T02SA                              MOV A,T02SA                              CJNE A,#100,NEXT                              INC T02SB                              MOV A,T02SB                              CJNE A,#04H,NEXT                              MOV T02SA,#00H                              MOV T02SB,#00H                              CPL FLAG  NEXT:                JB FLAG,DONE                              CPL P1.0  DONE:               RETI                              END  7. C语言源程序  #include <AT89X51.H>  unsigned int t02s;  unsigned char t05ms;  bit flag;  void main(void)  {    TMOD=0x01;    TH0=(65536-500)/256;    TL0=(65536-500)%256;    TR0=1;    ET0=1;    EA=1;    while(1);  }  void t0(void) interrupt 1 using 0  {    TH0=(65536-500)/256;    TL0=(65536-500)%256;    t02s++;    if(t02s==400)      {        t02s=0;        flag=~flag;      }    if(flag==0)      {        P1_0=~P1_0;      }  }  1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。  2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! | 
| 本站协议 |
 版权信息 | 
 关于我们 | 
 本站地图 | 
 营业执照 | 
 发票说明 | 
 付款方式 | 
 联系方式 深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |