| 注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 | 
![]()  | 
| 首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 | 
|   选择分类:当前分类——学单片机    相关联或者相类似的文章:    常用电机与控制—步进电机(601) 比基尼(601) 电感的总结(600) 5. 广告灯(利用取表方式)(600) 直流稳压电源电路 (600) 步进电机程序控制(600) 电容容量的数字标注解释(599) 破俗套(599) 如何正确使用电烙铁(598) 一款应急灯电路(598) 用单片机制作测速仪 (598) 四个DS1820温度读取C源程序 (598) 中国知识产权第一案内幕(598) 最大的谎话 (598) 猫头鹰和它的孩子(597) 电子元器件使用须知(三)(597) 数字集成电路4060引脚图及特点(596) 铅酸蓄电池的维护技术(596) 上拉(或者下拉)电阻(596) 滤波(596) 首页 前页 后页 尾页  本站推荐:        |    5.                   广告灯(利用取表方式) 1.      实验任务  
利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。 
2.      电路原理图  
  图4.5.1 
3.      系统板上硬件连线  
  把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 
4.      程序设计内容  
在用表格进行程序设计的时候,要用以下的指令来完成 
(1).  利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。 
(2).  利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。 
因此,只要把控制码建成一个表,而利用MOVC 工,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示: 
5.       
 程序框图 图4.5.2 
6.      汇编源程序  
                            ORG 0  
START:               MOV DPTR,#TABLE  
LOOP:                CLR A  
                            MOVC A,@A+DPTR  
                            CJNE A,#01H,LOOP1  
                            JMP START  
LOOP1:              MOV P1,A  
                           MOV R3,#20  
                            LCALL DELAY  
                            INC DPTR  
                           JMP LOOP  
DELAY:              MOV R4,#20  
D1:                     MOV R5,#248  
                            DJNZ R5,$  
                            DJNZ R4,D1  
                           DJNZ R3,DELAY  
                            RET  
TABLE:              DB 0FEH,0FDH,0FBH,0F7H  
                            DB 0EFH,0DFH,0BFH,07FH  
                           DB 0FEH,0FDH,0FBH,0F7H  
                            DB 0EFH,0DFH,0BFH,07FH                 
                           DB 07FH,0BFH,0DFH,0EFH  
                            DB 0F7H,0FBH,0FDH,0FEH  
                            DB 07FH,0BFH,0DFH,0EFH  
                            DB 0F7H,0FBH,0FDH,0FEH  
                            DB 00H, 0FFH,00H, 0FFH  
                            DB 01H  
                            END  
7.      C语言源程序  
#include <AT89X51.H>  
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,  
                            0xef,0xdf,0xbf,0x7f,  
                            0xfe,0xfd,0xfb,0xf7,  
                            0xef,0xdf,0xbf,0x7f,  
                            0x7f,0xbf,0xdf,0xef,  
                            0xf7,0xfb,0xfd,0xfe,  
                            0x7f,0xbf,0xdf,0xef,  
                            0xf7,0xfb,0xfd,0xfe,  
                            0x00,0xff,0x00,0xff,  
                            0x01};  
unsigned char i;  
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)  
    {  
      if(table[i]!=0x01)  
        {  
          P1=table[i];  
          i++;  
          delay();  
        }  
        else  
          {  
            i=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  |