📄 liushuideng.c
字号:
/**************************************************
*
* 程序说明:1.使用定时器产生间隔70ms的闪烁。
* 2.等待外部中断产生闪烁中断或启动程序。
***************************************************/
#define IMR*(int*)0x0 /*定义要访问的MMR*/
#define IFR*(int*)0x01
#define PRD*(int*)0x25
#define TCR*(int*)0x26
#define SWWSR*(int*)0x28
volatile ioport unsigned int port8028; /*定义要访问的I/O单元*/
#define Light port8028//流水灯
unsigned int LED,flag;
void main(void)
{
IMR=0;
SWWSR=0;//不插入等待周期
TCR=0x10;//TSS=1关定时器
PRD=0x0ffff;//加载周期寄存器值
TCR=0X0C2F;//TDDR分频系数=16;TSS=0启动定时器;TRB=1,从新加载PRD,
IMR=(0X08|0x02);//开放定时器中断及外部中断2
IFR=0xFFFF;//清除尚未处理完的所有中断
asm(" RSBX INTM ");//开放中断
LED=1;
flag=1;
while (1)
{;}
}
interrupt void INT_2(void)
{
if(flag==1)
{
flag=0;
TCR=0x0C3F;//关闭定时器
}
else
{
flag=1;
TCR=0x0C2F;//开启定时器
}
}
interrupt void timer(void)
{
Light=LED;
if(LED>8){LED=1;}
LED*=2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -