资源描述:
《单片机 实验四 实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机实验报告四评阅姓名学号0615212016时间地点单片机实验室实验题目串行口实验一、实验目的1.学习MCS-51串行口的工作原理及使用方法。2.学习MCS-51串行口的初始化程序、应用程序的编写和调试。二、实验主要仪器及环境:PC机、WAVE软件、仿真器+仿真头、实验板、电源等。三、实验内容1、P1.0--P1.7作输入口接拨动开关S0--S7,每当有开关动作(低电平)时,1)将开关编号(0—7)存入内部数据存储器,要求存入的开关编号数据不少于10个,存储空间自定;2)采用工作寄存器记录开关动作
2、总次数;3)通过本机的TXD和RXD进行串行通信,发送开关编号,接收的数据存入另一内部数据存储器,存储空间自定(不能重叠),要求采用方式1,波特率为4800b/s,fosc=11.0592MHz;4)将接收到的数据显示在LED数码管。编写初始化程序和中断服务程序,在实验板上调试通过。2、双机通信1)甲机P1.0--P1.7作输入口接拨动开关S0--S7,每当有开关动作(低电平)A、将开关编号(0—7)存入内部数据存储器,开关编号数据显示在LED数码管上。B、采用工作寄存器记录开关动作总次数,数据以二进
3、制形式显示在LED上。C、通过本机的TXD发送开关编号及开关动作总次数,要求采用方式3,奇校验,波特率为2400b/s,fosc=11.0592MHz;2)乙机通过本机的RXD接收甲机发送的开关编号及开关动作总次数数据,要求采用方式3,奇校验,波特率为2400b/s,fosc=11.0592MHz;将接收到的开关编号数据显示在LED数码管,开关动作总次数数据以二进制形式显示在LED上。编写初始化程序和中断服务程序,在实验板上调试通过。将接收和发送互换,将波特率改为9600b/s,完成上述双机通信任务。
4、五、实验步骤首先分析试验要求,设置实验电路和软件部分。软件部分先分析算法,画出算法流程图,然后编写程序,调试,最后用wave仿真机硬件测试。六、实验程序流程框图、实验程序(必须加注释)一、试验一:程序:流程图:开始中断和定时器初始化检测是否有开关按下开关编号存入数据存储区关动作总次数加一开关编号和总次数送串口发送缓冲区串口接收数据中断检测串口接收数据中断接收数据并送LED显示ORG0000HAJMPMAINORG001BHAJMPTIME1ORG0023HLJMPTRXORG0030H;定义数码管显示
5、码DB0BFH,30H,5BH,4FH,66HDB6DH,7DH,07H,0FFH,6FHORG0050H;定义LED显示码DB00H,01H,02H,04H,08HDB10H,20H,40H,80H;-------------------------------------------------MAIN:MOVSP,#60HMOVSCON,#50HMOVPCON,#00HCLRPSSETBES;串口中断初始化MOVTMOD,#22HMOVTL1,#0FAHMOVTH1,#0FFHSETBET1SE
6、TBPT1SETBTR1SETBEACLRRI;----------------MOVR6,#00HMOVR0,#30H;发送数据存储开始地址MOVR1,#50H;接收数据存储开始地址START:LCALLREADMOV@R0,AINCR0INCR6CLRTI;-------------CLRESMOVSBUF,AWAIT1:JNBTI,WAIT1SETBESAJMPSTART;------------------------------------------------TIME1:NOPRETI;
7、------------------------------------------------TRX:PUSHAJNBRI,FINSH1MOV@R1,SBUFINCR1MOVA,SBUFLCALLSHUMAGUANCLRRIFINSH1:POPARETI;------------------------------------------------READ:NOPMOVP1,#0FFHMOVA,P1JZFINSHCLRCMOVR7,#00HLOOP1:RRCAINCR7JNCLOOP1FINSH:
8、MOVA,R7RET;------------------------------------------------SHUMAGUAN:MOVDPTR,#0030HMOVCA,@A+DPTRMOVP2,ARET;------------------------------------------------END测试结果:一、实验二开始甲机程序:甲机流程图:定时器中断和串口中断初始化按键次数加一读取按键值按键值送LED数码管显示按键值送串口Buffer