資源簡介
AT89C51虛擬串口實驗(proteus+C)
代碼片段和文件信息
#include?
//初始化串行口
void?Init_mcu()
{
SM0=0;SM1=1;SM2=0;REN=1;TB8=0;RB8=0;TI=0;RI=0;//SCON=0x50;
PCON=0;
????TH1=0xF3;//2400
TL1=0XF3;
//TH1=0xFD;//9600
//TL1=0xFD;
TMOD=0X20;//定時器1定時方式2
EA=1;
ET1=0;
ES=1;//ES=1允許
TR1=1;//啟動定時器
}
void?main()
{
int?ij;
char?c;
Init_mcu();
while(1)
{
TI=0;//發送中斷標志位
P0=c;//將需要顯示的數據發送到P0
SBUF=c;//將需要顯示的數據發送到串口數據緩沖區
while(!TI);//TI=0就一直循環等待當TI=1時表示數據發送完畢,就開始下一輪發送
TI=0;
for(j=0;j<25;j++)//延時
???for(i=0;i<5000;i++);
c++;//c作為計數器(此時TI由硬件自動設置為1)
}
}
//****************************
//中斷調用用于接收數據
//****************************
void?intrr()?interrupt?4
{
????char?temp;
????temp=SBUF;
????/*switch(temp)
{
case?0x31:P2=0xfe;break;//LED1亮
case?0x32:P2=0xfd;break;//LED2亮
case
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1732??2008-12-16?23:56??MyMcu51\MyMcu51.plg
?????文件???????1246??2008-12-16?23:55??MyMcu51\mymcu51.c
?????文件?????????31??2008-12-16?23:55??MyMcu51\MyMcu51.lnp
?????文件???????4732??2008-12-16?23:55??MyMcu51\MyMcu51.M51
?????文件????????411??2008-12-16?23:55??MyMcu51\MyMcu51.hex
?????文件???????3325??2008-12-16?23:55??MyMcu51\mymcu51.LST
?????文件???????3319??2008-12-16?23:55??MyMcu51\mymcu51.OBJ
?????文件???????3133??2008-12-16?23:55??MyMcu51\MyMcu51
?????文件??????48746??2008-12-16?23:45??MyMcu51\Last?Loaded?mymcu.DBK
?????文件??????95450??2008-12-16?23:56??MyMcu51\mymcu.DSN
?????文件????????742??2008-12-16?23:56??MyMcu51\mymcu.PWI
????.......?????????0??2008-12-16?23:10??MyMcu51\MyMcu51_Uv2.Bak
?????文件???????1984??2008-12-16?23:56??MyMcu51\MyMcu51.Uv2
?????文件???????1023??2008-12-16?23:56??MyMcu51\MyMcu51.Opt
?????目錄??????????0??2008-12-16?22:11??MyMcu51
-----------?---------??----------?-----??----
???????????????165874????????????????????15
- 上一篇:拓撲排序--課程表
- 下一篇:Qt 實現 自定義窗口標題欄
評論
共有 條評論