|
使用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;
- }
- }
復制代碼
|
|