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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

GP2D12紅外測距傳感器 單片機程序及PROTEUS仿真 實測可用

  [復制鏈接]
跳轉到指定樓層
樓主
GP2D12紅外測距傳感器的PROTEUS仿真原理圖如下:





GP2D12紅外測距傳感器的單片機程序:
  1. #include"reg52.h"
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. sbit cs = P3^2;
  6. long int read=0;
  7. sbit wela = P2^7;
  8. sbit dula = P2^6;
  9. sbit lcden=P3^4;
  10. sbit lcdrs=P3^5;

  11. uchar bai,shi,ge,num;

  12. uchar table[] ="123456789";

  13. void delayms(uint z)
  14. {
  15.         uint x,y;
  16.         for(x=z;x>0;x--)
  17.                 for(y=110;y>0;y-- );
  18. }

  19. void write_com(uchar com)
  20. {        
  21.         lcdrs=0;
  22.         P0=com;
  23.         delayms(5);
  24.         lcden=1;
  25.         delayms(5);
  26.         lcden=0;
  27. }

  28. void write_data(uchar date)
  29. {
  30.         lcdrs=1;
  31.         P0=date;
  32.         delayms(5);
  33.         lcden=1;
  34.         delayms(5);
  35.         lcden=0;
  36. }

  37. void init()
  38. {
  39.         dula=0;
  40.         wela=0;
  41.         lcden=0;
  42.         write_com(0x38);
  43.         write_com(0x0c);
  44.         write_com(0x06);
  45.         write_com(0x01);
  46. }
  47. void delay(uint a)           //  a 個1us延時
  48. {
  49.         for(;a > 0;a --)
  50.         _nop_();_nop_();
  51. }

  52. void T0_time() interrupt 1
  53. {
  54.         cs = 0;
  55.         RD = 0;
  56.         read = P1;
  57.         INT0 = 1;
  58. }
  59. uint adc0804()
  60. {
  61. TMOD=0X01;
  62. TH0=(65536-45872)/256;
  63. TL0=(65536-45872)/256;
  64. EA=1;
  65. ET0=1;
  66. TR0=1;

  67.         INT0 = 1;
  68.         cs = 0;
  69.         WR = 0;
  70.         delay(255);
  71.         cs = 1;
  72.         WR = 1;
  73.         delay(200);               
  74.         read = read * 196 /100;
  75.         return read;
  76.         
  77. }

  78. void math(uint x)
  79. {
  80.         bai = x / 100;
  81.         shi = x /10 % 10;
  82.         ge = x % 10;
  83. }/*
  84. void display()
  85. {         
  86.          
  87.         math(adc0804());
  88.         
  89.         dula=1;
  90.         P0 = table[bai+10];
  91.         dula=0;
  92.         P0=0xff;

  93.         wela = 1;
  94.         P0 = 0xfe;
  95.         wela=0;
  96.         delay(7000000);

  97.                
  98.         dula=1;
  99.         P0 = table[shi];
  100.         dula=0;
  101.         P0=0xff;

  102.         wela = 1;
  103.         P0 = 0xfd;
  104.         wela=0;
  105.         delay(7000000);

  106.                
  107.         dula=1;
  108.         P0 = table[ge];
  109.         dula=0;
  110.         P0=0xff;

  111.         wela = 1;
  112.         P0 = 0xfb;
  113.         wela=0;
  114.         delay(7000000);
  115.         
  116. }

  117.    */

  118. void main()
  119. {
  120.     cs=0;
  121.                 init();           


  122.                    while(1)
  123.                 {
  124.                

  125.             math(adc0804());
  126.                

  127.                 write_com(0x80+5);
  128.         
  129.                 write_data(table[bai]);
  130.                 write_data(table[shi]);
  131.                 write_data(table[ge]);
  132.                         delayms(500);
  133.                
  134.                 }
  135.         
  136. }
復制代碼



注意仿真工程只能用Proteus7.5這個版本,其他版本均無法仿真,必須要Proteus7.5才能用,如果你沒有安裝此版本的話就不必下載了
Keil代碼與Proteus7.5仿真下載: GP2D12仿真文件.zip (165.48 KB, 下載次數: 419)

評分

參與人數 1黑幣 +5 收起 理由
zzwk123456 + 5 很給力!

查看全部評分

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

使用道具 舉報

來自 2#
ID:262 發表于 2021-12-24 04:42 | 只看該作者
李12117 發表于 2017-5-3 23:02
仿真時說沒找到gp2d12這個元件怎么辦?

樓主說了,這個文件只能用Proteus7.5打開才可以,其他版本都仿真,我測試也是這樣的,其他版本打開 1602都是無顯示,下圖是用Proteus7.5打開的效果

51hei.gif (103.18 KB, 下載次數: 41)

51hei.gif
回復

使用道具 舉報

板凳
ID:196291 發表于 2017-5-3 23:02 | 只看該作者
仿真時說沒找到gp2d12這個元件怎么辦?
回復

使用道具 舉報

地板
ID:223290 發表于 2017-8-22 10:06 | 只看該作者
仿真上LCD1602顯示的167是1.67V,GP2D12顯示的54是54cm嗎?
回復

使用道具 舉報

5#
ID:240017 發表于 2017-10-16 19:40 來自觸屏版 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

6#
ID:196311 發表于 2017-10-19 09:58 | 只看該作者
下載學習,謝謝分享
回復

使用道具 舉報

7#
ID:310742 發表于 2018-4-18 11:31 | 只看該作者
學習了,謝謝分享
回復

使用道具 舉報

8#
ID:269851 發表于 2018-12-17 19:57 | 只看該作者
學習了,謝謝分享
回復

使用道具 舉報

9#
ID:352562 發表于 2019-6-21 22:46 | 只看該作者
學習學習
回復

使用道具 舉報

10#
ID:625195 發表于 2019-10-16 18:32 來自觸屏版 | 只看該作者
紅外測距傳感器與STC89C52怎么鏈接
回復

使用道具 舉報

11#
ID:643554 發表于 2019-11-18 09:18 來自觸屏版 | 只看該作者
怎么進行操作,數碼管燈不亮
回復

使用道具 舉報

12#
ID:987987 發表于 2021-12-9 11:19 | 只看該作者
你好,我下載了你的GP2D12仿真文件,怎么不能仿真啊,是因為沒有lcd的程序文件嗎?
回復

使用道具 舉報

13#
ID:262 發表于 2021-12-24 04:47 | 只看該作者
小叔叔 發表于 2019-11-18 09:18
怎么進行操作,數碼管燈不亮

這個是用LCD1602來顯示的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线观看一区二区 | 亚洲一本| 男人的天堂在线视频 | 特黄视频| 日韩精品免费一区二区在线观看 | 99热免费在线 | 97超碰人人| 亚洲欧美激情精品一区二区 | 中文字幕第十五页 | 欧美激情 亚洲 | 欧美性猛交一区二区三区精品 | 综合精品 | 国产亚洲精品久久久久久牛牛 | 欧美激情99 | 国产剧情一区二区三区 | 精品久久一区 | 日日操夜夜摸 | 玖玖在线免费视频 | 求毛片| 一级视频在线免费观看 | 欧美高清hd | 日韩中文字幕网 | 在线日韩视频 | 337p日本欧洲亚洲大胆 | 国产三级| 国产成人高清 | 国产成人av电影 | 亚洲国产一区视频 | 成人日韩 | 国产视频第一页 | 中文字幕一区二区三区四区五区 | 夜夜骑综合 | 中国一级特黄真人毛片 | 九九热在线免费视频 | 亚洲精品久久久久久久久久久久久 | 国产精品视频网 | 性国产丰满麻豆videosex | 日皮视频免费 | 干干干操操操 | 午夜电影福利 | 国产一区在线免费观看视频 |