单片机学习实例.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机学习实例:广告灯的左移右移 作者:刘昆山 4. 广告灯的左移右移 1. 实验任务 做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。 2. 电路原理图 图4.4.1 3. 系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 4. 程序设计内容 我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。 每次送出的数据是不同,具体的数据如下表1所示 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 说明 L8 L7 L6 L5 L4 L3 L2 L1 1 1 1 1 1 1 1 0 L1亮 1 1 1 1 1 1 0 1 L2亮 1 1 1 1 1 0 1 1 L3亮 1 1 1 1 0 1 1 1 L4亮 1 1 1 0 1 1 1 1 L5亮 1 1 0 1 1 1 1 1 L6亮 1 0 1 1 1 1 1 1 L7亮 0 1 1 1 1 1 1 1 L8亮 表1 5.程序框图   图4.4.2   6. 汇编源程序 ORG 0 START: MOV R2,#8 MOV A,#0FEH SETB C LOOP: MOV P1,A LCALL DELAY RLC A DJNZ R2,LOOP MOV R2,#8 LOOP1: MOV P1,A LCALL DELAY RRC A DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#20 ; D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END 7. C语言源程序 #include AT89X51.H unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) { unsigned char m,n,s; for(m=20;m0;m--) for(n=20;n0;n--) for(s=248;s0;s--); } void main(void) { while(1) { temp=0xfe; P1=temp; delay(); for(i=1;i8;i++) { a=tempi; b=temp(8-i); P1=a|b; delay(); } for(i=1;i8;i++) { a=tempi; b=temp(8-i); P1=a|b; delay(); } } } 单片机学习实例:报警产生器6. 报警产生器 1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2. 电路原理图 图4.6.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭; (3. 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 4. 程序设计内容 (1. 信号产生的方法 500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;   5. 程序框图 图4.6.2 6. 汇编源程序 FLAG BIT 00H ORG 00H START: JB P1.7,START JNB FLAG,NEXT MOV R2,#200 DV: CPL P1.0 LCALL DELY500 LCALL DELY500 DJNZ R2,DV CPL FLAG NEXT: MOV R2,#200 DV1: CPL P1.0 LCALL DELY500 DJNZ R2,DV1 CPL FLAG SJMP START DELY500: MOV R7,#250 LOOP: NOP DJNZ R7,LOOP RET END 7. C语言源程序

文档评论(0)

bbnnmm885599 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档