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

📄 main.c

📁 最简单的发光二极管闪烁程序
💻 C
字号:
/*************************************
  Copyright 2001 by Haia Tech
  海佳科技有限公司
  www.haia2004.com
  Email:haia2004@vip.sina.com
  Tel:0731-4552122 4553216
*************************************/
#include "cpu_reg.h"
#include "string.h"

#define word_port   (unsigned short *)0x007e
#define order_port  (unsigned short *)0x007d


void print(unsigned short word);


int ms,f;


void main()
{

     asm("  STM #0000h,CLKMD ");  
     while(*CLKMD & 0x01 );
     asm("  STM #50c7h,CLKMD ");  //设置CPU运行频率=101M
/*  40c7h:5*clkin  =60
    50c7h:6*clkin  =101M
    8107h:9*clkin  =108
    7107h:8*clkin  =96
*/
     asm("  stm   #4240h, SWWSR ");
     //2 wait except for on-chip program 1
     asm("  stm   #00a0h, PMST  "); //MP/MC = 0, IPTR = 001,ovly=1  
     asm("  stm   #0802h, BSCR  "); 
     asm("  STM #0h,IMR ");
     
     asm("  STM #0010h,TCR  "); //关定时器
     asm("  STM #0186ah,PRD  ");//1ms
     asm("  STM #0C2fh,TCR  "); //TCR=最后四位
     asm("  STM #0008h,IFR  ");
     asm("  ORM #0008h,*(IMR) ");/*开时间中断*/
 
     asm("  RSBX  INTM ");      /*开中断*/ 

     print(0x1234);
     print(0x5678);
//     print(0x1234);
//     f=0x4648;
//     print((unsigned short)f);
     
     f=1;
     ms=0;
     while(1)
     {
       while(ms<500/f);     //LED_flash
       ms=0;
       asm("  RSBX  XF ");       
       while(ms<500/f);
       ms=0;
       asm("  SSBX  XF ");       
     }

}
	  
interrupt void  timer0()
{
     ms++;
}


void print(unsigned short word)
{
	unsigned int x,i;
	*word_port=word;
	
	*order_port=0x01;
	for(i=0;i<20;i++)
	  for(x=0;x<30000;x++);
}

⌨️ 快捷键说明

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