|
使用stc8h在keil中仿真中,想通過debug測算精準(zhǔn)延時(shí),開始運(yùn)行后,程序一直在跑著,但右下角的t0,t1,t2一直為0,不知道哪里設(shè)置出現(xiàn)了問題運(yùn)行其他程序時(shí)數(shù)值都有變動(dòng),唯獨(dú)運(yùn)行這個(gè)程序,無論單步還是全速運(yùn)行t0,t1,t2的值都不變,不知道是debug設(shè)置還是程序哪里出現(xiàn)問題,請各位前輩指點(diǎn)
單片機(jī)源程序如下:
- #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; //設(shè)置P1所有IO口都為推挽輸出 M1M0=01
- P5M0=0xff; //設(shè)置P1所有IO口都為推挽輸出
- P5PU=0x00; //啟用P1所有IO口4.1k上拉電阻(端口上拉電阻期存器PxPU)1-->使能 0-->關(guān)閉
- P5DR=0x01; //設(shè)置P1所有IO口都為強(qiáng)驅(qū)動(dòng)模式(端口驅(qū)動(dòng)電流寄存器PxDR)1-->一般驅(qū)動(dòng)模式 0-->強(qiáng)驅(qū)動(dòng)模式
- P1M0=0X00;
- P1M1=0X00;
- P3M0=0X00;
- P3M1=0X00;
- P5M0=0x00;
- P5M1=0x00;
- }
- void main()
- {
- gpio_int();
- while(1)
- {
- Delay10us();
- DQ=1;
- Delay10us();
- DQ=0;
- }
- }
復(fù)制代碼
|
|