发 帖  
原厂入驻New

如何使用C8051F单片机控制8位LED?

59 C8051F LED
分享
2020-11-10 06:02:31   评论 分享淘帖 邀请回答

相关问题

3个回答
系统功能
使用C8051F单片机控制8位LED,演示C8051F单片机之“点灯术”。
硬件设计
关于C8051F的I/O结构及相关介绍详见Datasheet(点击查看),这里仅对作部分简单介绍,下面是AVR的I/O引脚配置表:

虽然C8051F的I/O口单独输出“1”时,可输出较大电流足已点亮一盏灯,但C8051F总的I/O输出毕竟是有限的,所以,有经验的点灯者考虑到除了点灯外可能还有其它费劲的活儿要干,会将C8051F的I/O口设计为输出“0”时点灯,输出“1”时熄灯。这种接法亦叫“灌电流接法”。
2020-11-10 11:36:15 评论

举报

  软件设计
  下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!
  //目标系统: 基于C8051F单片机
  //应用软件: Silicon IDE / Keil
  /*01010101010101010101010101010101010101010101010101010101010101010101
  ----------------------------------------------------------------------
  实验内容:
  点灯,LED灯按顺序从第一盏到第八盏灯依次点亮。
  ----------------------------------------------------------------------
  硬件连接:
  将P1口与8位LED指示灯相连。
  ----------------------------------------------------------------------
  注意事项:
  (1)若有加载库程序,请将光盘根目录下的“library”下的“C8051F”文件夹拷到D盘
  (2)请详细阅读:光盘根目录下的“说明书首页.htm”里的相应产品说明
  ----------------------------------------------------------------------
  10101010101010101010101010101010101010101010101010101010101010101010*/
  #define _DVK501_F320_EX_
  #include 《c8051f320.h》
  #include 《。./。./。./。./library/C8051F/ws_clock.h》
  #include 《。./。./。./。./library/C8051F/ws_delay.h》
  void main(void)
  {
  uchar a,i;
  PCA0MD &= ~0x40; //Clear watchdog timer enable
  clock_internal();
  P1MDOUT = 0xFF;
  XBR1 = 0x40;
  a = 0xFF;
  while(1)
  {
  for(i=0;i《9;i++)
  {
  P1 = ~a;
  a 《《= 1;
  delay_ms(500);
  }
  a = 0xFF;
  }
  }
2020-11-10 11:37:06 评论

举报

  系统调试
  本节的目的在于学习AVR的IO输出功能,对于AVR来说,它和传统的51单片机不同,需要设置IO引脚方向。
  作如下调试:
  (1)改变IO方向,即将“a = 0xFF;”改为“a = 0x00;”,观察现象。
  (2)将语句:delay_ms(500);改为语句:delay_ms(100);可以看到LED闪的更快
2020-11-10 11:37:17 评论

举报

只有小组成员才能发言,加入小组>>

325个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表