電機蜂鳴器12864顯示溫度和報警proteus仿真原理圖:
0.png (34.6 KB, 下載次數: 62)
下載附件
2017-5-3 21:52 上傳
0.png (25.4 KB, 下載次數: 65)
下載附件
2017-5-3 21:52 上傳
0.png (68.86 KB, 下載次數: 49)
下載附件
2017-5-3 21:51 上傳
單片機源程序:
- #include<reg51.h>
- #include "key.h"
- #include "12864drive.h"
- sbit k1=P1^2; //加
- sbit k2=P1^3; //確認
- sbit k3=P1^5; //鍵
- sbit k4=P1^7; //模擬
- unsigned char flag_add;
- unsigned char flag_sure;
- unsigned char flag_subb;
- unsigned char flag_test;
- static unsigned char sure_num;
- unsigned char flag;
- int re_ge=0; //電阻個位
- int re_shi=0;
- int re_bai=5;
-
- unsigned int re_adds; //個位加 十位加 百位之和
- void delay() //延時函數
- {
- unsigned int i=5000;
- while(i>0)i--;
- }
- void key_sm()//鍵盤檢測函數
- {
- if(k1==0)
- {
-
- delay();
- if(k1==0)
- {
- while(!k1); //松手檢測
- flag_add=1;
- return;
- }
-
- }
- if(k2==0)
- {
-
- delay();
- if(k2==0)
- {
-
- while(!k2);
- flag_sure=1;
- return;
- }
-
- }
- if(k3==0)
- {
-
- delay();
- if(k3==0)
- {
-
- while(!k3);
- flag_subb=1;
- return;
- }
-
- }
- if(k4==0) //模擬按鍵沒有松手檢測
- {
- flag_test=1;
- return;
-
- }
- }
- void keydo() //鍵盤處理函數
- {
- key_sm(); //鍵盤檢測
-
- if(flag_sure==1) //當確認鍵被按下
- {
- sure_num=sure_num+1;
- flag_sure=0; //必須清零不然會一直執行
- }
-
- if(sure_num==0)
- {
- Displayen(1,0,16,re_bai,0); //第一頁 第一排 第二列 顯示電阻的百位 最后的0代表不反顯
- Displayen(1,0,24,re_shi,0);////第一頁 第一排 第三列 顯示電阻的百位 最后的0代表不反顯
- Displayen(1,0,32,re_ge,0);
-
- }else if(sure_num==1) //第一次確認鍵被按下
- {
- Displayen(1,0,16,re_bai,0);
- Displayen(1,0,24,re_shi,0);
- Displayen(1,0,32,re_ge,1); //第一頁 第一排 第三列 顯示電阻的百位 最后的1代表反顯
- flag=1;
-
-
- }else if(sure_num==2) //第二次確認鍵被按下
- {
- Displayen(1,0,16,re_bai,0);
- Displayen(1,0,24,re_shi,1);
- Displayen(1,0,32,re_ge,0);
- flag=2;
-
- }else if(sure_num==3)
- {
- Displayen(1,0,16,re_bai,1);
- Displayen(1,0,24,re_shi,0);
- Displayen(1,0,32,re_ge,0);
- flag=3;
-
- }else if(sure_num==4) //第四次確認鍵被按下
- {
- sure_num=0;
- flag=4;
-
- }
-
- if( flag==1) //第一次確認鍵被按下
- {
-
- if((flag_add==1)&&(flag==1)) //如果按下的的是加
- {
- flag_add=0;
- re_ge=re_ge+1;
-
- }
-
- if((flag_subb==1)&&(flag==1)) //如果按下的的是減
- {
- flag_subb=0;
- re_ge=re_ge-1;
-
- }
- if(re_ge>9)
- {
- re_ge=0;
- }
- if(re_ge<0)
- {
- re_ge=9;
- }
-
- }
-
- if( flag==2)
- {
-
- if((flag_add==1)&&(flag==2))
- {
- flag_add=0;
- re_shi=re_shi+1;
-
- }
-
- if((flag_subb==1)&&(flag==2))
- {
- flag_subb=0;
- re_shi=re_shi-1;
-
- }
- if(re_shi>9)
- {
- re_shi=0;
- }
- if(re_shi<0)
- {
- re_shi=9;
- }
-
- }
-
- if( flag==3)
- {
-
- if((flag_add==1)&&(flag==3))
- {
- flag_add=0;
- re_bai=re_bai+1;
-
- }
-
- if((flag_subb==1)&&(flag==3))
- {
- flag_subb=0;
- re_bai=re_bai-1;
-
- }
- if(re_bai>9)
- {
- re_bai=0;
- }
- if(re_bai<0)
- {
- re_bai=9;
- }
-
- }
-
-
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
仿真工程文件及源碼51hei提供下載:
總的.rar
(220.72 KB, 下載次數: 72)
2017-5-3 15:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|