使用stc8h在keil中仿真中,想通过debug测算精准延时,开始运行后,程序一直在跑着,但右下角的t0,t1,t2一直为0,不知道哪里设置出现了问题运行其他程序时数值都有变动,唯独运行这个程序,无论单步还是全速运行t0,t1,t2的值都不变,不知道是debug设置还是程序哪里出现问题,请各位前辈指点
单片机源程序如下:
- #include <stc8h.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit DQ = P3^7; //定义DS18B20总线I/O
- void Delay10us() //@11.0592MHz
- {
- unsigned char i;
- _nop_();
- i = 25;
- while (--i);
- }
- void gpio_int()
- {
- P5M1=0x00; //设置P1所有IO口都为推挽输出 M1M0=01
- P5M0=0xff; //设置P1所有IO口都为推挽输出
- P5PU=0x00; //启用P1所有IO口4.1k上拉电阻(端口上拉电阻期存器PxPU)1-->使能 0-->关闭
- P5DR=0x01; //设置P1所有IO口都为强驱动模式(端口驱动电流寄存器PxDR)1-->一般驱动模式 0-->强驱动模式
- P1M0=0X00;
- P1M1=0X00;
- P3M0=0X00;
- P3M1=0X00;
- P5M0=0x00;
- P5M1=0x00;
- }
- void main()
- {
- gpio_int();
- while(1)
- {
- Delay10us();
- DQ=1;
- Delay10us();
- DQ=0;
- }
- }
复制代码
|