发 帖  
原厂入驻New

基于ATMEGA16的AVRAD转换中断程序分享

21 ATmega16 AD转换
分享
使用ATmega16的内部AD为例,给出AD转换中断程序。
0
2020-11-5 06:09:01   评论 分享淘帖 邀请回答
1个回答
  //目标系统: 基于C8051F单片机
  //应用软件: Silicon IDE / Keil
  /*01010101010101010101010101010101010101010101010101010101010101010101
  ----------------------------------------------------------------------
  实验内容:
  使用P2口的LED指示灯查看MCU自己从模拟串口发送的数据。
  ----------------------------------------------------------------------
  硬件连接:
  将P2口和8位LED指示灯相连。
  DVK501(164PrlPort) F320 EX
  Q0 --------- P2.0
  Q1 --------- P2.1
  Q2 --------- P2.2
  Q3 --------- P2.3
  Q4 --------- P2.4
  Q5 --------- P2.5
  Q6 --------- P2.6
  Q7 --------- P2.7
  VCC --------- VCC
  GND --------- GND
  MR --------- P1.5
  A / B --------- P1.6
  CLK --------- P1.7
  ----------------------------------------------------------------------
  注意事项:
  (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》
  #include 《。./。./。./。./library/C8051F/ws_74hc164_port.h》
  void main(void)
  {
  uchar tmp=0;
  PCA0MD &= ~0x40;
  XBR1 = 0x40;
  clock_external();
  hc164Init();
  while(1)
  {
  hc164SetDat(tmp);
  tmp++;
  delay_ms(500);
  }
  }
  sbit HC164_DATA = P1^6;
  sbit HC164_CLK = P1^7;
  void hc164Init(void)
  {
  P1MDOUT |= 0xC0;
  }
  void hc164SetDat(uchar dat)
  {
  uchar i;
  for(i=0;i《8;i++)
  {
  HC164_CLK = 0;
  if(dat & 0x80)
  HC164_DATA = 1;
  else
  HC164_DATA = 0;
  HC164_CLK = 1;
  dat = dat《《1;
  }
  }
2020-11-5 15:18:52 评论

举报

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

320个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

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