楼主小白,最近正在学习stc的打狗棍,参考stc8h系列的技术手册199页中,有设置系统主时钟输出寄存器的选项,但参考手册中的范例程序,自己写的程序却无法输出时钟,(p1.6口一点反应也没有)不知道是哪里出了问题,恳请技术大佬们帮忙看一下是哪里出了问题。
单片机源程序如下:
- #include "STC8.h"
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit led=P3^4;
- sbit a=P1^6;
- void delay(uint i)
- {
-
- {while(i--);}
- }
- void delay_13us(uint t)
- {
- while(t--)
- {_nop_();}
- }
- void delay_1s()
- {
- unsigned char x,y;
- for(x=0;x<100;x++)
- {
- for(y=0;y<100;y++)
- {
- delay_13us(100);
- }
- }
- }
- 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();
- led=1;
-
- <span style="font-size: 14px;">CLKSEL = 0x00; // 选择内部 IRC ( 默认 )</span>
- MCLKOCR = 0x84; //系统时钟4分频输出到P1.6口
-
- while(1)
- {
- delay_1s();
- led=~led;
- }
- }
复制代码
|