資源簡介
這是一個水溫水位控制器的程序和仿真,經過幾天的編寫終于完成,希望和大家分享一下

代碼片段和文件信息
#include
#include
sbit?oe=P1^5; ? ?//輸出轉換得到的數據端口
sbit?st=P1^3; ? ?//啟動信號端口
sbit?eoc=P1^4; ?//轉換結束信號端口
sbit?set_jia=P1^6; ?
sbit?set_jian=P1^7; ?
sbit?key_yushe=P1^0; ? ?//設定溫度值的按鍵
sbit?jiare=P0^4; ? ?//加熱
sbit?dianji=P0^5; ???//電機
sbit?dishuiwei=P1^2; ? ?//低水位
sbit?gaoshuiwei=P1^1; ? //高水位
code?unsigned?char?anode_table[]={0xc00xf90xa40xb00x990x920x820xf80x80
??????????????????????????????????0x900x880x830xc60xa10x860x8e};??//共陽數碼管?0-F?-?空?表
unsigned?char?led_geshu; //數碼管顯示的個數
unsigned?char?led_buff[3]; ????//設置數碼管三個緩沖區
unsigned?int?set_value; //溫度設定值
unsigned?char?adc_value; //A/D轉換的值
unsigned?char?key_biaozhi; ???//按鍵按下的狀態
void?delay(unsigned?char?z) ???//延時
{
unsigned?char?xy;
for(x=100;x>1;x--)
for(y=z;y>1;y--);
}
void?value_zhuanhuan(unsigned?int?value) ???//數值轉換
{
unsigned?int?temp1;
if(value>99)
{
led_geshu=3; ??//顯示三個數碼管
}
else
{
if(value>9)
{
led_geshu=2; ?//顯示兩個數碼管
}
else
{
led_geshu=1; ?//顯示一個數碼管
}
}
led_buff[2]=value/100; ?//將轉換的值送入緩沖區2?,顯示百位
temp1=value%100;
led_buff[1]=temp1/10; ?//將轉換的值送入緩沖區1?,顯示十位
temp1=temp1%10;
led_buff[0]=temp1; //將轉換的值送入緩沖區0?,顯示個位
}
void?led_display(void) //數碼管顯示
{
unsigned?char?i;
for(i=0;i {
P2=anode_table[led_buff[i]]; //將馬表中掃到的數值送入P2端口
P0=~(1< delay(1); ?//數碼管位控制P0口
P0|=(1< }
}
void?adc0808(void) //模數轉換
{
st=0; ???//啟動信號
delay(1);
st=1;
????st=0;
while(eoc==0) //轉換結束信號,為0代表正在轉換,1代表轉換結束 ?
{
oe=1; //OE=1,輸出轉換得到的數據;
}
adc_value=P3; ???????//將A/D轉換的數值送入P3口
adc_value=adc_value/2.55; ???//將0-255轉換成0-100
oe=0;
}
void?key(void) ?//鍵盤掃描
{
??if(set_jia==0) ?//設定預設值的++鍵
?{
delay(100);
???? key_biaozhi=1;???//給按鍵一個狀態
????++?set_value; ?//設定值加1
???
if(set_value>=90)
?{
set_value=90; ?//設定的最大值
?}
?}
if(set_jian==0) //設定預設值的--鍵
{
key_biaozhi=1;
--set_value;
if(adc_value<40)
{
set_value=40; ?//設定的最小值
}
}
}
void?main(void) ???//主函數
{
P0=0xff;
set_value=40; ???//設定的初始值
led_geshu=4;
while(1)
{
if(key_yushe==0)
{
????value_zhuanhuan(set_value); ???//設定值的轉換在數碼管上顯示
led_display();
}
else
{
?delay(1000);
?key();
?if(key_biaozhi==1)
?{?
???
???value_zhuanhuan(set_value);
???led_display();
???key_biaozhi=0;
?}
?else
?????{??
??????adc0808();
??????value_zhuanhuan(adc_value); ?//A/D轉換的值在數碼管上顯示
??????led_display();
?????}
}
if(set_value>adc_value) ??//加熱控制
{
jiare=0;
}
if(adc_value>=set_value)
{
jiare=1;
}????
if(dishuiwei==0&gaoshuiwei==0) ??//水位控制
{
dianji=0;
if(dishuiwei==1&gaoshuiwei==1)
{
dianji=1;
}
}
else
{
dianji=1;
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????139495??2003-01-01?12:11??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制仿真.DSN
?????文件????????768??2003-01-01?12:11??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制仿真.PWI
?????文件???????3196??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.c
?????文件???????2661??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.hex
?????文件?????????56??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.lnp
?????文件??????10608??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.M51
?????文件????????248??2009-07-11?12:41??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.plg
?????文件???????2129??2009-07-02?14:17??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.Uv2
????.......??????2125??2009-07-02?11:44??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序_Uv2.Bak
?????文件???????8459??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.LST
?????文件???????7106??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.OBJ
?????文件???????6777??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序
?????文件?????139495??2003-01-01?12:11??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\Last?Loaded?Last?Loaded?水位控制仿真.DBK
?????文件?????139495??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\Last?Loaded?水位控制仿真.DBK
?????文件????????742??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\Last?Loaded?水位控制仿真.PWI
????.......??????1175??2009-07-11?12:39??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序_Opt.Bak
?????文件???????1175??2009-07-11?12:41??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序\水位控制程序.Opt
????.......????135168??2009-07-02?16:47??桌面333333\桌面22222\桌面\桌面\桌面\調理電路Doc1.doc
?????目錄??????????0??2009-07-06?23:25??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序\水位控制程序
?????目錄??????????0??2009-07-02?19:34??桌面333333\桌面22222\桌面\桌面\桌面\水位控制程序
?????目錄??????????0??2009-07-06?22:18??桌面333333\桌面22222\桌面\桌面\桌面
?????目錄??????????0??2009-07-07?14:27??桌面333333\桌面22222\桌面\桌面
?????目錄??????????0??2003-01-01?10:05??桌面333333\桌面22222\桌面
?????目錄??????????0??2003-01-01?11:54??桌面333333\桌面22222
?????目錄??????????0??2009-07-11?12:33??桌面333333
-----------?---------??----------?-----??----
???????????????600878????????????????????25
- 上一篇:yslow-3.1.0-fx
- 下一篇:改進的指數型內聚力模型uel程序
評論
共有 條評論