»ùÓÚµ¥Æ¬»úµÄÃŽûϵͳÉè¼Æ 15
¸÷Òý½ÅµÄ¹¦ÄÜÈç±í3-2Ëùʾ
±í3-2 LCDÏÔʾÆ÷Òý½Å¹¦Äܱí
¹Ü½ÅÃû³Æ 1 2 3 4 ·ûºÅ VSS VDD V0 RS µçƽ 0V 5.0V ¸ºÑ¹ H/L ¹¦ÄÜÃèÊö ½ÓµØ£¨GND£© µçÔ´µçѹ Òº¾§ÏÔʾÆ÷Çý¶¯µçѹµ÷½Ú¶Ë ²¢¿Úģʽ¼Ä´æÆ÷Ñ¡Ôñ H£ºÊý¾Ý£»L£ºÖ¸Áî 5 6 7µ½10 11µ½14 15 R/W E DB0µ½DB3 DB4µ½DB7 PSB H/L H/L H/L H/L H/L ²¢¿Úģʽ H£º¶Á£» L£»Ð´ ²¢¿Ú£º¶Á/дÆðʼ½Å Êý¾Ý×ÜÏßµÍ4룬4λ²¢¿ÚʱÐü¿Õ Êý¾Ý×ÜÏ߸ß4λ H:8/4λÊý¾Ý½Ó¿Úģʽ L:´®ÐнӿÚģʽÓÉÓ²¼þÉèÖÃʱ£¬´Ë½ÅÐü¿Õ 16 17 NC RES H/L H/L Ðü¿Õ ¸´Î»Ðźţ¬Ñ¡ÔñÓ²¼þ¸´Î»Ê±£¬´Ë½ÅÐü¿Õ 18 19 20
VOUT BLA BLK ¸ºÑ¹ 5V 0V Òº¾§ÏÔʾÆ÷Çý¶¯µçѹ ±³¹âÕý ±³¹â¸º »ùÓÚµ¥Æ¬»úµÄÃŽûϵͳÉè¼Æ 16
ϵͳµÄÓ²¼þÔÀíͼÈçͼ3-9Ëùʾ£º
»ùÓÚµ¥Æ¬»úµÄÃŽûϵͳÉè¼Æ 17
ͼ3-9 ϵͳӲ¼þÔÀíͼ
4 Èí¼þÉè¼Æ
±¾ÏµÍ³µÄÈí¼þÉè¼Æ°üÀ¨»ùÓÚATmega16µ¥Æ¬»úµÄÖ÷¿ØÉ豸µÄÁ÷³ÌͼÒÔ¼°Ö÷³ÌÐòµÄ±àд£¬»ùÓÚRFM12ÎÞÏß´«ÊäÄ£¿éµÄͨÐÅÐÒéÒÔ¼°±à³Ì£¬ÓÃVisual BasicÓïÑÔÉè¼Æ¿ª·¢ÈË»ú½çÃæ¡£
4.1 Ö÷¿ØÉ豸µÄÈí¼þÉè¼Æ
ATmega16µ¥Æ¬»úµÄ¹¤×÷Á÷³ÌÊǵ±Ã»Óп¨Æ¬½øÈë¶Á¿¨ÇøÊ±£¬ÐźÅָʾµÆÂ̵Ƴ£ÁÁ£¬±íʾÃŽûϵͳ´¦ÓÚ´ý»ú״̬£¬LCDÏÔʾµ±Ç°Ê±¼äÒÔ¼°»¶Ó¹ÛÁÙ¡£µ±¶Á¿¨Æ÷¸ÐÓ¦µ½Óп¨½øÈë¶Á¿¨Çøºó»á°Ñ¶ÁÈ¡µÄÏàÓ¦µÄÊý¾Ýͨ¹ý´®¿Ú·¢Ë͸øµ¥Æ¬»ú£¬µ¥Æ¬»úÕýÈ·µÄ¶Áµ½Êý¾ÝÒÔºó¾Í»áͨ¹ýÎÞÏßÄ£¿é·¢Ë͵½PC»ú£¬PC»ú°ÑÕâ¸öÊý¾ÝºÍÊý¾Ý¿âÖеĺϷ¨ÐÅÏ¢±È¶Ô£¬×ö³öÅжϺ󷵻ØÒ»¸ö½á¹û¸øµ¥Æ¬»ú¡£Èç¹û¸ÃÊý¾ÝÊǺϷ¨µÄ£¬µ¥Æ¬»úÖ´ÐÐÒ»¸ö¿ªËøÃüÁ²¢ÇÒͨ¹ýLCDÏÔʾ¡° Çë½ø¡±¡£Èç¹ûÊý¾ÝÊÇ·Ç·¨µÄ£¬·äÃùÆ÷±¨¾¯£¬¾¯¸æÐÅºÅµÆºìµÆÉÁ˸£¬LCDÏÔʾ ¡°¶Ô²»Æð¡±¡£
×ÛÉÏATmega16µ¥Æ¬»úµÄ³ÌÐò°üÀ¨´®¿ÚÖжÏ×Ó³ÌÐò£¬ÎÞÏß´«Êä×Ó³ÌÐò£¬¼°LCDÏÔʾ
³ÌÐò¡£Í¼4-1Ϊ³ÌÐòµÄÖ÷Á÷³Ìͼ¡£ ¿ªÊ¼ ϵͳ³õʼ»¯ ¶ÁȡÎûºÅ ¼à¿ØÃŽûÐźŠN Óп¨½øÈë¸ÐÓ¦Çø£¿ ÃŽû״̬Òì³££¿ Y ±¨¾¯ N Y ¿¨ºÅºÏ·¨£¿ Y »ùÓÚµ¥Æ¬»úµÄÃŽûϵͳÉè¼Æ 18
ͼ4-1 Ö÷Á÷³Ìͼ
¶Á¿¨ºÅ 4.1.1 µ¥Æ¬»ú³õʼ»¯ÉèÖà #include
void Decode_numeral(uc figure); void Lcd_Wcmd(uc cmd); void Lcd_Wdat(uc data);
//////////////////////////////////////////////////////// //¶¨ÒåI/OÊä³ö¶Ë¿Ú #define RST 4 #define RST_H() PORTB |= (1 << RST) #define RST_L() PORTB &= ~(1 << RST) #define RS 5 #define RS_DATA() PORTB |= (1 << RS)
#define RS_INSTRUCTION() PORTB &= ~(1 << RS) #define RW 6 #define RW_READ() PORTB |= (1 << RW) #define RW_WRITE() PORTB &= ~(1 << RW) #define EN 7 #define EN_H() PORTB |= (1 << EN) #define EN_L() PORTB &= ~(1 << EN) #define M_DIR 6 //¶¨ÒåÈ«¾Ö±äÁ¿
uc numeral_hour_counter=20; uc numeral_second_counter=00; uc numeral_minute_counter=01; uc BCD_code[6];