求助单片机C语言编程的串行中断问题

2021-03-09 05:41:51 字数 1351 阅读 6876

1楼:匿名用户

强烈建议把 发送放到主循环中。

中断程序只是把设置下 现在的任务是接受还是发送。

如unsigned char currtask***;

当要进行发送的时候,在中断程序中currtask***=1主循环读取这个标志位,来进行具体的发送工作。

2楼:匿名用户

第一种情况完全可以避免使用,中断程序中完成接收,可以在其他子程序未必是中断中实现发送,因为串行通信的中断是硬件中断其实现机制非常严格,而且这种在接收中断中实现发送的中断也是不合常规逻辑的;

完全可以定义一个变量在接受中断中将命令写进去,中断返回后,添加子程序实现命令的判断,分别实现查询发送和接受中断,此时的接收中断也就是pc机通信时使用的中断服务;

3楼:

你出现了发送中断,就说明你往发送缓冲区填数据了啊。

思路很简单,接受时,分析命令,然后置相应的标记。推出中断。在主循环里处理命令,然后根据分支去做相应动作。

4楼:做而论道

51单片机在中断过程中,是不会响应同一级别的中断申请的。

只有在执行了reti,退出中断之后,才会响应后来的中断申请。

在串行接收中断中,应有两个分支程序(ri=1、ti=1),每次进入这个中断子程序里,只是执行一种分支。

如果又出现了ti=1的事件,只有等到退出后,才会重新进入这个中断子程序里,执行另一种分支。

单片机c语言中断程序

5楼:匿名用户

#include

void init(void)//声明中断抄初始化袭

main()

void in_0(void)interrupt 0//中断服务函数

6楼:匿名用户

关于c的中断使用一般是,定义函数的时候在后面加上interrupt n 其中 n 对应中断源

的编内号,其值从 0 开始,以

容 80c51 单片机为例,编号从 0~4,分别对应外中断 0. 定时器0 中断.外部中断 1 .定时器1 中断.和串行口中断 .

void ***x(void)interrupt n//中断服务函数

7楼:匿名用户

clr ex0

jnb p3.1,read1

setb ex0

reti

clr a

mov dph,a

jb p3.1,hard11

inc dptr

nopnop

ajmp hard1

mov a,dph

jz readoutt0

C语言编程题,求大神解答,C语言编程题,求助大神

1楼 匿名用户 include int main fclose fp return 0 2楼 匿名用户 include stdio h include string h int main while 1 fclose fp c语言编程题,求助大神 3楼 云南新华电脑学校 int fun int x ...

求简单的51单片机c语言程序设计

1楼 凤凰与涅槃射手 机的外部结构 1 dip40 双列直插 2 p0,p1 ,p2,p3 四个8位准双向 i o引脚 作为 i o输入时,要先输出高电平 3 电源 vcc pin40 和地线 gnd pin20 4 高电平复位 reset pin9 10uf 电容接vcc 与reset ,即可实现...

单片机汇编语言,求大神解答,单片机汇编语言,求大神帮忙看下程序什么意思

1楼 单片机没有负数 做完运算后正负由c来表示 单片机汇编语言,求大神帮忙看下程序什么意思 2楼 匿名用户 程序很简单,就是让p1口全高电平一小段时间 执行delay延时子程序所需时间 后,再让p1口全低电平持续20倍的时间,不断重复上述过程。 0000h start mov p1 0ffh 让p1...