»ùÓÚµ¥Æ¬»ú¿ØÖƵĿª¹ØµçÔ´Éè¼Æ
¿ª¹ØµçÔ´Ìå»ýС¡¢Ð§Âʸߣ¬±»ÓþΪ¸ßЧ½ÚÄܵçÔ´£¬ÏÖ¼º³ÉΪÎÈѹµçÔ´µÄÖ÷µ¼²úÆ·¡£Ëæ×Å¿ª¹ØµçÔ´ÔÚ¼ÆËã»ú¡¢Í¨ÐÅ¡¢º½¿Õº½Ìì¡¢ÒÇÆ÷ÒÇ±í¼°¼ÒÓõçÆ÷µÈ·½ÃæµÄ¹ã·ºÓ¦ÓÃ, ÈËÃÇ¶ÔÆäÐèÇóÁ¿ÈÕÒæÔö³¤, ²¢ÇÒ¶ÔµçÔ´µÄЧÂÊ¡¢Ìå»ý¡¢ÖØÁ¿¼°¿É¿¿ÐԵȷ½ÃæÌá³öÁ˸ü¸ßµÄÒªÇ󡣿ª¹ØµçÔ´ÒÔÆäЧÂʸߡ¢Ìå»ýС¡¢ÖØÁ¿ÇáµÈÓÅÊÆÔÚºÜ¶à·½ÃæÖð²½È¡´úÁËЧÂʵ͡¢ÓÖ±¿ÓÖÖØµÄÏßÐÔµçÔ´¡£
±¾ÎĽéÉÜÁËÒ»¿î»ùÓÚPWM¼¼ÊõµÄDC-DC¿ª¹ØÎÈѹµçÔ´,ÓÃproteus·ÂÕæ,Êä³öÎÆ²¨Ð¡£¬µçѹÎȶ¨¿É¿¿.
Ò»¡¢Òý ÑÔ
±¾Éè¼ÆÖвÉÓõÄÊÇÂö¿íµ÷ÖÆÐÍ, Pwm¼¼ÊõÊÇÀûÓÃ΢´¦ÀíÆ÷µÄÊý×ÖÊä³öÀ´¶ÔÄ£Äâµç·½øÐпØÖƵÄÒ»Öַdz£ÓÐЧµÄ¼¼Êõ£¬¹ã·ºÓ¦ÓÃÔÚ´Ó²âÁ¿¡¢Í¨Ðŵ½¹¦ÂÊ¿ØÖÆÓë±ä»»µÄÐí¶àÁìÓòÖС£PWMµÄÒ»¸öÓŵãÊÇ´Ó´¦ÀíÆ÷µ½±»¿ØÏµÍ³ÐźŶ¼ÊÇÊý×ÖÐÎʽµÄ£¬ÎÞÐè½øÐÐÊýģת»»¡£ÈÃÐźű£³ÖΪÊý×ÖÐÎʽ¿É½«ÔëÉùÓ°Ïì½µµ½×îС¡£ÔÚÂö¿íµ÷ÖÆÖÐÒòΪƵÂʲ»±ä£¬ËùÒÔÎÞÂÛÊǶԵç·ÖеĴÅÐÔÔª¼þ¼°¾§Ìå¹ÜµÄ²âÊÔºÍÉè¼Æ¶¼ºÜ·½±ã£¬¶øÇÒ¶ÔÉ䯵¸ÉÈŵÄÒÖÖÆÒ²±äµÃ±È½ÏÈÝÒס£ÀûÓõ¥Æ¬»ú¿ÉÒÔʵÏÖ¶Ô¿ª¹ØµçÔ´µÄÖÇÄÜ¿ØÖÆ£¬ÊµÏÖÖÇÄÜ»¯¿ª¹ØµçÔ´µÄÖÆ×÷¡£¸ß¶È¼¯³É¡¢¹¦ÄÜÇ¿´óµÄ¿ª¹ØÐÍÎÈѹµçÔ´´ú±í×Å¿ª¹ØµçÔ´·¢Õ¹µÄÖ÷Á÷·½Ïò£¬Æä¼¼ÊõÒ²ÈÕÇý³ÉÊì¡£
¶þ¡¢×ÜÌåÉè¼Æ
±¾¿ÎÌâµÄÖ÷Ҫ˼ÏëÊÇÀûÓõ¥Æ¬»ú¿ÉÒÔʵÏÖ¶Ô¿ª¹ØµçÔ´µÄÖÇÄÜ¿ØÖÆ£¬ÊµÏÖÖÇÄÜ»¯¿ª¹ØµçÔ´µÄÖÆ×÷¡£Í¨¹ý¼üÅÌÔ¤Öõçѹ£¬¿ØÖƵ¥Æ¬»ú½øÐÐÂö¿íµ÷ÖÆ£¬Ê¹Êä³öµçѹÔÚ´ó·¶Î§Äڿɵ÷¡£Í¨¹ýµ¥Æ¬»úÈí¼þ¿ØÖÆ£¬ÊµÏÖµçÔ´µÄÖÇÄܱ£»¤£¬¿ÉÒÔÉ趨ij¸ö¹æ¶¨µÄµçѹ»òÕßµçÁ÷£¬µ±³¬¹ý¸Ãµçѹ»òÕßµçÁ÷ʱ£¬µ¥Æ¬»ú¹Ø¶Ï¿ª¹Ø¹Ü£¬µçÔ´²»ÔÙ¹¤×÷£¬ÒԱ㱣»¤µçÔ´¡£
Èý¡¢Ó²¼þÉè¼Æ
£¨Ò»£©Ó²¼þ×ÜÌåÉè¼Æ
±¾Éè¼ÆÖÐÄâ²ÉÓÃÂö¿íµ÷ÖÆÐÍ£¬ÏÈͨ¹ýµçѹ¼°¹¦Âʱ任Éè¼Æ³öÒ»¸öDC12V×óÓҵĵçѹԴ,ÔÙ¶Ô12VµÄµçѹԴ,ͨ¹ýÂö¿íµ÷ÖÆ,ʵÏÖ²½½ø0.1V¡¢Êä³öµçÁ÷500 mA¡¢LCDÏÔʾµÄÖ±Á÷µçѹ¡£ÀûÓõ¥Æ¬»ú¿ÉÒÔʵÏÖ¶Ô¿ª¹ØµçÔ´µÄÖÇÄÜ¿ØÖÆ£¬ÊµÏÖÖÇÄÜ»¯¿ª¹ØµçÔ´µÄÖÆ×÷¡£Ó²¼þ×ÜÌå¿òͼÈçͼ3-1Ëùʾ¡£
ͼ3-1Ó²¼þ×ÜÌå¿òͼ
£¨¶þ£©AT89C52µ¥Æ¬»ú¸ÅÊö
1.AT89C52µ¥Æ¬»ú×é³É
ͼ3-2 AT89C52µ¥Æ¬»ú×é³É½á¹¹Í¼
¡¡AT89C51ÊÇÒ»ÖÖ´ø4K×Ö½ÚFLASH´æ´¢Æ÷£¨FPEROM¡ªFlash Programmable and Erasable Read Only Memory£©µÄµÍµçѹ¡¢¸ßÐÔÄÜCMOS 8λ΢´¦ÀíÆ÷£¬Ë׳Ƶ¥Æ¬»ú¡£AT89C2051ÊÇÒ»ÖÖ´ø2K×Ö½ÚÉÁ´æ¿É±à³Ì¿É²Á³ýÖ»¶Á´æ´¢Æ÷µÄµ¥Æ¬»ú¡£µ¥Æ¬»úµÄ¿É²Á³ýÖ»¶Á´æ´¢Æ÷¿ÉÒÔ·´¸´²Á³ý1000´Î¡£¸ÃÆ÷¼þ²ÉÓÃATMEL¸ßÃܶȷÇÒ×ʧ´æ´¢Æ÷ÖÆÔì¼¼ÊõÖÆÔ죬Ó빤ҵ±ê×¼µÄMCS-51Ö¸ÁºÍÊä³ö¹Ü½ÅÏà¼æÈÝ¡£ÓÉÓÚ½«¶à¹¦ÄÜ8λCPUºÍÉÁ˸´æ´¢Æ÷×éºÏÔÚµ¥¸öоƬÖУ¬ATMELµÄAT89C51ÊÇÒ»ÖÖ¸ßЧ΢¿ØÖÆÆ÷£¬AT89C2051ÊÇËüµÄÒ»ÖÖ¾«¼ò°æ±¾¡£AT89C51µ¥Æ¬»úΪºÜ¶àǶÈëʽ¿ØÖÆÏµÍ³ÌṩÁËÒ»ÖÖÁé»îÐÔ¸ßÇÒ¼ÛÁ®µÄ·½°¸¡£
2£®AT89C52µ¥Æ¬»úÒý½Å½á¹¹
(1)89C51ÍⲿÒý½Åͼ£º
;
Òý½Å˵Ã÷£º
£¨1£©µçÔ´Òý½Å
Vcc£¨40½Å£©£ºµäÐÍÖµ£«5V¡£
Vss£¨20½Å£©£º½ÓµÍµçƽ¡£
£¨2£©Íⲿ¾§Õñ
X1¡¢X2·Ö±ðÓë¾§ÌåÁ½¶ËÏàÁ¬½Ó¡£µ±²ÉÓÃÍⲿʱÖÓÐźÅʱ£¬X2½ÓÕñµ´Ðźţ¬X1½ÓµØ¡£
£¨3£©ÊäÈëÊä³ö¿ÚÒý½Å£º
P0¿Ú£ºI/OË«Ïò¿Ú¡£×÷ÊäÈë¿Úʱ£¬Ó¦ÏÈÈí¼þÖá° 1¡±¡£
P1¿Ú£ºI/OË«Ïò¿Ú¡£×÷ÊäÈë¿Úʱ£¬Ó¦ÏÈÈí¼þÖá° 1¡±¡£
P2¿Ú£ºI/OË«Ïò¿Ú¡£×÷ÊäÈë¿Úʱ£¬Ó¦ÏÈÈí¼þÖá° 1¡±¡£
P3¿Ú£ºI/OË«Ïò¿Ú¡£×÷ÊäÈë¿Úʱ£¬Ó¦ÏÈÈí¼þÖá° 1¡±¡£
£¨4£©¿ØÖÆÒý½Å
RST£¨9Òý½Å£©£º¸´Î»ÊäÈë¡£µ±ÊäÈëÁ¬ÐøÁ½¸ö»úÆ÷ÖÜÆÚÒÔÉÏ¸ßµçÆ½Ê±ÎªÓÐЧ£¬ÓÃÀ´Íê³Éµ¥Æ¬»úµÄ¸´Î»³õʼ»¯²Ù×÷¡¢¼ÆÊ±Íê³Éºó£¬RSTÒý½ÅÊä³ö96¸ö¾§ÕñÖÜÆÚµÄ¸ßµçÆ½¡£DISROTĬÈÏ״̬Ï£¬¸´Î»¸ßµçƽÓÐЧ¡£
¢Ù ALE/PROG£¨30Òý½Å£©£ºÒ»°ãÇé¿öÏ£¬ALEÒÔ¾§ÕñÁù·ÖÖ®Ò»µÄ¹Ì¶¨ÆµÂÊÊä³öÂö³å£¬¿ÉÓÃÀ´×÷ΪÍⲿ¶¨Ê±Æ÷»òʱÖÓʹÓá£
¢Ú PSEN£¨29Òý½Å£©£ºÍⲿ³ÌÐò´æ´¢ÐźÅʱÍⲿ³ÌÐò´æ´¢Æ÷ѡͨÐźš£µ±AT89C51RC´ÓÍⲿ³ÌÐò´æ´¢Æ÷Ö´ÐÐÍⲿ´úÂëʱ£¬PSENÔÚÿ¸ö»úÆ÷ÖÜÆÚ±»¼¤»îÁ½´Î¡£
¢Û EA/VPP£¨31Òý½Å£©£º·ÃÎÊÍⲿ³ÌÐò´æ´¢Æ÷¿ØÖÆÐźţ¬ÎªÊ¹ÄÜ´Ó0000Hµ½FFFFHµÄÍⲿ³ÌÐò´æ´¢Æ÷¶ÁȡָÁ±ØÐë½ÓEND¡£
¢Ü XTAL1£¨19Òý½Å£©£ºÕñµ´Æ÷·´Ïà·Å´óÆ÷ºÍÄÚ²¿Ê±ÖÓ·¢Éúµç·µÄÊäÈë¶Ë¡£
¢Ý XTAL2£¨18Òý½Å£©£ºÕñµ´Æ÷·´Ïà·Å´óÆ÷µÄÊäÈë¶Ë¡£
P1¿Ú×÷ΪLCDÒº¾§ÆÁµÄÊý¾Ý¿Ú£¬²ÉÓò¢¿ÚÊý¾Ý´«Êäģʽ£¬P2¿ÚÖеÄP2.0¡¢P2.1¡¢P2.2¡¢×÷Ϊ¿ØÖÆÐźÅÊä³ö¿Ú£¬·Ö±ð½ÓRS¡¢R/W¡¢E¿ØÖƶˣ¬P2.3¡¢P2.4·Ö±ð½Óʪζȴ«¸ÐÆ÷µÄSCKºÍDATA£¬P2.5.¡¢P2.6¡¢P2.7½Ó°´¼üµç·£¬P1¿ÚµÄP1.0¡¢P1.1¡¢P1.2·Ö±ð½ÓADC0831µÄ¿ØÖƶˣ¬P1.4½Ó±¨¾¯µÄ·äÃùÆ÷¡£
3£®AT89C52µ¥Æ¬»úµÄ×îСϵͳ
ͼ3-4 AT89C52µ¥Æ¬»ú×é³É½á¹¹Í¼
£¨1£©¸´Î»µç·:
ÓɵçÈÝ´®Áªµç×è¹¹³É£¬ÓÉͼ²¢½áºÏ"µçÈݵçѹ²»ÄÜÍ»±ä"µÄÐÔÖÊ£¬¿ÉÒÔÖªµÀ£¬µ±ÏµÍ³Ò»Éϵ磬RST½Å½«»á³öÏÖ¸ßµçÆ½£¬²¢ÇÒ£¬Õâ¸ö¸ßµçƽ³ÖÐøµÄʱ¼äÓɵç·µÄRCÖµÀ´¾ö¶¨¡£µäÐ͵Ä51µ¥Æ¬»úµ±RST½ÅµÄ¸ßµçƽ³ÖÐøÁ½¸ö»úÆ÷ÖÜÆÚÒÔÉϾͽ«¸´Î»£¬ËùÒÔ£¬Êʵ±×éºÏRCµÄȡֵ¾Í¿ÉÒÔ±£Ö¤¿É¿¿µÄ¸´Î»¡£Ò»°ã½Ì¿ÆÊéÍÆ¼öC È¡10u£¬RÈ¡10K¡£ÔÔò¾ÍÊÇÒªÈÃRC×éºÏ¿ÉÒÔÔÚRST½ÅÉϲúÉú²»ÉÙÓÚ2¸ö»úÖÜÆÚµÄ¸ßµçÆ½¡£ÖÁÓÚÈçºÎ¾ßÌ嶨Á¿¼ÆË㣬¿ÉÒԲο¼µç··ÖÎöÏà¹ØÊé¼®¡£
£¨2£© ¾§Õñµç·£ºµäÐ͵ľ§ÕñÈ¡11.0592MHz(ÒòΪ¿ÉÒÔ׼ȷµØµÃµ½9600²¨ÌØÂʺÍ19200²¨ÌØÂÊ,ÓÃÓÚÓд®¿ÚͨѶµÄ³¡ºÏ)/12MHz(²úÉú¾«È·µÄuS¼¶Ê±Ðª,·½±ã¶¨Ê±²Ù×÷)£¬ÔÚ±¾µç·ÖУ¬È¡12M¡£
|
£¨Èý£©¿ª¹ØµçԴϵͳӲ¼þÉè¼Æ
1.
¿ª¹ØµçÔ´µç·Éè¼Æ
ͼ3-3¿ª¹ØµçÔ´µç·
Èçͼ3-3¿É¿´³ö,DC50VÊäÈë,¾Q1,Q2,Q3,½øÐн»Á÷±ä»»£¬ÊäÈë¸ø´¢ÄÜÐÔÔª¼þL1,µ±Êä³öµçѹÓв¨¶¯Ê±,µ÷Õû¹ÜQ4µ÷ÕûÊäÈëµçѹ£¬·´¹ýÀ´ÒÖÖÆÊä³öµçѹµÄ²¨¶¯¡£
2. µçѹ·´À¡µç·
µçѹ·´À¡²¿·Ö£¬µ±µçѹ´ïµ½12Vʱ£¬µçÁ÷Á÷¾ÎÈѹ¶þ¼«¹ÜD4¡¢Èý¼«¹ÜQ2 B£¬E¼«¡¢µç×èR8 ʹQ2µ¼Í¨£¬Q2µ¼Í¨½«Ê¹Èý¼«¹Ü13003Ìáǰ½øÈë¹Ø¶ÏÇø£¬´Ó¶øÊ¹Êä³öµçѹÎȶ¨ÔÚ12V×óÓÒ¡£
3. ÏÞÁ÷µç·
µ±R11ÉÏÁ÷¾µÄµçÁ÷µ½´ïÒ»¶¨Öµ£¬ÔÚR11ÉϽ«²úÉúѹ½µ£¬µ±Ñ¹½µ³¬¹ý0.7V£¬Èý¼«¹ÜQ3±¥ºÍµ¼Í¨£®Q3¼¯µç¼«µçѹΪ0£¬×Ô¼¤Ê½Õñµ´»ØÂ·ÖÕÖ¹£¬Êä³öµçÁ÷±äС£¬µ±R11ÉϵĵçÁ÷Сµ½×ã¹»µÄÖµ£¬R11Á½¶ËµÄµçѹµÍÓÚ0.7V£¬Q3ÓÖ½ØÖ¹£¬×Ô¼¤Õñµ´»ØÂ·ÓÖ¼ÌÐøÕñµ´¡£
ͼ
Èý¡¢Èí¼þÉè¼Æ
£¨Ò»£©×ܵÄÈí¼þÉè¼ÆË¼Ïë
ϵͳµÄÈí¼þÉè¼Æ²ÉÓÃCÓïÑÔ£¬¶Ôµ¥Æ¬»ú½øÐбà³ÌʵÏÖ¸÷ÏÄÜ¡£
³ÌÐòÊDzÉÓÃkeil c51Èí¼þ±àдµÄ,¿ÉÒÔʹҺ¾§ÏÔʾÆÁ¶ÔÌØ¶¨Êý×Ö¡¢Ó¢ÎÄ×ÖĸÒÔ¼°ºº×Ö×é³ÉµÄ¾ä×Ó½øÐÐÏÔʾ£¬²¢Í¨¹ý°´¼ü¶ÔÏÔʾÄÚÈÝʵÏÖ¿ØÖÆ¡¢×ª»»µÈ¹¦ÄÜ¡£
Ö÷³ÌÐòÖ÷ÒªÆðµ½Ò»¸öµ¼ÏòºÍ¾ö²ß¹¦ÄÜ£¬¾ö¶¨Òº¾§ÏÔʾÆÁ¸ÃÏÔʾʲôÄÚÈÝ£¬¸ÃÈçºÎÏÔʾ¡£Òº¾§ÏÔʾÆÁ¸÷ÖÖ¹¦ÄܵÄʵÏÖÖ÷Ҫͨ¹ýµ÷ÓþßÌåµÄ×Ó³ÌÐò¡£
£¨¶þ£©¸÷²¿·ÖµÄÈí¼þ¿òͼºÍ³ÌÐò
1.Ö÷³ÌÐòÉè¼Æ
ÎÄ×ÖÃèÊöÏ ÀýÈ磨ͨµçÖ®ºó£¬ÏµÍ³¿ªÊ¼¹¤×÷£¬ÈôÊÇÓмü°´Ï£¬¾Í¸ù¾Ý°´¼ü³ÌÐò½øÐй¤×÷£¬²¢°Ñ½á¹ûÏÔʾµ½LCDÒº¾§ÏÔʾÆÁÉÏ£¬ÈôÊÇûÓа´¼ü£¬¶¨Ê±Ê±¼äÒ»µ½£¬ÆøÌå´«¸Ð£©
2£®Êý¾ÝÏÔʾ×Ó³ÌÐò
3.¼üÅÌɨÃè×Ó³ÌÐò
4.¼üÖµ´¦Àí×Ó³ÌÐòÁ÷³Ìͼ
ËÄ¡¢³ÌÐòÇåµ¥
//*************************************************************************************************
//* *
//* ******************************Í·Îļþ¼°ºê¶¨Òå************************** *
//* *
//*************************************************************************************************
#include<reg52.h>
#include"includes.h"
#define uchar unsigned char
#define uint unsigned int
#define SCANPORT P2
#define TIME1H 80
#define TIME1L 80 //¶¨Ê±Æ÷1Òç³öʱ¼ä//
sbit wr=P3^1;
sbit rd=P3^0;
sbit P27=P2^7;
unsigned long int shuchu=500; //ĬÈϵĿª»úµçѹ//
uint zhuhuandata;
unsigned long int ch=0;
uchar i=0; //°´¼ü±ê¼Ç//
uchar uca_LineScan[3]={0xEF,0xDF,0xBF};
void chuli(); //º¯Êý¶¨Òå//
uchar getkey(); //º¯Êý¶¨Òå//
//*************************************************************************************************
//* *
//* ********************************½«¼üÖµÀÛ¼Ó²¢ËÍÏÔʾ****************************** *
//* *
//*************************************************************************************************
void qiuhe(uchar t)
{
if(i==1)
{
ch=t;
vShowOneChar(6,89,uca[t]);
}
if(i==2)
{
ch=ch*10+t;
vShowOneChar(6,103,uca[t]);
}
if(i==3)
{
ch=ch*10+t;
vShowOneChar(6,111,uca[t]);
}
}
//*************************************************************************************************
//* *
//* ********************************°´¼ü¹¦Äܺ¯Êý****************************** *
//* *
//*************************************************************************************************
void key_chuli(uchar x)
{
uchar t;
switch(x)
{
case 42: t=0;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'0'
case 31: t=1;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'1'
case 32: t=2;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'2'
case 33: t=3;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'3'
case 21: t=4;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'4'
case 22: t=5;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'5'
case 23: t=6;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'6'
case 11: t=7;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'7'
case 12: t=8;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'8'
case 13: t=9;
i++;
qiuhe(t);
if(i==3)
{
vShowOneChin(2,49,uca_que);
vShowOneChin(2,64,uca_ding);
vShowOneChin(4,59,uca_wenhao);
}
break; //'9'
case 41: if(i==3) //'ok'
{
ch=ch*256/512;
shuchu=ch;
ch=0;
TH0=65200;
TL0=65200;
vShowOneChin(2,49,uca_0);
vShowOneChin(2,64,uca_0);
vShowOneChin(4,48,uca_SHU);
vShowOneChin(4,64,uca_CHU);
vShowOneChar(6,88,uca_HEN);
vShowOneChar(6,104,uca_HEN);
vShowOneChar(6,112,uca_HEN);
}
i=0;
break;
}
}
void vTimer0(void) interrupt 1 using 2
{
uchar a,d;
unsigned long int c=0;
uchar data tab[3];
a=(((zhuhuandata&0xf0)>>4)*100/16);
d=((zhuhuandata&0x0f)*100/256);
c=(a+d)*5.12;
tab[0]=c%10;
tab[1]=c/10%10;
tab[2]=c/100%10;
vShowOneChar(2,89,uca[tab[2]]);
vShowOneChar(2,103,uca[tab[1]]);
vShowOneChar(2,111,uca[tab[0]]);
TH0=TIME1H;
TL0=TIME1L;
}
void main(void)
{
SCANPORT=0x8F;
ClearLCD(0x00);
vShowOneChar(2,89,uca[5]);
vShowOneChar(2,96,uca_XIAOSHU);
vShowOneChar(2,103,uca[0]);
vShowOneChar(2,111,uca[0]);
vShowOneChar(2,120,uca_V);
vShowOneChin(0,0,uca_DANG);
vShowOneChin(0,16,uca_QIAN);
vShowOneChin(0,32,uca_GONG);
vShowOneChin(0,48,uca_ZUO);
vShowOneChin(0,64,uca_DIAN);
vShowOneChin(0,80,uca_YA);
vShowOneChin(0,96,uca_MAOHAO);
vShowOneChin(4,0,uca_QING);
vShowOneChin(4,16,uca_SHE);
vShowOneChin(4,32,uca_ZHI);
vShowOneChin(4,48,uca_SHU);
vShowOneChin(4,64,uca_CHU);
vShowOneChin(4,80,uca_DIAN);
vShowOneChin(4,96,uca_YA);
vShowOneChin(4,112,uca_MAOHAO);
vShowOneChar(6,96,uca_XIAOSHU);
vShowOneChar(6,88,uca_HEN);
vShowOneChar(6,104,uca_HEN);
vShowOneChar(6,113,uca_HEN);
vShowOneChar(6,119,uca_V);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<ÍⲿÖжÏ0£¬ÓÃÓÚ¿ªÆô¼üÅÌɨÃè¼°¼üÂë´¦Àí±êÖ¾>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
TMOD=0X01;
TH0=TIME1H;
TL0=TIME1L;
ET0=1; //T/C0¿ªÖжÏ
TR0=1; //¿ª¶¨Ê±Æ÷0ÖжÏ
IT0=1; //ÍâÖжϷ½Ê½£ºÏ½µÑØ¡£
EX0=1; //¿ªÆôÍⲿÖжϡ£
EA=1;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<ÍⲿÖжÏ0£¬ÓÃÓÚ¿ªÆô¼üÅÌɨÃè¼°¼üÂë´¦Àí±êÖ¾>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
while(1)
{
wr=0;
wr=1;
chuli();
if(zhuhuandata<=shuchu)P27=0;
if(zhuhuandata>shuchu)P27=1;
if(zhuhuandata<=shuchu)P27=0;
}
}
void chuli()
{
rd=0;
zhuhuandata=P0;
}
//*************************************************************************************************
//* *
//* ********************************º¯ÊýʵÏÖ****************************** *
//* *
//*************************************************************************************************
unsigned char getkey()
{
uchar ucTemp=0; //ɨÃè״̬ÔÝ´æ¡£
uchar ucRow=0,ucLine=0; //Ðкţ¬Áкš£
for(ucLine=0;ucLine<3;ucLine++) //ÁÐɨÃè
{
SCANPORT=uca_LineScan[ucLine]; //Êä³öɨÃèµçλ¡£
ucTemp=SCANPORT&0x8F; //ÊäÈëɨÃèµç룬²¢ÆÁ±Î¸ß4λ¡£
if(ucTemp!=0x8F)
{ //ÅжϸÃÁÐÊÇ·ñÓа´¼ü°´Ï¡£
switch(ucTemp)
{
case 0x8E: ucRow=10;break; //Èç¹ûÓУ¬ÔòÅжÏÐкš£
case 0x8D: ucRow=20;break;
case 0x8B: ucRow=30;break;
case 0x87: ucRow=40;break;
default: P2=~P2; break;
}
break;
}
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<»Ö¸´¼üɨÃè´¦Àíǰ³õʼ״̬>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SCANPORT=0x8F; //»Ö¸´P2¿Ú
return (ucRow+ucLine+1);//·µ»Ø°´¼ü±àÂë¡£¸ñʽΪ2λÊý£¬¸ßλΪÐкţ¬µÍλΪÁкš£
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<»Ö¸´¼üɨÃè´¦Àíǰ³õʼ״̬>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void vINT0(void) interrupt 0
{
EX0=0;
key_chuli(getkey());
while((SCANPORT&0x8F)!=0x8f) //µÈ´ý°´¼üËÉ¿ª//
{
};
EX0=1;
}
//*************************************************************************************************
//* *
//* ******************************LCD12864Çý¶¯³ÌÐò************************** *
//* *
//*************************************************************************************************
//*************************************************************************************************
//* *
//* ******************************Í·Îļþ¼°ºê¶¨Òå************************** *
//* *
//*************************************************************************************************
#include <reg52.h>
#define LCDPORT P1
sbit E= P3^7;
sbit RW= P3^6;
sbit DI= P3^5;
sbit CS1= P3^3;
sbit CS2= P3^4;
sbit BUSYSTATUS= P1^7; //æ״̬λ¡£
//#define DISONSTATUS P0_5 //ÏÔʾ¿ª¹Ø×´Ì¬Î»¡£
//#define RSTSTATUS P0_4 //¸´Î»×´Ì¬Î»¡£
#define LCDSTARTROW 0xC0 //ÉèÖÃÆðʼÐÐÖ¸Áî¡£
#define LCDPAGE 0xB8 //ÉèÖÃÒ³Ö¸Áî¡£
#define LCDLINE 0x40 //ÉèÖÃÁÐÖ¸Áî¡£
//*************************************************************************************************
//* *
//* ********************************¶Áæ±ê־λ********************************* *
//* *
//*************************************************************************************************
bit bCheckBusy()
{
LCDPORT=0x00;
RW=1;
DI=0;
E=1;
E=0;
return BUSYSTATUS;
}
//*************************************************************************************************
//* *
//* ********************************дÊý¾Ý********************************* *
//* *
//*************************************************************************************************
void vWriteData(unsigned char ucData)
{
while(bCheckBusy());
LCDPORT=0x00;
RW=0;
DI=1;
LCDPORT=ucData;
E=1;
E=0;
}
//*************************************************************************************************
//* *
//* ********************************дָÁî********************************* *
//* *
//*************************************************************************************************
void vWriteCMD(unsigned char ucCMD)
{
while(bCheckBusy());
LCDPORT=0x00;
RW=0;
DI=0;
LCDPORT=ucCMD;
E=1;
E=0;
}
//*************************************************************************************************
//* *
//* ********************************LCD³õʼ»¯º¯Êý******************************* *
//* *
//*************************************************************************************************
/*void vLCDInitialize()
{
CS1=1;
CS2=1;
vWriteCMD(0x38); //8λÐÎʽ£¬Á½ÐÐ×Ö·û¡£
vWriteCMD(0x0F); //¿ªÏÔʾ¡£
vWriteCMD(0x01); //ÇåÆÁ¡£
vWriteCMD(0x06); //»Ãæ²»¶¯£¬¹â±êÓÒÒÆ¡£
vWriteCMD(LCDSTARTROW); //ÉèÖÃÆðʼÐС£
}
*/
//*************************************************************************************************
//* *
//* ******************************ÏÔʾ×Ô¶¨ÒåÐÐ********************************* *
//* *
//*************************************************************************************************
//ÔÚ8¡Á128µÄ¸ñ×ÓÀïÏÔʾ×Ô¶¨Ò峤¶ÈµÄÒ»ÐÐ
void vShowCustomRow(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char *ucaRow)
{
unsigned char ucCount; //ȡֵ·¶Î§£ºucPage:0¡«7£»ucLine:0¡«127£»
if(ucLine<64) //ucWidth:0¡«127£»ucLine+ucWidth<1128¡£
{
CS1=1;
CS2=0;
vWriteCMD(LCDPAGE+ucPage);
vWriteCMD(LCDLINE+ucLine);
if((ucLine+ucWidth)<64)
{
for(ucCount=0;ucCount<ucWidth;ucCount++)
vWriteData(*(ucaRow+ucCount));
}
else
{
for(ucCount=0;ucCount<64-ucLine;ucCount++)
vWriteData(*(ucaRow+ucCount));
CS1=0;
CS2=1;
vWriteCMD(LCDPAGE+ucPage);
vWriteCMD(LCDLINE);
for(ucCount=64-ucLine;ucCount<ucWidth;ucCount++)
vWriteData(*(ucaRow+ucCount));
}
}
else
{
CS1=0;
CS2=1;
vWriteCMD(LCDPAGE+ucPage);
vWriteCMD(LCDLINE+ucLine-64);
for(ucCount=0;ucCount<ucWidth;ucCount++)
vWriteData(*(ucaRow+ucCount));
}
}
//*************************************************************************************************
//* *
//* *****************************ºº×ÖÏÔʾº¯Êý*********************************** *
//* *
//*************************************************************************************************
//´Ëº¯Êý½«16¡Á16ºº×ÖÏÔʾÔÚ8¡Á128µÄ¸ñ×ÓÀï¡£
void vShowOneChin(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaChinMap)
{
vShowCustomRow(ucPage,ucLine,16,ucaChinMap);
vShowCustomRow(ucPage+1,ucLine,16,ucaChinMap+16);
}
//*************************************************************************************************
//* *
//* *****************************×Ö·ûÏÔʾº¯Êý*********************************** *
//* *
//*************************************************************************************************
//´Ëº¯Êý½«8¡Á16×Ö·ûÏÔʾÔÚ8¡Á128µÄ¸ñ×ÓÀï¡£
void vShowOneChar(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaCharMap)
{
vShowCustomRow(ucPage,ucLine,8,ucaCharMap);
vShowCustomRow(ucPage+1,ucLine,8,ucaCharMap+8);
}
//*************************************************************************************************
//* *
//* *****************************ÇåÆÁº¯Êý*********************************** *
//* *
//*************************************************************************************************//´Ëº¯Êý½«Çå¿ÕÏÔʾÆÁ¡£
void ClearLCD(unsigned char date)
{
unsigned char page,column;
CS1=1;
CS2=0;
vWriteCMD(LCDSTARTROW);
for(page=0;page<8;page++)
{
vWriteCMD(page+LCDPAGE);
vWriteCMD(LCDLINE);
for(column=0;column<64;column++)
{
vWriteData(date); //Çå×óÆÁ
}
}
CS1=0;
CS2=1;
vWriteCMD(LCDSTARTROW);
for(page=0;page<8;page++)
{
vWriteCMD(page+LCDPAGE);
vWriteCMD(LCDLINE);
for(column=0;column<64;column++)
{
vWriteData(date); //ÇåÓÒÆÁ
}
}
}
unsigned char code uca_DANG[]=
{0x00,0x40,0x42,0x44,0x4C,0x40,0x40,0x7F,0x40,0x40,0x48,0x44,0xE6,0x40,0x00,0x00,
0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00}; /*"µ±",0*/
unsigned char code uca_QIAN[]=
{0x08,0x08,0xE8,0x29,0x2A,0x2E,0xE8,0x08,0x08,0xCC,0x0A,0x0B,0xE8,0x0C,0x08,0x00,
0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00}; /*"ǰ",0*/
unsigned char code uca_GONG[]=
{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00}; /*"¹¤",0*/
unsigned char code uca_ZUO[]=
{0x80,0x40,0x20,0xF8,0x87,0x40,0x30,0x0F,0xF8,0x88,0x88,0xC8,0x88,0x0C,0x08,0x00,
0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x0C,0x08,0x00,0x00}; /*"×÷",0*/
unsigned char code uca_DIAN[]=
{0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00}; /*"µç",0*/
unsigned char code uca_YA[]=
{0x00,0x00,0xFE,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC3,0x82,0x00,0x00,
0x40,0x30,0x0F,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x42,0x44,0x4C,0x60,0x40,0x00}; /*"ѹ",0*/
unsigned char code uca_QING[]=
{0x20,0x22,0xEC,0x00,0x20,0x22,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xEB,0xA2,0x20,0x00,
0x00,0x00,0x7F,0x20,0x10,0x00,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00};/*"Çë",*/
unsigned char code uca_SHE[]=
{0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9F,0x81,0x81,0x81,0x9F,0xA0,0x20,0x20,0x00,
0x00,0x00,0x00,0x7F,0xA0,0x90,0x40,0x43,0x2C,0x10,0x28,0x26,0x41,0xC0,0x40,0x00};/*"Éè"*/
unsigned char code uca_ZHI[]=
{0x00,0x10,0x17,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x17,0x10,0x00,0x00,
0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00};/*"ÖÃ"*/
unsigned char code uca_SHU[]=
{0x44,0xF4,0x4F,0xE4,0x44,0x64,0x90,0x98,0x94,0x93,0x14,0x98,0x08,0xD0,0x10,0x00,
0x04,0x04,0x04,0xFF,0x02,0x02,0xFF,0x4A,0x8A,0x7F,0x00,0x3F,0x80,0xFF,0x00,0x00};/*"Êä"*/
unsigned char code uca_CHU[]=
{0x00,0x00,0xFC,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0xFC,0x00,0x00,0x00,
0x00,0xFE,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0xFE,0x00,0x00};/*"³ö"*/
unsigned char code uca_MAOHAO[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*";*/
unsigned char code uca_0[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*";*/
unsigned char code uca_HEN[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00};/*"_"_*/
unsigned char code uca_XIAOSHU[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00};/*".".*/
unsigned char code uca_V[]=
{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00};/*"V"*/
unsigned char code uca[][16]=
{
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",0*/
{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"1",1*/
{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",2*/
{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},/*"3",3*/
{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},/*"4",4*/
{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},/*"5",5*/
{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"6",6*/
{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},/*"7",7*/
{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",8*/
{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}/*"9",9*/
};
unsigned char code uca_que[]=
{0xFF,0x7B,0x1B,0xA3,0xBB,0x3B,0xEF,0x07,0x68,0x6D,0x0D,0x65,0x69,0x0D,0xFF,0xFF,
0xFE,0xFF,0xC0,0xF7,0x77,0xB0,0xCF,0xF0,0xFB,0xFB,0xC0,0xBB,0x7B,0x80,0xFF,0xFF};/*" È·",11*/
unsigned char code uca_ding[]=
{0xFF,0xEF,0xF3,0x5B,0xDB,0xDB,0xDA,0x19,0xDB,0xDB,0xDB,0xDB,0xEB,0xF3,0xFB,0xFF,
0xBF,0xDF,0xE7,0xF8,0xF7,0xEF,0xDF,0x80,0xBD,0xBD,0xBD,0xBD,0xBF,0xBF,0xFF,0xFF};/*"¶¨",12*/
unsigned char code uca_wenhao[]=
{0xff,0xff,0xff,0xFF,0x9F,0xEF,0xF7,0xF7,0x6F,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};/*"£¿",13*/