📄 led8py.c
字号:
#include "register.h"
unsigned table[5]={0x0f900,0x0A400,0xb000,0x9900,0x0c700};
//系统初始化子程序
void initial()
{
asm(" setc INTM"); //屏蔽中断
WSGR=0x00; //禁止所有的等待状态
asm(" CLRC SxM");
asm(" CLRC OVM");
asm(" CLRC CNF"); //B0被配置为数据空间
SCSR1=0x81FE; //CLKIN=6M,CLKOUT=24M ,并且使能到SPI模块的时钟
WDCR=0x0E8; //不使能看门狗
IMR=0x0000; // 禁止所有中断
IFR=0x0FFFF; // 清除全部中断标志,"写1清0"
}
//SPI模块初始化子程序
void SPIINITIAL()
{
SPICCR=0x0047; //8 char bits ,在SPICLK的下降沿发送数据,8位数
SPICTL=0x0006; //使能主动模式,一般的时钟方式,使能TALK
SPIBRR=0x000b; //SPI的波特率为6M,CLKOUT=24M
MCRB=0x0014; //设置通用引脚为SPI功能的引脚
SPICCR=SPICCR|0x0080; //使SPI退出复位状态
}
//主程序
main()
{
int i=0,j;
initial(); //系统初始化
SPIINITIAL(); //SPI初始化
MCRA=MCRA&0x0FF7f; //设置IOPA7脚为一般的I/O功能
PADATDIR=0x807f; // IOPA7 设置为输出方式,且IOPA7=0,该端口为74HC595锁存信号
while(1)
{
PADATDIR=0x807f; // IOPA7 设置为输出方式,且IOPA7=0,给LACK信号一个低电平
for(i=0;i<4;i++)
{
SPITXBUF =table[i]; //给数码管送数
while((SPISTS&0x0040)!= 0x040) {}
SPIRXBUF = SPIRXBUF;
}
PADATDIR=0x80ff; // IOPA7=1,给LACK信号一个高电平
for(j=0;j<10;j++){}
}
}
//当发生干扰中断时,执行此中断服务程序
void interrupt nothing()
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -