Programming the Intel MCS-48 Microcontrollers

The Intel series of MCS-48 family of microcontrollers, commonly known as the 8048 series were one of the most prominent microcontrollers 35 years back. All they feature is 64 bytes of RAM, and access to 4096 bytes of external program memory. The first thing was to make sure that an EEPROM was loaded with the program; however they supported the D27256 series of eeprom instead of D2758 series. To solve the problem upper addressable bits were tied to ground and the solution worked. The program was written in assembly with Windows 7 as the developing platform since the programming tools are running on the Windows platform. Early Intel processors combine the address and data bits onto the same lines and use two signals: ALE (Address Latch Enable) and PSEN (Program Store Enable) to signal what state the bus is in. This was done to save costs and keep pin count down. Unfortunately this complicates the connection to an external PROM. To solve the problem Andrew Rossignol used an external latch to store the address lines after the bus returned to… Continue reading

Interfacing multiple LCDs using two wire interface

LCDs using two wire interface

First thing that comes to the head is why use multiple small LCDs instead of on bigger. But you never know what situation may occur. For this purpose Jesus Echavarria have designed a special board – I2C I/O expander based on MCP23017. It is capable of expanding I2C to 16 I/Os. So he has plenty of these, so why not to try driving 8 LCD using single I2C interface. As driving MCU he uses AT89C51RE2 microcontroller board. Each expander board has its own I2C address by using three jumpers (total 8 possible slaves). The other is left for MCU software to talk to each slave and send LCD commands. I2C interface is more short distance communication interface, so if you wish to connect remote LCDs you may look for different solutions like RS485, CAN etc.   Continue reading

AT89C51RE2 based development board

AT89C51RE2 based development board

Jesus Echavarriahave built pretty handy development board based on Atmel AT89C51RE2 microcontroller. This is a small board that packs few features that enable fast prototyping. First of all it is powered at 3.3V using low dropout regulator. So it can be powered from 5V USB port. Microcontroller is 8051 architecture with 128KB of Flash and 8KB of RAM. Development board carries TUSB3410 chip from Texas Instruments, which converts MCU serial interface to USB. It can be used on PC as virtual COM. There are also couple switches, buttons, LEDs and buzzer. They can speed up prototyping significantly. The list continues with External I2C bus which his isolated using ADUM1250. It also works as voltage level convertor from 3 to 5V. The nthere is a standard 1-wire temperature sensor DS18B20. To internal I2C interface there are RTC, EEPROM and ADC connected. As you can see it is quite powerful collection to do some serious projects. Continue reading

Proportional liquid supply controller

liquid supply system

Sammer has noticed about his latest project called liquid supply system. You can see a good example of such device when filling petroleum. It pours exact amount of it. The solution is pretty simple – it is based on time value rather than debit counter. So before usage, it needs a reference value which is taken by measuring 100% value. This is done by running pump as long as desired amount is pumped. Say its one litter than its 100%. Once the value is stored you can pour like 5 litters by setting value of 500% on LCD and starting the pump motor. Once liquid is poured, it stops automatically. This by far not the most accurate way of doing this, but if you get right reference value and pump flow is constant, then it serves pretty good. The most attractive thing here that it is setup is simple – microcontroller, and motor relay. No real measuring is done. Continue reading

Another great temperature controller with LCD

room temperature controller with LCD

In order to maintain comfort in the room you need temperature controller. The best results are achieved with heater and cooler working together. Sameer have put quite simple room temperature controller using AT89S52 microcontroller. These microcontrollers are based on industry-standard 80C51 instruction set. Controller reads temperature from same reliable Ds1820 temperature sensor. While microcontroller doesn’t have internal EEPROM there is an external AT24C02 IC used to store preset values. It is interfaced using I2C communication protocol. Also there is a standard alphanumeric LCD driven in 4-bit mode where temperature and status messages are displayed. Temperature threshold values can be changed using couple push buttons. Unit has two relay switches where one controls heater and another cooler. Depending on current temperature value the relays can be switched differently. For instance is there is too hot in the room, cooler is on and vice versa, if its too cold, then heater is on and cooler is off. Continue reading

Improving water tank pump motor controller

Sameer Guptadesigned a robust water tank filling controller. First circuit is based on simple CMOS logic which detects when water fills the tank using two conductive electrodes. But he wanted to have more control, so he made another version which is based on AT89C2051 microcontroller. Controller does pretty same thing as predecessor, but have more features like blinking LED indicator, sound alarm and of course possibility to add more features. Continue reading