PIC18f46j50单片机里SPI部分的一点程序

最近帮师姐做毕业设计,先把SPI部分的程序放上来,等师姐顺利毕业再把论文发上来。

unsignedchar code redate[30];

int valbit(unsignedchar cmd,unsignedchar i)
{
 unsignedchar val;
 cmd=cmd<<i;               //将cmd的第i位左移至最高位
 val=cmd&0x80;             //判断左移后的最高位是否为1;
 return val;
}

void  SLEEP()
{
  _asm
    SLEEP     /*进入休眠状态*/
  _endasm
}


void BL_write(unsignedchar cmd,unsignedchar *DATE)
{ 
 unsigned n,m,j;
 cmd=cmd|0x40;            //强制使写入数据最高两位为01
 RD1=0;                   //拉低DIR
 RB1=1;                   // /CS置1
 delay(1);
 RB4=1;                   //置SCLK为0;
 delay(1);
 RB1=0;                   //CS置0,是BL6523A进入通信模式
 delay(1);
 for(n=0;n<8;n++)         //向BL6523A中写入一个8字节的数据)
 {
   RB4=0;                 //置SCLK为0,开始准备要写入的数据
   delay(1);
   if(valbit(cmd,n)==0)   //cmd第n位是否为0
     RB2=0;               //DIN置0
   else                  //cmd第n位不为0 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书所附光盘跟目录下包含以下子目录: ● C语言程序例程。该子目录包括以下子程序: ——AD程序实现模拟量到数字量的转换功能; ——CAN程序实现CAN总线通讯功能; ——keyboard_check程序实现键盘的扫描查询方式输入; ——keyboard_disturb程序实现PORTB的"电平变化中断"进行键盘的输入; ——led0-8程序实现在8个LED上依次显示1~8数字; ——PWM程序用于使CCP1模块产生分辨率为10位的PWM波形,占空比为50%; ——RS-232程序通过RS-232接口来完成PC计算机与单片机之间的通信; ——simple_POARD程序为外围功能模块简单应用实例,点亮与PORTD口相连的八个发光二极管; ——stopwatch程序实现计时秒表功能,时钟显示范围00.00~99.99秒,分辨度为0.01秒; ——switchinput程序用于开关量的输入(采用SPI总线),并显示在与D口相连的LED上; ——wakeup程序实现PIC18F458的休眠工作方式,并由实验板上的按键产生"电平变化中断"将其从休眠状态中激活; ——WDT程序实现"看门狗"WDT的功能; ——Yejing程序实现液晶显示器的接口和显示功能。 ● 汇编语言程序例程。该子目录包括以下子程序: ——AD程序实现模拟量到数字量的转换功能; ——CAN程序实现CAN总线通讯功能; ——CAN2程序是优化的程序,同样实现CAN总线通讯功能; ——keyboard_check程序实现键盘的扫描查询方式输入; ——keyboard_disturb程序实现PORTB的"电平变化中断"进行键盘的输入; ——led0-8程序实现在8个LED上依次显示1~8数字; ——PWM程序用于使CCP1模块产生分辨率为10位的PWM波形,占空比为50%; ——RS-232程序通过RS-232接口来完成PC计算机与单片机之间的通信; ——simple_POARD程序为外围功能模块简单应用实例,点亮与PORTD口相连的八个发光二极管; ——stopwatch程序实现计时秒表功能,时钟显示范围00.00~99.99秒,分辨度为0.01秒; ——switchinput程序用于开关量的输入(采用SPI总线),并显示在与D口相连的LED上; ——wakeup程序实现PIC18F458的休眠工作方式,并由实验板上的按键产生"电平变化中断"将其从休眠状态中激活; ——WDT程序实现"看门狗"WDT的功能; ——Yejing程序实现液晶显示器的接口和显示功能。 ● MPLAB及C18安装使用简介。 ● 建立工程项目实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值