东南大学 单片机实验 解答 下载本文

内容发布更新时间 : 2024/5/2 15:01:32星期一 下面是文章的全部内容请认真阅读。

实验一

#include sbit Led1=P1^0; sbit Led2=P1^1; void Delay1s(void) {

unsigned char h,i,j,k; for(h=10;h>0;h--) for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--); }

void main() {

while(1) {

Led1=1;

Led2=0;

Delay1s(); Led1=0; Led2=1; Delay1s();

}

}

实验二

#include #include sbit Led1=P1^0; sbit Led2=P1^1;

unsigned char flag, sdata; void Led1Invert(void) {

if(Led1==0) {

Led1=1; } else { Led1=0; } }

voidInitSerial() {

SCON=0x50;//将串口设置为方式1,8位数据 PCON=0x00;//不进行2分频 TMOD=0x20;//定时器1设为模式2

TL1=0xfd;//设置波特率为19200=22118400/(32*12*(256-0xfd)) TH1=0xfd;//设置波特率 TR1=1;//启动定时器1 ES=1;//允许串口中断 }

voidSen(unsigned char ch) { ES=0; TI=0; SBUF=ch;

while(!TI){}//等待发送结束信号 TI=0; ES=1; }

void Ser_ISR() interrupt 4 //串口中断号为4 { ES=0; if(RI) {