⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.c

📁 包含2407全部外设功能试验的源程序
💻 C
字号:

//(2)	主程序
// 该程序用于实验演示模板上的8个LED的循环显示
#include  "register.h" 
main()                                  // 初始化子程序
{    int led;
     int i,k;
  	asm(" setc	SXM");					// 抑制符号位扩展
	asm(" clrc	OVM");					// 累加器中结果正常溢出
	asm(" clrc	CNF");					// B0被配置为数据存储空间
	asm(" setc	INTM");					// 禁止所有中断
	SCSR1=0x81FE;				// CLKIN=10M,CLKOUT=4*CLKIN=40M
	WDCR=0x0E8;					// 不使能看门狗,因为SCSR2中的WDOVERRIDE
		     					// 可以用软件禁止看门狗
	IMR=0x0000;					// 禁止所有中断
	IFR=0x0FFFF;				// 清除全部中断标志,"写1清0"
	MCRA=MCRA&0x00c7;			// IOPA3,IOPA4,IOPA5,IOPB端口配置为一般的I/O功能,
	PBDATDIR=0x0FF00;			// IOPB端口设置为输出方式,熄灭全部的LED 
    PADATDIR=PADATDIR&0x0FF00;		
	PADATDIR=PADATDIR|0x0FF38;	//1111 1111 0011 1000 IOPA3,IOPA4,IOPA5 设置为输出方式,且LEDCLK=1
	
	while(1)
	{
	for(led=0x0080,i=0;i<8;led=led>>1,i++)
	 {
	  PBDATDIR=PBDATDIR&0x0FF00; 	//首先屏蔽B口的各位
      PBDATDIR=PBDATDIR|led;		//把需要显示的值给IOPB端口 
      PADATDIR=PADATDIR&0x0FF00;		
	  PADATDIR=PADATDIR|0x0FF38;	// LEDCLK=1

     for(k=0;k<0x0fffe;k++)
	 k=k;
	}

   }	
}

// 直接返回中断服务程序
void interrupt nothing( ) 
{
 	return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -