main.c

来自「这是一个关于单片机的spi的程序」· C语言 代码 · 共 59 行

C
59
字号
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>/* derivative information */
#include "crg.h"				/* configure the pll */


#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
/* 发送数据子程序 */
void send_data(unsigned char data) 
{
    SPI1DR=data;				  //发送数据
    while(!(SPI1SR&0x20));//查询等待  
}
/* 延时子程序 */
void delay(long m) 
{
    while(m--);
}
/* 数码管位选子程序 */
void select_bit(unsigned char cs) 
{
    PTT&=0xf0;						//关显示
    PTT|=cs;							//选中某一位
}
/* SPI初始化子程序 */
void SPI_int()
{
    SPI1CR1=0x5C;					//使能SPI,主机模式,其他取默认值,上升沿发送数据,先发高位
    SPI1BR=0x00;          //bus clk/2
}

void main(void)
{
  /* put your own code here */
    SET_PLL();					  //调用设置PLL程序
    EnableInterrupts;
    DDRT=0xff;						//T口定义为输出
    SPI_int();
    	
    PTT|=0x20;					  //选中74HC164
   while(1)
   {
   
    send_data(0xc0);			//发送0的段码
    select_bit(1);				//选中第一位
    delay(1000);					//延时一段时间
    send_data(0xf9);			//发送1的段码
    select_bit(2);				//选中第二位
    delay(1000);					//延时一段时间
    send_data(0xa4);			//发送2的段码
    select_bit(4);				//选中第三位
    delay(1000);					//延时一段时间
    send_data(0xb0);			//发送3的段码
    select_bit(8);				//选中第四位
    delay(1000);					//延时一段时间
    PTT&=0xf0;		        //关显示
   }
}

⌨️ 快捷键说明

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