51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > C51教程 > 详细内容
【吉林科技大学】第三章:89S51实践课题--广告灯的左移右移
发布时间:2009/6/16  阅读次数:3336  字体大小: 【】 【】【

Lesson 5

1.          实验任务
做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.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.           程序框图
  
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;m>0;m--)
   for(n=20;n>0;n--)
   for(s=248;s>0;s--);
}
void main(void)
{
   while(1)
       {
           temp=0xfe;
           P1=temp;
           delay();
           for(i=1;i<8;i++)
               {
                   a=temp<<i;
                   b=temp>>(8-i);
                   P1=a|b;
                   delay();
               }
           for(i=1;i<8;i++)
               {
                   a=temp>>i;
                   b=temp<<(8-i);
                   P1=a|b;
                   delay();
               }
       }
}
  
  
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[4]
  • 评论人:[匿名] 时间: [2012/7/25 3:42:42] IP:[127.0.0.*]
  • 1PmI6b , [url=http://jyhtqsqxixfx.com/]jyhtqsqxixfx[/url], [link=http://puemxcinqegz.com/]puemxcinqegz[/link], http://bzunzkbqkqzy.com/
  • 评论人:[匿名] 时间: [2012/7/24 1:21:04] IP:[85.90.62.25*]
  • Qp2Zqi , [url=http://eaxkweryvfng.com/]eaxkweryvfng[/url], [link=http://benlnaizgvps.com/]benlnaizgvps[/link], http://bymgpgqczmta.com/
  • 评论人:[匿名] 时间: [2012/7/23 3:58:21] IP:[190.152.149.8*]
  • GblrSB <a href="http://mbxhydrbshfi.com/">mbxhydrbshfi</a>
  • 评论人:[匿名] 时间: [2012/7/22 17:12:29] IP:[188.143.232.1*]
  • Thanks for that! Its just the awnser I needed.

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号