久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4157|回復: 1
打印 上一主題 下一主題
收起左側

stm8 SPI雙機通信主設備與從設備源碼

[復制鏈接]
跳轉到指定樓層
樓主
主機使用8S103F3 帶兩個按鍵用于加1和減1操作(范圍0-99)
叢機使用8S208MB 帶1602液晶用于顯示當前數值
注意兩個機子要共地處理
圖片顯示的是實際效果


SPI主設備 - 8S103F3源碼見附件
SPI從設備 - 8S208MB 單片機源程序如下:
  1. /********接收到的數據通過1602顯示  倆設備要共地******************/

  2. #include"iostm8s208mb.h"

  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. #define LCD_EN PF_ODR_ODR4
  6. #define LCD_RS PF_ODR_ODR0
  7. #define LCD_DATA PB_ODR

  8. uchar tab1[]="=SPI Slave Test="; //初始化后顯示畫面
  9. uchar tab2[]="The Number is:  ";

  10. void delay(uint z) //約1ms延時
  11. {
  12.   uint i,j;
  13.   while (z--)
  14.   {
  15.     for(i=0;i<50;i++)
  16.       for(j=0;j<20;j++);
  17.   }
  18. }

  19. void LCD_GPIO_init(void)
  20. {
  21.   PF_DDR_DDR4=1;
  22.   PF_CR1_C14=1;
  23.   PF_CR2_C24=1;
  24.   
  25.   PF_DDR_DDR0=1;
  26.   PF_CR1_C10=1;
  27.   PF_CR2_C20=1;
  28.   
  29.   PB_DDR=0xff;
  30.   PB_CR1=0xff;
  31.   PB_CR2=0xff;  
  32. }

  33. void write_com(uchar com)
  34. {
  35.   LCD_RS=0;
  36.   LCD_DATA=com;
  37.   delay(5);
  38.   LCD_EN=1;
  39.   delay(5);
  40.   LCD_EN=0;
  41. }

  42. void write_data(uchar data)
  43. {
  44.   LCD_RS=1;
  45.   LCD_DATA=data;
  46.   delay(5);
  47.   LCD_EN=1;
  48.   delay(5);
  49.   LCD_EN=0;
  50. }

  51. void LCD_init(void)
  52. {
  53.   LCD_EN=0;
  54.   write_com(0x38);
  55.   write_com(0x0c);
  56.   write_com(0x06);
  57.   write_com(0x01);
  58. }

  59. void LCD_watch(uchar add,uchar data) //LCD顯示計數函數
  60. {
  61.   write_com(0x80+0x40+add);
  62.   write_data(0x30+data); //0x30表示字符表內0-9數字的八位為0011 0000
  63. }

  64. void LCD_DIS2(void) //LCD初始化結束后顯示內容
  65. {
  66.   uchar num;
  67.   write_com(0x80);
  68.   for(num=0;num<16;num++)
  69.   {
  70.     write_data(tab1[num]);
  71.     delay(5);
  72.   }
  73.   write_com(0x80+0x40);
  74.   for(num=0;num<16;num++)
  75.   {
  76.     write_data(tab2[num]);
  77.     delay(5);
  78.   }
  79. }

  80. void SPI_GPIO_init(void)
  81. {
  82.   PC_DDR_DDR5=0; //SCK  弱上拉輸入模式
  83.   PC_CR1_C15=1;
  84.   PC_CR2_C25=0;
  85.   
  86.   PC_DDR_DDR6=0; //MOSI  弱上拉輸入模式
  87.   PC_CR1_C16=1;
  88.   PC_CR2_C26=0;
  89.   
  90.   PC_DDR_DDR7=1; //MISO  低速率輸出
  91.   PC_CR1_C17=1;
  92.   PC_CR2_C27=0;
  93.   
  94. //  PE_DDR_DDR5=0; //NSS 此時NSS引腳要置0
  95. //  PE_CR1_C15=1;
  96. //  PE_CR2_C25=0;
  97. }

  98. void SPI_init(void)
  99. {
  100.   SPI_CR1=0x03; //MSTR=0 配置為從設備
  101.   SPI_CR2=0x02; //軟件開啟從設備
  102.   SPI_ICR=0x00; //禁止所有中斷
  103.   SPI_CR1|=0x40; //SPE=1 開啟SPI
  104. }

  105. void main(void)
  106. {  
  107.   int i=0; //會判斷負數所以用帶符號的整形 第一次任意鍵按下為00
  108.   uchar num=0;
  109.   LCD_GPIO_init();
  110.   LCD_init();
  111.   LCD_DIS2();
  112.   SPI_GPIO_init();
  113.   SPI_init();
  114.   while(1)
  115.   {
  116.     while((SPI_SR&0x01)==0);
  117.     num=SPI_DR;
  118.     if(num==0x66)
  119.     {
  120.       i++;
  121.       if(i>99)
  122.         i=0;
  123.       LCD_watch(14,i/10);
  124.       LCD_watch(15,i%10);
  125.     }
  126.     if(num==0x99)
  127.     {
  128.       i--;
  129.       if(i<0)
  130.         i=99;
  131.       LCD_watch(14,i/10);
  132.       LCD_watch(15,i%10);
  133.     }
  134.   }
  135. }
復制代碼

所有資料51hei提供下載:
spi主從通信源碼.rar (483.27 KB, 下載次數: 65)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩1
回復

使用道具 舉報

沙發
ID:454023 發表于 2020-1-4 11:19 | 只看該作者
有沒有從機發數據的?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产中文区二幕区2012 | 国产乱人伦精品一区二区 | 最新国产视频 | 一区二区三区视频在线观看 | 久久网一区二区三区 | 久久久精彩视频 | 亚洲一区视频在线播放 | 天天操夜夜操 | 成人影院午夜 | 99久久精品免费看国产小宝寻花 | 91在线网站 | 国产精品一区二区三区在线 | 99精品网| 亚洲精品一区二三区不卡 | 欧美成人精品在线观看 | 欧美日本在线观看 | 国产精品久久在线观看 | 日韩精品在线观看网站 | 亚洲欧美aⅴ | 在线一区二区三区 | www.国产.com | 欧美精品在线播放 | 91免费看片 | 国产精品日产欧美久久久久 | 久久久久网站 | 精品9999 | 欧美在线观看一区 | 久久曰视频 | a级大片| 亚洲乱码国产乱码精品精的特点 | 天天碰日日操 | 精品成人免费一区二区在线播放 | 91精品国产91久久久 | 日本精品一区 | 天天碰夜夜操 | 国产成人免费视频 | av电影一区二区 | 久久精品视频在线观看 | 黄视频免费 | 97色伦网 | 久久久久国产精品 |