|
- #include <reg52.h>
- #include <stdio.h>
- #include "lcd1602.h"
- //ADC0809
- sbit CLK=P3^4;
- sbit ST=P3^5;
- sbit EOC=P3^6;
- sbit OE=P3^7;
- sbit RELAY = P3^3;
- unsigned int ADCval;
- unsigned char pressure = 50;
- unsigned char mode=0;
- unsigned char status = 0;
- void delay(unsigned long s)
- {
- while(s--);
- }
- void DelayMS(unsigned int ms)
- {
- unsigned char i;
- while(ms--)
- {
- for(i=0;i<120;i++);
- }
- }
- void Timer0_INT() interrupt 1
- {
- TH0=(65536-200)/256;
- TL0=(65536-200)%256;
- CLK=~CLK;
- }
- void main(void)
- {
- RELAY=1;
- lcd_init();
- TMOD=0x01;
- TH0=(65536-200)/256;
- TL0=(65536-200)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- ST=0;
- OE=0;
- ST=1;
- ST=0;
- while(EOC==0);
- OE=1;
- ADCval=P1;
- OE=0;
- LCD_ShowStr(0,0,"Real:");
- LCD_ShowChar(5,0,ADCval/100+'0');
- LCD_ShowChar(6,0,ADCval%100/10 +'0');
- LCD_ShowChar(7,0,ADCval%10 +'0');
- if(ADCval<=pressure){
- RELAY=0;
- }
- else {
- RELAY=1;
- }
- }
- }
復(fù)制代碼 |
|