freetech

HCS08入门之——蜂鸣器实验

0
阅读(2912)

该实验非常简单,就是通过IO口输出高电平使蜂鸣器发出蜂鸣声。本实验主要学习IO口的几个寄存器用法:

1、IO口数据寄存器PTxD,对应的值为0时是低电平,为1时是高电平。单个使用是PTxD_PTxDn(x为A、B、C、D……,n为1、2、3……),本例中的“PTCD_PTCD2=1;”等效于“PTCD |= 0x04;”是让PTCD2脚输出高电平。

2、IO口方向寄存器PTxDD,对应的值为0时IO口做输入,为1时IO口做输出。单个使用是PTxDD_PTxDDn(x为A、B、C、D……,n为1、2、3……),本例中的“PTCDD_PTCDD2=1;”等效于“PTCDD |= 0x04;”是将PTCD2脚设为输出。

3、IO口驱动强度寄存器PTDxS,对应的值为0时是低驱动强度,为1时是高驱动强度。单个使用是PTxDS_PTxDSn(x为A、B、C、D……,n为1、2、3……),本例中的“PTCDS_PTCDS2=1;”等效于“PTCDS |= 0x04;”是让PTCD2脚使用高驱动强度。

 

程序代码如下:

#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */

//============================
//函数名:Init_io初始化I/O
//作用:初始化I/O
//输入参数:无
//返回参数:无
//=============================
void Init_io(void)

    //io初始值为1
  PTCD_PTCD2=1;
    //io为输出
  PTCDD_PTCDD2=1;
    //高驱动强度
  PTCDS_PTCDS2=1;

}

void main(void) {

  EnableInterrupts; /* enable interrupts */
  /* include your code here */

  Init_io();

  for(;;) {
    __RESET_WATCHDOG(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}