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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2178|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

24C08多花樣流水燈單片機(jī)實驗代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:351087 發(fā)表于 2018-6-13 14:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實驗用

單片機(jī)源程序如下:

  1. /****************************************************************
  2.                                                               
  3.             程序名稱:   24C08多花樣流水燈實驗
  4.             版本:   VER1.0
  5.             適用板本:  YL-51開發(fā)板
  6.                   
  7. *****************************************************************/

  8. #include <reg52.h>
  9. #include <intrins.h>
  10. #define uchar unsigned char
  11. #define uint unsigned int
  12. #define OP_WRITE 0xa0          // 器件地址以及寫入操作
  13. #define OP_READ  0xa1           // 器件地址以及讀取操作
  14. uchar code display[72]={
  15.         0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,
  16.         0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,
  17.         0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,
  18.         0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF,
  19.         0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,
  20.         0x9F,0xCF,0xE7,0xF3,0xF9,0xFC,0xFF,
  21.         0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF,
  22.         0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,
  23.         0xAA,0x55,0x18,0xFF,0xF0,0x0F,
  24.         0x00,0xFF,0x00,0xFF };
  25. sbit SDA = P2^0;
  26. sbit SCL = P2^1;
  27. void start();
  28. void stop();
  29. uchar shin();
  30. bit shout(uchar write_data);
  31. void write_byte( uchar addr, uchar write_data);
  32. void fill_byte(uchar fill_size,uchar fill_data);
  33. void delayms(uint ms);
  34. uchar read_current();
  35. uchar read_random(uchar random_addr);
  36. #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
  37. /**********************************************************/
  38. main(void)
  39. {
  40.    uchar i;
  41.    SDA = 1;
  42.    SCL = 1;
  43.    fill_byte(72,0xff);          // 將前72字節(jié)填充0xff
  44.    for(i = 0 ; i < 72; i++)    //寫入顯示代碼到AT24C02
  45.     {
  46.       write_byte(i,display[i]);
  47.     }
  48.    for(i =0 ;i <72 ; i++)      //從AT24C02移出數(shù)據(jù)送到P0口顯示
  49.    {
  50.       P1 = read_random(i);
  51.       delayms(350);
  52.    }  
  53. }
  54. /**********************************************************/
  55. void start()
  56. //開始位
  57. {
  58.    SDA = 1;
  59.    SCL = 1;
  60.    delayNOP();
  61.    SDA = 0;
  62.    delayNOP();
  63.    SCL = 0;
  64. }
  65. /**********************************************************/
  66. void stop()
  67. // 停止位
  68. {
  69.    SDA = 0;
  70.    delayNOP();
  71.    SCL = 1;
  72.    delayNOP();
  73.    SDA = 1;
  74. }
  75. /**********************************************************/
  76. uchar shin()
  77. // 從AT24C02移出數(shù)據(jù)到MCU
  78. {
  79.    uchar i,read_data;
  80.    for(i = 0; i < 8; i++)
  81.    {
  82.     SCL = 1;
  83.     read_data <<= 1;
  84.     read_data |= SDA;
  85.     SCL = 0;
  86.    }
  87.     return(read_data);
  88. }
  89. /**********************************************************/
  90. bit shout(uchar write_data)  
  91. // 從MCU移出數(shù)據(jù)到AT24C02
  92. {
  93.    uchar i;
  94.    bit ack_bit;
  95.    for(i = 0; i < 8; i++)   // 循環(huán)移入8個位
  96.    {
  97.      SDA = (bit)(write_data & 0x80);
  98.     _nop_();
  99.     SCL = 1;
  100.     delayNOP();
  101.     SCL = 0;
  102.     write_data <<= 1;
  103.    }
  104.    SDA = 1;                     // 讀取應(yīng)答
  105.    delayNOP();
  106.    SCL = 1;
  107.    delayNOP();
  108.    ack_bit = SDA;
  109.    SCL = 0;
  110.    return ack_bit;            // 返回AT24C02應(yīng)答位
  111. }
  112. /**********************************************************/
  113. void write_byte(uchar addr, uchar write_data)
  114. // 在指定地址addr處寫入數(shù)據(jù)write_data
  115. {
  116.    start();
  117.    shout(OP_WRITE);
  118.    shout(addr);
  119.    shout(write_data);
  120.    stop();
  121.    delayms(10);          // 寫入周期
  122. }
  123. /**********************************************************/
  124. void fill_byte(uchar fill_size,uchar fill_data)
  125. // 填充數(shù)據(jù)fill_data到EEPROM內(nèi)fill_size字節(jié)
  126. {
  127.    uchar i;
  128.    for(i = 0; i < fill_size; i++)
  129.    {
  130.      write_byte(i, fill_data);
  131.    }
  132. }
  133. /**********************************************************/
  134. uchar read_current()
  135. // 在當(dāng)前地址讀取
  136. {
  137.    uchar read_data;
  138.    start();
  139.    shout(OP_READ);
  140.    read_data = shin();
  141.    stop();
  142.    return read_data;
  143. }
  144. /**********************************************************/
  145. uchar read_random(uchar random_addr)
  146. // 在指定地址讀取
  147. {
  148.    start();
  149.    shout(OP_WRITE);
  150.    shout(random_addr);
  151.    return(read_current());
  152. }
  153. /**********************************************************/
  154. void delayms(uint ms)  
  155. // 延時子程序
  156. {
  157.    uchar k;
  158.    while(ms--)
  159.    {
  160.       for(k = 0; k < 120; k++);
  161.    }
  162. }

復(fù)制代碼

所有資料51hei提供下載:
014-24C02多花樣流水燈實驗.rar (2.01 KB, 下載次數(shù): 15)


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲美女在线视频 | 精品久久久久久 | 亚洲高清视频一区二区 | 日韩高清不卡 | 男人亚洲天堂 | 国产精品久久久久一区二区三区 | 日韩国产欧美一区 | 亚洲精品91 | 干干干操操操 | 亚洲精品视频一区二区三区 | 人人干人人舔 | 欧美日韩在线观看一区二区三区 | h小视频 | 国产情品 | 国产精品日韩一区二区 | 黄a在线观看 | 精品欧美黑人一区二区三区 | 天天天天操 | 日本免费黄色 | 乱码av午夜噜噜噜噜动漫 | 久久国产精品色av免费观看 | 国精久久 | 中文字幕一级毛片视频 | 亚洲乱码一区二区三区在线观看 | 精品久久久久一区二区国产 | 性色在线 | 欧美综合精品 | 天天色天天 | 免费观看国产视频在线 | 成人欧美一区二区三区白人 | 成人性生交大片 | 国产精品久久 | 国产精品我不卡 | 久久伊人青青草 | 五月天天丁香婷婷在线中 | 中文字幕一二三 | 日本不卡一区二区三区在线观看 | 欧美视频一区 | 国产成人免费网站 | 91精品久久久久久久久中文字幕 | 女女百合av大片一区二区三区九县 |