91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 37KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: 其他
  • 標簽: I2C??proteus??

資源簡介

I2C總線proteus測試代碼

資源截圖

代碼片段和文件信息

#include?
???
#define?uchar?unsigned?char ?

uchar?code?table[]?=?“Write:“;
uchar?code?table2[]?=?“Read?:“;
uchar?code?write_data[]?=?“World“;

sbit?port_rs?=?P3?^?4;??//數據/命令選擇端,1是數據,0是命令(狀態)
sbit?port_rw?=?P3?^?5; //讀寫控制,1是讀,0是寫
sbit?port_en?=?P3?^?6; //使能端,高電平允許

sbit?scl?=?P1?^?0;
sbit?sda?=?P1?^?1;

void?delay(uchar?t);
void?set_lcd(uchar?val);
void?set_data(uchar?dat);
void?write_at_addr(uchar?addruchar?dat);
uchar?read_at_addr(uchar?addr);
void?init();
void?delay_us();

void?main()
{
uchar?i;
init();

set_lcd(0x80);//把位置設置為第一行第一位
for(i=0;i<6;i++)
set_data(table[i]);

set_lcd(0x80+0x40);//把位置設置到第二行第一位 ?
for(i=0;i<6;i++)
set_data(table2[i]);

delay(5);

/*在芯片中寫入字符LXJ,再從芯片讀取出來,同時顯示在液晶上*/
for(i=0;*(write_data+i)!=‘\0‘;i++)
{
set_lcd(0x80+6+i+1);
set_data(*(write_data+i));
write_at_addr(i+1*(write_data+i));

set_lcd(0x80+0x40+6+i+1);
set_data(?read_at_addr(i+1)?);
}

//下面的形式,要在后面加延時
/*set_lcd(0x80+7);
set_data(‘H‘);
set_data(‘e‘);
set_data(‘l‘);
set_data(‘l‘);
set_data(‘o‘);
write_at_addr(1‘H‘);?delay(5);?
write_at_addr(2‘e‘);?delay(5);
write_at_addr(3‘l‘);?delay(5);
write_at_addr(4‘l‘);?delay(5);
write_at_addr(5‘o‘);?delay(5);

set_lcd(0x80+0x40+7);
set_data(?read_at_addr(1)?);??
set_data(?read_at_addr(2)?);
set_data(?read_at_addr(3)?);
set_data(?read_at_addr(4)?);
set_data(?read_at_addr(5)?);?*/

while(1);
}

void?init()
{
//設置液晶
set_lcd(0x38);//設置16*12顯示,5*7點陣,8位數據接口
set_lcd(0x0c);//設置開顯示,不顯示光標
set_lcd(0x06);//寫一個字符后地址指針加1
set_lcd(0x01);//顯示清0,數據指針清0
set_lcd(0x0f);//顯示光標,并讓光標閃爍

//設置I2C芯片
sda?=?1;
delay_us();
scl?=?1;
delay_us();
}

/*********************************液晶部分***********************************/
//延時
void?delay(uchar?t)
{ ?
uchar?ij;?
for(i=0;i for(j=0;j<110;j++)
;
}

//設置液晶屏參數
void?set_lcd(uchar?val)
{
port_rs?=?0;//設置成命令
delay(1);
port_rw?=?0;
delay(1);
port_en?=?1;
delay(1);
P2?=?val;//設置命令
delay(5);
port_en?=?0;
}

//設置液晶屏數據
void?set_data(uchar?dat)
{ ???
port_rs?=?1;//設置成數據
delay(1);
port_rw?=?0;
delay(1);
port_en?=?1;
delay(1);
P2?=?dat;//設置數據
delay(5);
port_en?=?0;
}

/*****************************************存儲芯片部分********************************/
//延時4-5微秒
void?delay_us()
{
;;;
}

//開始
void?start()
{
sda?=?1;
delay_us();
scl?=?1;
delay_us();
sda?=?0;
delay_us();
}

//結束
void?stop()
{
sda?=?0;
delay_us();
scl?=?1;
delay_us();
sda?=?1;
delay_us();
}

//等待應答
void?respons()
{
uchar?i;
scl?=?1;
delay_us();

while((sda==1)?&&?(i<250))
i++;

scl?=?0;
delay_us();?
}

//寫數據
void?write_byte(uchar?dat)
{
uchar?itemp;
temp?=?dat;
for(i=0;i<8;i++)
{
temp?=?temp?< scl?=?0;
delay_us();
sda?=?CY;
delay_us();
scl?=?1;
delay_us();
}

scl?=?0;
delay_us();
sda?=?1;
delay_us();
}

//讀數據
u

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2010-05-16?16:40??I2C總線\
?????文件????????9492??2010-05-17?21:29??I2C總線\i2c
?????文件????????4149??2010-05-17?21:29??I2C總線\i2c.c
?????文件???????82563??2010-05-17?00:15??I2C總線\i2c.DSN
?????文件????????1408??2010-05-17?21:29??I2C總線\i2c.hex
?????文件??????????38??2010-05-17?21:29??I2C總線\i2c.lnp
?????文件???????10008??2010-05-17?21:29??I2C總線\i2c.LST
?????文件???????13409??2010-05-17?21:29??I2C總線\i2c.M51
?????文件???????11094??2010-05-17?21:29??I2C總線\i2c.OBJ
?????文件?????????329??2010-05-17?21:29??I2C總線\i2c.plg
?????文件????????1288??2010-05-17?21:29??I2C總線\i2c.PWI
?????文件???????55205??2010-05-17?21:29??I2C總線\i2c.uvopt
?????文件???????13223??2010-05-17?00:15??I2C總線\i2c.uvproj

評論

共有 條評論