3.4 µç··ÂÕæ
3.4.1 ·ÂÕæÈí¼þ¼ò½é
ProteusÊÇÊÀ½çÉÏÖøÃûµÄEDA¹¤¾ß£¬´ÓÔÀíͼ²¼Í¼¡¢´úÂëµ÷ÊÔµ½µ¥Æ¬»úÓëÍâΧµç·Ðͬ·ÂÕæ£¬Ò»¼üÇл»µ½PCBÉè¼Æ£¬ÕæÕýʵÏÖÁË´Ó¸ÅÄîµ½²úÆ·µÄÍêÕûÉè¼Æ¡£ÊÇĿǰÊÀ½çÉÏΨһ½«µç··ÂÕæÈí¼þ¡¢PCBÉè¼ÆÈí¼þºÍÐéÄâÄ£ÐÍ·ÂÕæÈí¼þÈýºÏÒ»µÄÉè¼ÆÆ½Ì¨£¬Æä´¦ÀíÆ÷Ä£ÐÍÖ§³Ö8051¡¢HC11¡¢PIC10/12/16/18/24/30/DsPIC33¡¢AVR¡¢ARM¡¢8086ºÍMSP430µÈ£¬2010ÄêÓÖÔö¼ÓÁËCortexºÍDSPϵÁд¦ÀíÆ÷£¬²¢³ÖÐøÔö¼ÓÆäËûϵÁд¦ÀíÆ÷Ä£ÐÍ¡£ÔÚ±àÒë·½Ãæ£¬ ËüÒ²Ö§³ÖIAR¡¢KeilºÍMPLABµÈ¶àÖÖ±àÒëÆ÷¡£
3.4.2 ·ÂÕæ½á¹û
·ÂÕæ½á¹ûÈçͼ12Ëùʾ¡£ LCD1LM016LVSSVDDVEERSRWERS4GND5E620pFX112M19XTAL1C21820pFXTAL2R1C810uF1k9RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617d0d1d2d3d4d5d6d7RSGNDE98765432d0d1d2d3d4d5d6d7U1d07d18d29d310d411d512d613d714C1123D0D1D2D3D4D5D6D7RP1RESPACK-8U281VCC1X1VCC22293031PSENALEEA1576X2RSTSCLKI/ODS1302CRYSTALX2312345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R210kLS1U3231GNDVIOUTVCCIP+4IP-5SPEAKERR310kACS755XCB-050 ͼ12 ·ÂÕæ½á¹û
µÚËIJ¿·Ö °²×°µ÷ÊÔÓëÐÔÄܲâÁ¿
µç·ʵÎïͼÈçͼ13Ëùʾ¡£
ͼ13 µç·ʵÎïͼ
µÚÎ岿·Ö Éè¼Æ×ܽá
ͨ¹ý±¾´ÎÉè¼Æ£¬Ê¹ÎÒ¶Ôµ¥Æ¬»ú֪ʶºÍÀí½â¸üÒ»²½¼ÓÉîÁË£¬ÕÆÎÕÁ˼òÒ×Êý×ÖÀï³Ì±íµÄÉè¼Æ£¬×é×°ºÍµ÷ÊÔ·½·¨¡£²¢ÇÒʹÎÒ¸ü¼ÓÊìÁ·µÄÓ¦Ó÷ÂÕæÈí¼þ£¬ÈÃÎÒѧµ½ÁËÈçºÎÔËÓÃÈí¼þ²âÊԵ緵ĿÉÐÐÐÔ£¬²¢ÇҶԵ緵ĵ÷ÊԸĽø¶¼ÓÐÒ»¸öºÜ´óµÄÌá¸ß¡£
Õâ¸ö¹ý³ÌÖÐÎÒÓöµ½Á˺ܶàÀ§ÄÑ£¬±ÈÈçÈçºÎÔËÓ÷ÂÕæÈí¼þ»Í¼£¬ÈçºÎ×é֯һЩ±È½ÏרҵµÄÓïÑÔ£¬ÒÔ¼°ÉÏÍø²éÔÄ×ÊÁÏ¡£Ëä˵·Ñ¾¢£¬µ«ÊÇÀÖȤҲ²»ÉÙ¡£Í¨¹ýÕâ´ÎÉè¼Æ£¬ÎÒÃÇÁ˽⵽ƽʱ֪ʶµÄ»ýÀÛÕæµÄºÜÖØÒª£¬ÔÚÓöµ½À§ÄÑʱһ¶¨ÒªÏòÈÏÕæË¼¿¼£¬²éÔÄÏà¹Ø×ÊÁÏ£¬²»¿ÉäĿÍËËõ£¬Å¬Á¦ºó¾ÍÒ»¶¨»áÓÐÊÕ»ñ¡£
Õâ´Î±ÏÒµÉè¼ÆÊÕ»ñÆÄ·á£¬²»½öÊǶÔ×Ô¼º¸öÈËÄÜÁ¦µÄÌá¸ß£¬Ò²ÈÃÎÒÈÏʶµ½ÁË×Ô¼ºµÄ¾ÖÏÞ£¬Í¨¹ýÕâ´ÎµÄ±ÏÒµÉè¼ÆÎªÒÔºóµÄѧϰµì¶¨ÁËÒ»¸ö¸üºÃµÄ»ù´¡¡£
²Î¿¼ÎÄÏ×
[1] ÀÇà. µ¥Æ¬»úÔÀí¼°½Ó¿Ú¼¼Êõ. ±±¾©º½¿Õº½Ìì´óѧ³ö°æÉç, 1994 [2] ÕÅÒã¸Õ, Áõ½Ü. MCS-51µ¥Æ¬»úÔÀí¼°Ó¦ÓÃ. ¹þ¶û±õ¹¤Òµ´óѧ³ö°æÉç,2004 [3] ¥ȻÃç, Àî¹â·É. 51ϵÁе¥Æ¬»úÉè¼ÆÊµÀý. ±±¾©º½¿Õº½Ìì´óѧ³ö°æÉç, 2006 [4] Ëɾ®°îÑå, ÁºÈðÁÖ. ´«¸ÐÆ÷Ó¦Óü¼Êõ141Àý. ¿ÆÑ§³ö°æÉç, 2006 [5] ÕźéÈó, ÕÅÑÇ·². ´«¸ÐÆ÷¼¼ÊõÓëÓ¦Óý̳Ì. Ç廪´óѧ³ö°æÉç, 2005 [6] Áõ²Ó¾ü. ʵÓô«¸ÐÆ÷. ¹ú·À¹¤Òµ³ö°æÉç, 2004 [7] ºÎÏ£²Å. ´«¸ÐÆ÷¼°ÆäÓ¦ÓÃ. ¹ú·À¹¤Òµ³ö°æÉç, 2001
[8] µóÎÄÐË. ×ÔÐгµµç×ÓÀï³Ì±íµÄ³õ²½Éè¼Æ. ÄϾ©¹¤ÒµÖ°Òµ¼¼ÊõѧԺѧ±¨, 2004, 6: 25-28 [9] °²×ÚȨ. µç¶¯µç×Ó³µËÙÀï³Ì±í·ÖƵµç·Éè¼Æ. ×Ô¶¯»¯ÓëÒÇÆ÷ÒDZí, 2001, 5: 39-44 [10] ÑÖ»ÀÖÒ, Íõ³¤ÌÎ, Âí±ó. µ¥Æ¬»ú¿ØÖÆÀï³ÌתËÙ±íµÄÉè¼Æ. ÉòÑô½¨Öþ¹¤³ÌѧԺѧ±¨£¨×Ô
È»¿ÆÑ§°æ£©,2002, 4: 145-148
[11] л×ÔÃÀ. µç×ÓÏß·Éè¼Æ.ʵÑé.²âÊÔ[M].Î人£º»ªÖпƼ¼´óѧ³ö°æÉ磬2000£º212-230 [12] ÕŸ£Ñ§. ´«¸ÐÆ÷ʹÓõç·150Àý.Öйú¼¼Êõ³ö°æÉç.1992
³ÌÐò
#include
#define uchar unsigned char //ÎÞ·ûºÅ×Ö·ûÐÍ ºê¶¨Òå ±äÁ¿·¶Î§0~255
#define uint unsigned int //ÎÞ·ûºÅÕûÐÍ ºê¶¨Òå ±äÁ¿·¶Î§0~65535 #include \
/******************
ds1302 ÄÚ²¿RAM RAM0 1100 000R/W 1¶Á 0д
RAM1 1100 001R/W
....... RAM30 1111 110R/W
********************/
sbit clk = P1^3; //ds1302ʱÖÓÏß¶¨Òå
sbit io = P1^4; //Êý¾ÝÏß sbit rst = P1^5; //¸´Î»Ïß
//Ãë ·Ö Ê± ÈÕ Ô Äê ÐÇÆÚ uchar code write_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a}; //дµØÖ· uchar code read_add[] ={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b}; //¶ÁµØÖ· uchar code init_ds[] ={0x55,0x17,0x15,0x01,0x01,0x13,0x13};
uchar miao,fen,shi,ri,yue,week,nian; uchar i;
uchar t1_num,t2_num; //¼ÆÊ±¼äÖжϵĴÎÊý
unsigned long speed1,juli,time2; float f_hz ,speed_km,speed_m; //dlaout time1 ,speed_km,speed_m; uchar TH11,TL11;
uchar flag_en; //¿ªÊ¼¼ÆËãËÙ¶ÈʹÄÜ uchar flag_stop_en; //Ҫȷ¶¨³µ×ÓÊÇ·ñÍ£ÏÂÁË
uint juli_s; //ÿÃë×ߵľàÀë uint juli_z; //×Ü·³Ì
float zhijing = 0.55; //Ö±¾¶ 0.55M bit flag_1s = 1; //1s
uchar menu_1; //²Ëµ¥ÉèÖñäÁ¿ uchar menu_2; //²Ëµ¥ÉèÖñäÁ¿
long zong_lc; //×ÜÁ¿³Ì
uchar flag_200ms;
uint shudu; //¶¨ÒåËٶȵıäÁ¿ uint bj_shudu = 80; //±¨¾¯ËÙ¶È
//ÕâÈý¸öÒý½Å²Î¿¼×ÊÁÏ
sbit rs=P1^0; //¼Ä´æÆ÷Ñ¡ÔñÐźŠH:Êý¾Ý¼Ä´æÆ÷ L:Ö¸Áî¼Ä´æÆ÷
sbit rw=P1^1; //¼Ä´æÆ÷Ñ¡ÔñÐźŠH:Êý¾Ý¼Ä´æÆ÷ L:Ö¸Áî¼Ä´æÆ÷
sbit e =P1^2; //ƬѡÐźŠÏ½µÑØ´¥·¢
uchar code table_num[]=%uchar i;
sbit beep = P3^7; //·äÃùÆ÷IO¿Ú¶¨Òå
/******************1ms ÑÓʱº¯Êý*******************/ void delay_1ms(uint q) {
uint i,j;
for(i=0;i for(j=0;j<120;j++); } /******************°ÑÊý¾Ý±£´æµ½µ¥Æ¬»úÄÚ²¿eepomÖÐ******************/ void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, bj_shudu % 256); byte_write(0x2001, bj_shudu / 256); byte_write(0x2002, zong_lc % 256); byte_write(0x2003, zong_lc / 256 % 256); byte_write(0x2004, zong_lc / 256 / 256 % 256); byte_write(0x2055, a_a); } /******************°ÑÊý¾Ý´Óµ¥Æ¬»úÄÚ²¿eepomÖжÁ³öÀ´*****************/ void read_eeprom() { uint value; bj_shudu = byte_read(0x2001); bj_shudu <<= 8; bj_shudu |= byte_read(0x2000); zong_lc = byte_read(0x2004); zong_lc <<= 16; value = byte_read(0x2003); zong_lc |= (value << 8); zong_lc |= byte_read(0x2002); a_a = byte_read(0x2055); } /**************¿ª»ú³õʼ»¯±£´æµÄÊý¾Ý*****************/ void init_eeprom() //¿ª»ú³õʼ»¯±£´æµÄÊý¾Ý* { read_eeprom(); //ÏȶÁ if(a_a != 1) //еĵ¥Æ¬»ú³õʼµ¥Æ¬»úÄÚÎÊeeprom { bj_shudu = 50; a_a = 1; write_eeprom(); //±£´æÊý¾Ý } } /******************************************************************** * Ãû³Æ : delay_uint() * ¹¦ÄÜ : СÑÓʱ¡£ * ÊäÈë : ÎÞ * Êä³ö : ÎÞ ***********************************************************************/ void delay_uint(uint q) { while(q--); } /******************************************************************** * Ãû³Æ : write_com(uchar com) * ¹¦ÄÜ : 1602ÃüÁÊý * ÊäÈë : ÊäÈëµÄÃüÁîÖµ * Êä³ö : ÎÞ ***********************************************************************/ void write_com(uchar com) { i =0; e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0; } /******************************************************************** * Ãû³Æ : write_data(uchar dat) * ¹¦ÄÜ : 1602дÊý¾Ýº¯Êý * ÊäÈë : ÐèҪдÈë1602µÄÊý¾Ý * Êä³ö : ÎÞ