A customer requires a simple management system for their greenhouse. The system should monitor earth humidity and environment temperature. According to the gathered information, it should take necessary actions, i.e. opening/closing windows, opening/closing water valves.
The system requirements can be summarized as follows.
1. The temperature of the environment is a continuous stream of 8-bit parallel data ranging between [-128, +127] (Use Port 2).
2. The earth humidity is a continuous stream of 7-bit parallel data ranging between 0 – 100 (Use Port 3).
Environment Control Actions
1. PWM controllable DC motors are connected to the windows. The system can directly control these motors with a 10kHz PWM signal by changing its duty cycle. If the duty cycle is less than 50%, the windows start to close. If the duty cycle is greater than 50%, the windows start to open. The status of windows directly affects the environment temperature. If the windows are opened, the environment temperature starts to reduce, and vice versa.
2. An electrically controllable water valve is connected to a punctured hose which is laid down to the surface of the greenhouse. The valve has four steps: closed, 1⁄4 opened, half-opened, 3⁄4 opened, and fully opened. The steps can be controlled with a 2-bits of parallel TTL signal (00 means fully closed, 01 means 1⁄4 opened, ..., 11 means fully opened). Similar to motors, the status of the valve also directly affects the humidity of the earth. If it is fully opened, the earth will humid quickly, and vice versa.
1. The system is always connected to a LCD display (Use Port 1 and first 3 pins of Port 3). LCD display should show the current temperature and humidity real-time (choose 100ms as refresh interval). An example is shown in the following figure.
2. If either the humidity or temperature exceeds the higher/lower limits of the system, the necessary action should be taken until the environment temperature or humidity gets below/above a certain threshold. While this happens, the LCD screen must display the action type for 10 seconds instead of the current environment status. After 10 seconds, restore the previous state of the display.
You have to write the necessary 8051 assembly code to implement the described automated greenhouse functionality. You can assume that the lower limit is 30% for the humidity and the higher limit is 48°C for the environment temperature and the higher limit is 95% for humidity and the lower limit is 23°C for the environment temperature. Your job is to preserve the air and earth conditions in the given ranges.
Your submissions will be tested in Proteus ISIS with a very similar setup as described above. You can make any design decisions or use techniques you want to implement the above program as long as they fit. Usage of interrupts is encouraged. Upload the .asm file and, if possible, upload the .hex file if you think that your program is fully working. DO NOT USE COMPRESSION SOFTWARES.
Comments are extremely important since it is very hard to read assembly. Heavily comment your code. Uncommented codes will not be evaluated if they are not fully working as intended. Therefore, if you want to get partial points, make sure that you write comments on the code heavily. The indentation and code clarity also counts. In addition, try to break your code into several subroutines. This will help you to design your code more properly.
Hello Sir, I am a software engineer and a professional content writer geared up with 8 years of experience under numerous niches. My writing umbrellas seo articles, blogs, academic writing, case studies and much more. Plus
3 freelances font une offre moyenne de 183 $ pour ce travail
Greenhouse Automation System Since 2012, almost from 8 years I am managing academic writing tasks successfully. I am working with my friends from different backgrounds, it means I can manage wide range of projects li Plus
I have read your project description and I am expert on 8051. Since 2000 I am working on Assembly Language to program micro-controller example AT89C52/MCS51/8051. I have built a GSM to PSTN gateway by assembly language Plus