📄 key.c
字号:
//(2) 主程序 (实现按K1键加1并在LED上显示)
#include "register.h"
int m=0x0001;
main() // 初始化子程序
{
asm(" setc SXM"); // 抑制符号位扩展
asm(" clrc OVM"); // 累加器中结果正常溢出
asm(" clrc CNF"); // B0被配置为数据存储空间
asm(" setc INTM"); // 禁止所有中断
SCSR1=0x81FE; // CLKIN=6M,CLKOUT=4*CLKIN=24M
WDCR=0x0E8; // 不使能看门狗,因为SCSR2中的WDOVERRIDE
// 即WD复位后的缺省值,故可以用
// 软件禁止看门狗
IMR=0x0000; // 禁止所有中断
IFR=0x0FFFF; // 清除全部中断标志,"写1清0"
MCRA=MCRA&0x0FF00; // IOPB端口配置为一般的I/O功能,TMS320LF240x的
// 端口均为8位,MCRA为16位因此控制了IOPA,
// 和IOPB的设置
PBDATDIR=0x0FF00; // IOPB端口设置为输出方式
MCRC=MCRC&0x0FF00;
PFDATDIR=PFDATDIR|0x0404; // IOPF2 设置为输出方式,且IOPF2=1
PFDATDIR=PFDATDIR&0x0FFFB; // IOPF2=0 */
while(1)
{
int j,k;
j=PFDATDIR&0x0008;
if(j==0x0008)
j=0;
else j=1;
if(j==1)
{
for(k=0;k<0x0ffff;k++)
{}
j=PFDATDIR&0x0008;
if(j==0x0008)
j=0;
else j=1;
}
j=PFDATDIR&0x0008;
if(j==0)
PBDATDIR=(PBDATDIR&0x0FF00)+m++;
else
PBDATDIR=PBDATDIR;
PFDATDIR=PFDATDIR|0x0404; // IOPF2 设置为输出方式,且IOPF2=1
PFDATDIR=PFDATDIR&0x0FFFB; // IOPF2=0
// 以上的操作产生一个脉冲,使LED全部熄灭
}
}
// 直接返回中断服务程序
void interrupt nothing( )
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -