|
允计定时器1中断ET1 = 1;但没有写相应的中断函数。程序运行为什么就有错误了?
[复制链接]
- #include
- unsigned char flag;
- void main()
- {
- void init();
- init();
- while(1)
- {
- while(!flag)
- ;
- ES = 0;
- P1 = SBUF;
- flag = 0;
- SBUF = P1;
- while(!TI) //TI发送中断标志
- ;
- TI = 0;
- ES = 1;
-
- }
- }
- void init()
- {
- TMOD = 0x20; //定时器1工作方式2自动重装8位计时器
- TH1 = 0xfd; //波特率9600
- TH0 = 0xfd;
- SM0 = 0; //串行口工作方式1
- SM1 = 1;
- EA = 1;
- /*原来是这里多写了句ET1 = 1;导致我的程序出错*/
- ET1 = 1; //为什么写了这句程序就出错了。
- TR1 = 1;
- ES = 1;
- REN = 1; //串行数据允许接收位
- }
- void serial() interrupt 4
- {
- flag = 1;
- RI = 0; //接收完数据后硬件将RI置1,必须软件归0
- }
- 我的目的是发一个数据给单片机。然后把数据赋给P1口。。再把该数据传回来。
复制代码
|
|