1,我们一般发送的数据都用查询法,因为发送是主动的,当然也可以用中断法,当然要明白数据传输原理,发送数据原理,当数据送入SBUF后,就开始数据发送,当发送完后,硬件将TI置1,一般我们通过查询TI是否是1来判断数据发送是否完毕,你说的程序中也没写中断函数,是人家没有用中断方式,用的是查询方式,这样会合理些,在中断函数中令TI=0,也没有什么意思,当然可以在函数中处理下别的.
2 用查询法,就是等TI=1,后你才能去清零,如果TI不是1,永远不能执行到软件清零这句,如果用中断函数也是要等TI为1,用查询法查询TI是否1法很合理,如果用延时等TI是1,在中断函数来将TI=0;也可以,但延时要合理,必须大于整个发送时间,一般一个字节需要10bit的时间.
3 一般接收会用中断函数,因为接收是被动,用中断法会很稳,用查询法也可以,但高密度接收时,会出错,因为cpu还在执行别的程序,如果很长,即使你的RI已经是1了,但没有执行到,就只能等,就会丢失很多发来的数据.
置位就是表示要CPU去干什么,只要CPU去干了这个置位就没用了,因为已经在干了。中断只是优先级比较高的程序,程序不是没有写,而是已经包含进去了,只是你自己不用写而已
发送数据时你不使用中断,而只在接收时使用中断就是了。一般都这样使用的。