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

📄 main.c

📁 这是一个关于单片机的spi的程序
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -