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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

帶存儲功能的8個LED流水燈的單片機匯編語言程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:209376 發表于 2017-6-8 22:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機匯編語言程序還帶存儲功能哦
源碼下載: 實現8個LED流水燈匯編語言程.DOC (43 KB, 下載次數: 8)

  1. #include <reg51.h>

  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;

  4. #define write_c02 0xa0
  5. #define read_c02 0xa1

  6. sbit sda = P2^0;
  7. sbit scl = P2^1;

  8. void delay()
  9. {
  10. //delay:5us
  11. ;;
  12. }


  13. //i2c:init
  14. void i2c_init()
  15. {
  16. sda = 1;
  17. delay();
  18. scl = 1;
  19. delay();
  20. }


  21. //delayms:
  22. void delayms(uint xms)
  23. {
  24. uchar x, y;
  25. for(x = xms; x > 0; x--)
  26.    for(y = 110; y > 0; y--);
  27. }

  28. //start:
  29. void start() //啟動i2c
  30. {
  31. sda = 1;
  32. scl = 1;
  33. delay();//延時必須大于4.7us,此約為五微秒
  34. sda = 0; //在scl為高電平時,sda一個下降沿為啟動信號
  35. delay();
  36. }

  37. //stop:
  38. void stop() //停止i2c
  39. {
  40. sda = 0;
  41. scl = 1;
  42. delay();
  43. sda = 1; //在scl為高電平時,sdasda一個上升沿為停止信號
  44. delay();
  45. }

  46. //ack:
  47. void ack() //應答信號0
  48. {
  49. uchar i = 0; //等待變量
  50. scl = 1;//在scl為高電平期間等待應答
  51. delay();
  52. while((sda == 1) && i < 250)//若為應答0即退出,從機向主機發送應答信號
  53. i++;//等待一段時間
  54. scl = 0; //應答之后將scl拉低
  55. delay();
  56. }

  57. //nack:
  58. void nack() //非應答
  59. {
  60. scl = 1;//在scl為高電平期間,由主機向從機發送一個1,非應答信號
  61. delay();
  62. sda = 1;
  63. scl = 0; //應答之后將scl拉低
  64. delay();
  65. }

  66. //send byte:
  67. void send_byte(uchar date)//寫一個字節
  68. {
  69. uchar i, temp;
  70. temp = date; //存入要寫入的數據,即要發送到sda上的數據
  71. for(i = 0; i < 8; i++)
  72. { //發送8位
  73.   temp <<= 1; //to CY 將數據的最高位移入到PSW中的CY位中
  74.   scl = 0;//只有在scl為低電平時,才允許sda上的數據變化
  75.   delay();
  76.   sda = CY; //將CY里的數據發送到sda數據線上
  77.   delay(); //可以延時
  78.   scl = 1; //在scl為高電平時,不允許sda上的數據變化,使數據穩定
  79.   delay();
  80.   scl = 0;//允許sda數據線的數據變化,等待下一個數據的傳輸
  81.   delay();
  82. }
  83. //wait ack:發送完一個字節數據后要主機要等待從機的應答,第九位
  84. scl = 0;//允許sda變化
  85. delay();
  86. sda = 1;//wait:ack,sda拉高等待應答,當sda=0時,表示從機的應答
  87. delay();
  88. }

  89. //read: byte
  90. uchar read_byte() //讀一個字節數據
  91. {
  92. uchar i, j, k;
  93. scl = 0; //讀之前先允許sda變化
  94. delay(); //等待數據
  95. for(i = 0; i < 8; i++)
  96. {
  97.   scl = 1; //不允許sda變化
  98.   delay(); //使sda數據穩定后開始讀數據
  99.   j = sda; //讀出sda上的數據
  100.   k = (k << 1)| j; //將數據通過|運算存入k中
  101.   scl = 0;//允許sda變化等待下一位數據的到來
  102.   delay();
  103. }
  104. //delay();//可不用延時
  105. return k;//返回讀出的數據
  106. }

  107. //write:at24c02  在at24c02中的指定地址寫入數據
  108. void write_at24c02(uchar address, uchar date)
  109. {
  110. start(); //啟動i2c
  111. send_byte(write_c02);//寫入期間地址和寫操作
  112. ack(); //從機應答0
  113. send_byte(address); //寫入寫數據的單元地址
  114. ack(); //ack0
  115. send_byte(date); //在指定地址中寫入數據
  116. ack(); //從機應答0
  117. stop();    //停止i2c
  118. }

  119. //read: at24c02   在at24c02的指定地址中讀出寫入的數據
  120. uchar read_at24c02(address)
  121. {
  122. uchar dat;//用來存儲讀出的數據
  123. start(); //啟動i2c
  124. send_byte(write_c02); //寫入at24c02器件地址和寫操作
  125. ack(); //從機應答0
  126. send_byte(address); //寫入要讀取AT24C02的數據的單元地址
  127. ack(); //從機應答0
  128. start();  //再次啟動i2c
  129. send_byte(read_c02); //寫入AT24C02器件地址和讀操作
  130. ack();//從機應答‘0’
  131. dat = read_byte();//讀出指定地址中的數據
  132. nack(); //主機發出非應答‘1’
  133. stop();  //停止i2c
  134. return dat;    //返回讀出的數據
  135. }

  136. //main:
  137. void main()
  138. {
  139. uchar i;
  140. i2c_init();
  141. start();
  142. while(1)
  143. {
  144.   for(i = 0x00; i < 0xff; i++)
  145.   {
  146.    write_at24c02(10, i);
  147.    delayms(10);//需等待十毫秒
  148.    P1 = read_at24c02(10);//1010 1010
  149.    delayms(2000);
  150.   }
  151. }
  152. }
復制代碼


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av国产精品 | 中文字幕第十一页 | 区一区二区三在线观看 | 天天干b| 国产精品久久久久久久久免费 | 在线一区二区三区 | 天天操综合网站 | 91精品国产综合久久久久久丝袜 | 久草在线视频中文 | 国产一区二区欧美 | 久久精品福利视频 | 日韩国产精品一区二区三区 | 二区在线观看 | 亚洲午夜网 | 久久精品亚洲 | 一区二区免费高清视频 | 国产日韩久久 | 日本三级电影免费观看 | 国产精品视频观看 | 三级黄色片在线 | 国产一区二区三区在线观看免费 | 在线一区观看 | 一级久久久久久 | 免费一级毛片 | 欧美jizzhd精品欧美巨大免费 | 国产黄色大片网站 | 日本福利一区 | 91动漫在线观看 | 草草草草视频 | 久久精品一级 | 精品国产一二三区 | 99精品欧美一区二区蜜桃免费 | 天堂一区在线 | 亚洲精品中文在线观看 | 综合久 | 中文字幕日韩三级 | 久久久www成人免费无遮挡大片 | 色婷婷国产精品 | 91麻豆精品国产91久久久更新资源速度超快 | 在线精品一区二区 | 国产日韩欧美二区 |