====== Exercises ====== The goal is to write a program which is able to perform tasks described below. ===== Warm up exercise ===== * It counts numbers 1...9 and then back 9...1 on the 7-segment indicator. The period of the counting is 1 second. ===== For beginner ===== - Present numbers in hexadecimal system randomly on the 7-segment display. The frequency is 1 Hz. - Light in circular sequence 6 outside segments on the 7-segment indicator with the period of 500 ms. - Make a LCD program which shows the code and corresponding symbol. Use codes from 0-255. Every code symbol pair is kept on screen 1 second. - Make a program where you can move "X" symbol around the screen. Use button S1 to move left, button S3 to move right and button S2 to change the row. - Display 10 rows of text on the graphic display which can be scrolled up and down using the buttons S1 and S2. - Make user interface using three buttons for inserting text. For example, one button chooses the sign, second verifies the sign and finally the third verifies the text. The maximum length of the text is 10 signs and the text must be turned backwards and displayed on the second row. You may use just Latin alphabet. LCD by own choice. ===== For advanced ===== - Display Greek letters on the graphic LCD. Display the following rows: “Resistance Ω”, “∑R=∑πR²”, “π=3.141592”. Use source code of the HomeLab's library (from the website). - Write a converter for converting decimal numbers to binary code. Use buttons S3-S1 for inserting decimal numbers (S3- hundredths, S2 – tenths, S1 – ones) in 10 seconds. For example, pressing button S3 4 times signifies number 400. Present the sign for starting the insertion and the result in binary code on a random LCD. - Write a function which displays a rectangle on the graphic LCD when the width, length and the coordinates of the top left corner are given. The width of the line is 1 pixel. Check if the rectangle fits inside the screen. It is advised to study the library of the HomeLab. - Write a simple worm game on the graphic LCD. The width of the worm is 1 pixel and the length is 5 pixels. The worm can be made to turn either left or right using buttons. The worm must be able to avoid collision with the border of the screen (turning before). Bonus points are for ability of picking up the eggs and making the worm to grow. The simplest solution is to make the worm out of the letter “O”. - Write a program for displaying different weather conditions on the graphic LCD. Sunny weather - icon of the sun, rainy weather – a cloud with rain, cloudy weather – just a cloud, snow – snowflake. The size of the icons may vary, main point is that the icons are clearly distinguishable. A possibility to change the icons by pressing a button must be present. ===== Questions ===== - How many pins uses the 7-segment number-indicator (with point segment), if it is connected directly to the controller? How many pins would be needed if if were controlled through the driver (//driver// - A6275)? - What determines the brightness of the 7-segment number-indicator? How can it be adjusted if the number-indicator is controlled a)directly b)through the driver (//driver// - A6275)? - If the 7-segment number indicator is connected directly to the port A of the controller, so that the segment A is PA0, B is PA1 ... and DP is PA7, then which are the values of the PORTA register with numbers 0...9? - What is the difference between 4-bit and 8-bit alphabetic LCD controllers? - Through which pins and how is the background light of the alphanumerical LCD regulated? - Which I/O protocol uses graphic LCD? Explain the meaning of the I/O pins? - How can the numbers in decimal system be converted to binary system (to text) and vice versa? - Draw the consisting layers of LCD using //twisted nematic// technology. - How are the letters formed on a graphical LCD? - How is monochrome (black and white)LCD different from color LCD?