Www.ceibo.com MCS-48 and UPI-41 8048 - 8049 8041 - 8042 Ceibo In-Circuit Emulator Supporting MCS-48 and UPI-41: DS-48 http://www.ceibo.com/eng/products/ds48.shtml. This project uses an Intel 8048 microcontroller to generate a maze and display it on a 240x400 pixel Sharp Memory LCD. The 8048 was released in 1976 as the first microcontroller designed by Intel and one of the first microcontrollers ever (Texas Instruments beat Intel with the TMS1000). The chip I am using has a date code of 1977 and was scavenged from a replacement PCB for a digital typewriter. The total program size is just 117 bytes, and it uses only 9 bytes of the 8048's RAM (out of 64 bytes) Details. The main purpose of this project was to create a submission for the. It turns out that 1kB is way more than I needed for this project, so I made it my goal to make this program as small as I possibly could. Hardware At the heart of the project is an Intel 8048 Microcontroller, which has some limitations compared to today's high end microcontrollers, but that should be expected considering it is 40 years old. It has only 64 bytes of RAM and although its maximum clock speed of 11MHz seems decent, it is divided by 15 internally (I used a 11.0592MHz crystal because I like to live dangerously). Normally, the program for the microcontroller would be stored on the microcontroller's 1kB of ROM, but because it is one-time-programmable, I can't overwrite what is already on it. Instead, I used external EEPROM. The microcontroller will skip the program in the internal ROM and instead access external memory with the help of a 74ls373 latch if the EA pin is pulled high. The maze is displayed on a memory LCD. These types of displays are known for their low power consumption because they do not require the display to constantly be refreshed - not that it matters here with the large amount of power consumed by the microcontroller. For most modern applications of these displays, a frame buffer is used to store image data before writing to the display, but that would require 240*400/8 = 12,000 bytes of RAM. Instead, the program writes to the LCD as the maze is being generated. The LCD needs a square wave signal to invert the polarity a few times every second. Instead of using software to do this, I used a 7555 CMOS timer. Software Software was written in assembly using the. A few tricks were used to minimize code size. The algorithm used to generate the maze is the. This algorithm has some limitations such as having a strong diagonal bias and having straight lines along at least two edges, but it is relatively easy to implement with a small amount of RAM and code space. Random-ish numbers based on the row and column are generated for each grid square in the maze to determine if that square will have an opening downwards to to the right. The formula used is: rr(row + column) ^ row (where rr is the rotate right assembly instruction).
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |