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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4294|回復(fù): 2
收起左側(cè)

51單片機(jī)火災(zāi)報(bào)警Proteus仿真程序 adc0808+1602顯示

[復(fù)制鏈接]
ID:582615 發(fā)表于 2020-1-16 10:19 | 顯示全部樓層 |閱讀模式
用滑動(dòng)變阻代替煙霧、溫度傳感器。采有adc0808雙通道,通過(guò)at89c52,lcd1602顯示。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
7]M6SZZ}5@V1@EAOQXTSG9M.png

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

  1. #include "reg52.h"
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define yushe_wendu 54
  6. #define yushe_yanwu 23

  7. uchar code Init1[]="SET:000  NOW:000";
  8. uchar code Init2[]="SEY:000  NOW:000";
  9. uchar code num[]="0123456789";
  10. uchar temp;
  11. unsigned char CHANNEL; //AD channel variable

  12. sbit ST_ALE=P3^0;   //START and ALE both connect to P3.0
  13. sbit EOC=P3^1;   //EOC connect to P3.1      
  14. sbit OE=P3^2;    //OE conect to P3.2
  15. sbit CLK=P3^3;
  16. sbit lcdrs=P2^4;
  17. sbit lcdrw=P2^5;
  18. sbit lcden=P2^6;
  19. sbit beep=P3^4;
  20. sbit led=P3^5;

  21. void delay(uint x)
  22. {
  23.         uint i;
  24.         for(;x>0;x--)
  25.                 for(i=5;i>0;i--);       
  26. }

  27. void write_com(uchar com )
  28. {
  29.         lcden = 0;
  30.         lcdrs = 0;//表示命令選擇
  31.         P1 = com;
  32.         delay(5);
  33.         lcden=1;
  34.         delay(5);
  35.         lcden=0;
  36.                
  37. }

  38. void write_data(uchar date)
  39. {
  40.         lcden = 0;
  41.         lcdrs = 1;//n.1 write into the data;
  42.         P1 = date;
  43.         delay(5);
  44.         lcden=1;
  45.         delay(5);
  46.         lcden=0;       
  47. }

  48. //1602初始化
  49. void Init1602()
  50. {
  51.   uchar i=0;
  52.   write_com(0x38);//屏幕初始化
  53.   write_com(0x0c);//打開顯示 無(wú)光標(biāo) 無(wú)光標(biāo)閃爍
  54.   write_com(0x06);//當(dāng)讀或?qū)懸粋(gè)字符是指針后一一位
  55.   write_com(0x80);//設(shè)置位置
  56.   
  57. for(i=0;i<4;i++)
  58.   {
  59.                 write_data(Init1[i]);          //顯示數(shù)組1的數(shù)據(jù)
  60.   }
  61.         write_com(0x80+9);
  62. for(i=9;i<13;i++)
  63.   {
  64.                 write_data(Init1[i]);          //顯示數(shù)組1的數(shù)據(jù)
  65.   }       
  66.   write_com(0x80+0x40);//設(shè)置位置
  67. for(i=0;i<4;i++)
  68.   {
  69.                 write_data(Init2[i]);          //顯示數(shù)組2的數(shù)據(jù)
  70.   }
  71.         write_com(0x80+0x40+9);
  72. for(i=9;i<13;i++)
  73.   {
  74.                 write_data(Init2[i]);          //顯示數(shù)組2的數(shù)據(jù)
  75.   }
  76. }

  77. void display(uchar channel)

  78. {

  79. unsigned long temp;
  80. unsigned int k=0,i=0;

  81. temp=P0;    //the temporary variable

  82.         if(channel==0)
  83.         {
  84.         write_com(0x80+4);                    //設(shè)置煙霧
  85.         write_data(0x30+yushe_wendu/100);
  86.         write_data(0x30+yushe_wendu%100/10);
  87.         write_data(0x30+yushe_wendu%10);

  88.         write_com(0x80+13);               //時(shí)時(shí)煙霧
  89.         write_data(0x30+temp/100);
  90.         write_data(0x30+temp%100/10);
  91.         write_data(0x30+temp%10);       
  92.         }
  93.         if(channel==1)
  94.         {
  95.   write_com(0x80+0x40+4);           //設(shè)置煙霧
  96.         write_data(0x30+yushe_yanwu/100);
  97.         write_data(0x30+yushe_yanwu%100/10);
  98.         write_data(0x30+yushe_yanwu%10);

  99.         write_com(0x80+0x40+13);           //時(shí)時(shí)煙霧
  100.         write_data(0x30+temp/100);
  101.         write_data(0x30+temp%100/10);
  102.         write_data(0x30+temp%10);
  103.         }
  104. }  

  105. void main()
  106. {
  107. CHANNEL=0xF8;  //AD channel 0
  108. ST_ALE=0;   //START and ALE default
  109. OE=0;    //OE default
  110. TMOD=0x02;  //T0 operate in mode 2  
  111. TH0=0xFF;   //auto load value
  112. TL0=0xFF;   //default value
  113. EA=1;    //all interrupt enable
  114. ET0=1;    //T0 interrupt enable
  115. TR0=1;    //T0 run
  116. beep=0;
  117. led=0;
  118. while(1)
  119. {  
  120.   P2=0x07&CHANNEL;  //choose AD channel
  121.   ST_ALE=1;  //lock the AD channel address
  122.   ST_ALE=0;  //AD run
  123.   Init1602();
  124.   while(EOC==0); //wait until AD over
  125.   OE=1;   //enable to transmit AD data
  126.   if(CHANNEL==0xF8)
  127.   {
  128.   display(0);   //view the AD result and diaplay LED  
  129.   }
  130.   if(CHANNEL==0xF9)
  131.   {
  132.   display(1);   //view the AD result and diaplay LED  
  133.   }
  134.   delay(50);     //delay to prepare for next AD channel  
  135.   OE=0;          //forbit to transmit AD data  
  136.   if(CHANNEL==0xF9)
  137.   CHANNEL=0xF7;             //AD channel loop
  138.   CHANNEL++;                //next AD channel   
  139. }  
  140. }

  141. void T1_TIME() interrupt 1 using 0
  142. {
  143. CLK=~CLK;   //CLK 500 kHz
  144. }
復(fù)制代碼

所有資料51hei提供下載:
火災(zāi)報(bào)警兩路.zip (303.19 KB, 下載次數(shù): 86)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:582615 發(fā)表于 2020-1-16 10:21 | 顯示全部樓層
本帖最后由 cbay 于 2020-1-16 10:23 編輯

壓縮包里包括仿真和keil
回復(fù)

使用道具 舉報(bào)

ID:687379 發(fā)表于 2020-1-19 17:21 | 顯示全部樓層
cbay 發(fā)表于 2020-1-16 10:21
壓縮包里包括仿真和keil

可以加一下你請(qǐng)教一下這個(gè)問(wèn)題嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久久精品日日躁夜夜躁国产 | 国产一区二区精品自拍 | av综合站| 日韩欧美中文字幕在线观看 | 成人精品久久 | 粉嫩一区二区三区性色av | 欧美激情亚洲激情 | 免费av观看| 午夜影院操 | 亚洲精品视频网站在线观看 | 综合久久99 | 国产欧美一区二区三区国产幕精品 | 国产精品美女www爽爽爽视频 | 欧美日韩精品中文字幕 | 亚洲人的av | 福利视频二区 | 成人午夜在线 | 国产精品成人一区二区三区 | 日韩成人在线观看 | 午夜视频在线观看网址 | 国产精品成人一区 | 亚洲精品二区 | 精品久久久久久18免费网站 | 日韩中文字幕在线视频 | 亚洲精品一区二区 | 欧美成人视屏 | 亚洲欧美日韩在线 | 欧产日产国产精品v | 国产一区二区在线看 | 色免费看| 天天澡天天狠天天天做 | av黄在线观看 | 中文日韩在线 | 天堂av影院| 久草在线高清 | 亚洲视频中文字幕 | 精品久久一区 | 狠狠色综合久久丁香婷婷 | 国产成人精品av | 国产成人精品综合 | 超碰地址 |