积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 单片机 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
用AT89S51单片机多路开关状态指示-课程设计
 
作者:未知   来源:东哥单片机学习网    点击数:82   更新时间:2008-8-6
您可以添加到网摘 让更多人关注此文章:

    

1. 实验任务


AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。


2. 电路原理图

3. 系统板上硬件连线


                   1.       把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;

                   2.       把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上;


4.  程序设计内容 


                   1.       开关状态检测


对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.X,REL或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。


                   2.       输出控制


根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETB P1.X和CLR P1.X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。


5. 程序框图


6. 方法一(汇编源程序)


         ORG 00H


START:             MOV A,P1


         ANL A,#0F0H


         RR A


          RR A


         RR A


         RR A


         XOR A,#0F0H


         MOV P1,A


         SJMP START


         END


7. 方法一(C语言源程序)


#include <AT89X51.H>


unsigned char temp;


 


void main(void)


{


  while(1)


    {


      temp=P1>>4;


      temp=temp | 0xf0;


      P1=temp;


    }


}


8. 方法二(汇编源程序)


         ORG 00H


START:             JB P1.4,NEXT1


         CLR P1.0


         SJMP NEX1


NEXT1:             SETB P1.0


NEX1:              JB P1.5,NEXT2


         CLR P1.1


         SJMP NEX2


NEXT2:             SETB P1.1


NEX2:              JB P1.6,NEXT3


         CLR P1.2


         SJMP NEX3


NEXT3:             SETB P1.2


NEX3:              JB P1.7,NEXT4


         CLR P1.3


         SJMP NEX4


NEXT4:             SETB P1.3


NEX4:              SJMP START


         END


9. 方法二(C语言源程序)


#include <AT89X51.H>


 


void main(void)


{


  while(1)


    {


      if(P1_4==0)


        {


          P1_0=0;


        }


        else


          {


            P1_0=1;


          }


      if(P1_5==0)


        {


          P1_1=0;


        }


        else


          {


            P1_1=1;


          }


      if(P1_6==0)


        {


          P1_2=0;


        }


        else


          {


            P1_2=1;


          }


      if(P1_7==0)


        {


          P1_3=0;


        }


        else


          {


            P1_3=1;


          }


    }


}

 



相关文章
· 基于C8051F的OLED控制电路的设计[12]
· 基手单片机8089的超声波电源控制技术的研究[11]
· DSP和FPGA构成的感应发电机励磁控制系统[18]
· DSP和FPGA构成的感应发电机励磁控制系统[22]
· 基于单片机的自动血压监控系统设计原理[12]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
英特尔芯片未来技术:探索移动小设备投
Camstar帮助中国医疗器械制造商
中华英才网将被全盘收购
破国外垄断 中国移动存储标
IC设计面临三重挑战 ED
手机电视芯片方案需求多变
北京德尔威科技有限公司与台湾佳营电子
全球手机芯片市场战局将出现重大变革
北京奥运安保系统首次成功运用射频识别
英特尔开发空气传电技术
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
液晶问题...
[原创]本公司长期批发各种滑冰...
[原创]本公司长期超低价批发各...
[原创]本公司长期超低价批发种...
[原创]本公司长期批发各种酒、...
[原创]本公司长期低价批发各种...
[原创]长期低价批发各种母婴用...
[原创]本公司长期批发各种饮料...
[推荐]通讯上通用的一个GSM...
用两个电容代替一个?...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网