±±º½µ¥Æ¬»úϵͳÊÔÑ鱨¸æ

±±¾©º½¿Õº½Ìì´óѧÑо¿Éú¿Î³Ì¿¼ºË¼Ç¼

±±¾©º½¿Õº½Ìì´óѧÑо¿Éú¿Î³Ì¿¼ºË¼Ç¼

2009£­2010 ѧÄê µÚһѧÆÚ

ѧºÅ ÐÕÃû ³É¼¨

¿Î³ÌÃû³Æ£º¡¶µ¥Æ¬»úϵͳÊÔÑé(1)¡·

ÂÛÎÄÌâÄ¿£ºÊµÑ鱨¸æ

Ò»¡¢ ʵÑéÄ¿µÄ

1. Á˽ⵥƬ»úµÄÔ­Àí¼°ÆäÓ¦Óã¬ÊìϤµ¥Æ¬»úµÄ×ÊÔ´£¬ÕÆÎÕµ¥Æ¬»úµÄ×îСϵ

ͳÉè¼Æ¼°À©Õ¹¼¼Êõ£¬ÕÆÎÕÒ»Ãŵ¥Æ¬»úµÄÓïÑÔ£¨»ã±àÓïÑÔ»òµ¥Æ¬»úµÄC51ÓïÑÔ£©¡£

2. ͨ¹ý±¾ÊµÑéÁ˽âI2C×ÜÏßµÄÌØµã£¬ÒÔ¼°51ϵͳÖжÔI2CÆ÷¼þµÄʹÓúͱà

³Ì·½·¨£¬°üÀ¨£ºÁ˽âI2C×ÜÏßϵͳÖÐÏÔʾ¼üÅÌÇý¶¯Æ÷ZLG7290£¬ÕÆÎÕÆäʹÓúͱà³Ì·½·¨£»ÁË½â´øÓÐI2C×ÜÏß½Ó¿ÚµÄʵʱʱÖÓоƬPCF8563µÄ¹¤×÷Ô­Àí£¬ÕÆÎÕÆäʹÓúͱà³Ì·½·¨£»ÕÆÎÕ×Ö·ûÐÍÒº¾§Çý¶¯Ð¾Æ¬PCF8576µÄ¹¤×÷Ô­Àí£¬ÕÆÎÕÆäʹÓúͱà³Ì·½·¨¡£

3. ͨ¹ý±¾ÊµÑéÁ˽â×Ö·ûÐÍÒº¾§µÄÏÔʾ·½·¨¡£ ¶þ¡¢ ʵÑéÉ豸

µ¥Æ¬»ú×ۺϷÂÕæÊµÑéÒÇһ̨£¬PC»úһ̨¡£ Èý¡¢ ʵÑéÔ­Àí

£¨1£©I/O¿ÚʵÑ飺P1¿Ú×÷Ϊ׼˫Ïò¿Ú£¬Ã¿Ò»Î»¿É¶ÀÁ¢¶¨ÒåΪÊäÈëÊä³ö¡£CPU¶ÔP1¿ÚµÄ²Ù×÷¿ÉÒÔÊÇ×Ö½Ú²Ù×÷£¬Ò²¿ÉÒÔÊÇλ²Ù×÷¡£ÊµÑéÖÐP1.0£­P1.3½Ó·¢¹â¶þ¼«¹Ü£¬±àд³ÌÐò£¬Í¨¹ýP1¿Ú¿ØÖÆLED״̬£¬ÊìϤCPU¶ÔP1¿Ú²Ù×÷Ö¸Áî¡£P1.4½Å½Ó°´¼ü£¬×÷ΪÊý×ÖÊäÈë¡£

£¨2£©I2CÆ÷¼þʵÑ飺I2C×ÜÏßµÄÔ­Àí¼°Èí¼þ°ü£¬¸÷¸öÆ÷¼þµÄÆ÷¼þµØÖ·¼°µØÖ·Òý½ÅµÈÔ­Àí¡£¾ßÌåÔ­Àíͼ¿É²Î¿´²Î¿¼ÊéÄ¿¡¾1¡¿»ò´ÓÍøÉÏÏÂÔØwww.21IC.com¡£

£¨3£©µãÕóÒº¾§ÊµÑé£ºÕÆÎÕLCD12864µãÕóÒº¾§µÄ¿ØÖÆ·½·¨¡£ ËÄ¡¢ ÄÚÈÝÓë²½Öè

1. ѧ»áʹÓÃKEIL C51µÄ·ÂÕæµ÷ÊÔ»·¾³ÒÔ¼°·ÂÕæÆ÷µÄʹÓ㬲¢ÄÜʹ4¸öµÆÈ«

ÁÁ¡£

2. I/O¿ÚʵÑ飺ѭ»·¶¨Ê±£¨Óö¨Ê±Æ÷×ö£©µãÁÁ4¸öµÆ£¬¼´Ã¿2ÃëÉÁ˸µãÁÁ(ÁÁ

1Ã룬Ãð1Ãë)Ò»¸öµÆ£¬Ñ­»·Íù¸´£¨»ò½ÐÅÜÂíµÆÊµÑ飩¡£

3. Ñ¡×÷ÆäÖÐÈÎÒâÒ»¸öʵÑ飺£¨1£©PCF8576Çý¶¯µÄ×Ö·ûÒº¾§ÉÏÏÔʾ¡°ENG¡£¡±£»

(2)ÄܶÔTLC549оƬµÄÄÚ²¿¼Ä´æÆ÷½øÐвÙ×÷£¬ÊäÈëµçѹ±ä»¯ÊǸø³öÏàÓ¦µÄÖµ¡£

±±¾©º½¿Õº½Ìì´óѧÑо¿Éú¿Î³Ì¿¼ºË¼Ç¼

4. ÈçÓиÐÐËȤµÄͬѧ»¹¿ÉÒÔ×öʵÑéÏäÉϾ߱¸µÄÆäËûʵÑé×éºÏ¡£ Îå¡¢ Ô´´úÂëºÍ˵Ã÷ 1¡¢4¸öµÆÈ«ÁÁʵÑé

C51Ô´´úÂëÈçÏ£º

# include # include sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; void delay(void); void main() {

delay(); while(1) { P1_0=0;

P1_1=0;

P1_2=0; P1_3=0; }

}

void delay() { }

int i;

for(i=0;i<10000;i++) { }

_nop_();

±±¾©º½¿Õº½Ìì´óѧÑо¿Éú¿Î³Ì¿¼ºË¼Ç¼

ʵÑéʱ¿´µ½P1¿ÚµÍ4λ¶ÔÓ¦µÄ4¸öLEDµÆ¾ùµãÁÁ¡£Òò¹²Òõ¼«LED¶ÔÓ¦µÄP1¿ÚµÄÊýλ¾ùÖá°0¡±¡£ 2¡¢I/O¿ÚʵÑé

¶¨Ê±1Ãë¿ØÖÆ4¸öµÆÑ­»·µãÁÁµÄC51Ô´³ÌÐòÈçÏ£º

#include #include #define uchar unsigned char #define uint unsigned int

sbit LED0=P1^0; //¶¨ÒåLED¶ÔÓ¦µÄP1¿Ú sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3;

void Timer0() interrupt 1 {

static uint count=0; if(++count=25)

{

P0=_crol_(P0.1); }

TH0=(65536-40000)/256; TL0=(65536-40000)%6; } main() {

P0=0xFE;

TMOD=0x01; //timer0·½Ê½1

±±¾©º½¿Õº½Ìì´óѧÑо¿Éú¿Î³Ì¿¼ºË¼Ç¼

TH0=(65536-40000)/256; //³õʼ»¯¼ÆÊý³õÖµ(¼ÙÉè¾§ÕñƵÂÊΪ12MHz£© TL0=(65536-40000)%6; //40ºÁÃëÒç³öÒ»´Î

EA=1; //¿ª×ÜÖжÏÔÊÐí ET0=1; //¿ªtimer0ÖÐ¶Ï TR0=1; //Æô¶¯timer0 for(;;){}

}

ʵÑéʱ£¬P1.0-P1.3¶ÔÓ¦µÄLEDµÆÃ¿1ÃëÉÁ˸µãÁÁÒ»¸ö£¬Ñ­»·Íù¸´¡£ Ñ¡ÔñµÄ¶¨Ê±/¼ÆÊýÆ÷Ϊtimer0·½Ê½1£¬¶¨Ê±³õÖµ£¨65536-40000£©ÓÉ

1212?106?40000?0.01s?40msÈ·¶¨£¬ÖжÏÖÜÆÚΪ10ms¡£

3¡¢Ñ¡×öʵÑ飬PCF8576¿ØÖƵÄ×Ö·ûÒº¾§ÉÏÏÔʾ¡°ENG¡±¡£

C51Ô´´úÂëÈçÏ£º

#include #include

#define uchar unsigned char #define uint unsigned int sbit SDA=P1^7; sbit SCL=P1^6;

//P1.7×÷ΪÊý¾ÝÏßSDA //P1.6×÷ΪʱÖÓÏßSCL

sbit RST=P1^0;

extern void sta(); //º¯ÊýÉùÃ÷ extern void stop(); extern void cack();

extern void wrbyt(uchar shu); extern void wrbyt0(); extern void wrbyt1();

extern void wrnbyta(uchar slaw,uchar gg[],uchar n);

extern void wrnbyt(uchar slaw,uchar number,uchar ff[]); void sta() //Æô¶¯I2C×ÜÏß {

SDA=1;

SCL=1;

while(SCL==0){;} _nop_(); SDA=0; _nop_(); _nop_(); SCL=0;

±±¾©º½¿Õº½Ìì´óѧÑо¿Éú¿Î³Ì¿¼ºË¼Ç¼

}

void stop()

{ SDA=0; SCL=1;

while(SCL==0){;} _nop_(); SDA=1; _nop_();

_nop_();

SCL=0; }

void cack() { SDA=1; SCL=1; F0=0;

if(SDA==0) { SCL=0;

_nop_();

_nop_(); } else { F0=1; SCL=0; _nop_(); _nop_();

}

}

void wrbyt(uchar shu) { uchar i;

if((shu&0x80)>0) { SDA=1; } else { SDA=0; } SCL=1;

while(SCL==0){;} _nop_();

SCL=0; SDA=0;

shu=_crol_(shu,1);

//Í£Ö¹I2C×ÜÏß

//Ó¦´ðλ¼ì²é

//·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4