|
本帖最后由 ajfan 于 2024-3-26 19:49 编辑
C8051F120 点个灯(P0.7),无论是用下面的程序还是用configuration wizard生成的代码都运行不了,P0.7一直是高,奇怪的是JTAG可以连接上也可以往芯片里烧程序,尝试换其他口也没用,引脚太多了,又不想贸贸然更换芯片。
连接比较简单,(AV+,MONEN,VDD,VDD接3.3V),(AGND和DGND连一起),RST接RC,其余没有特殊连接,有用过这个芯片的大神解个惑么?
//---------------------------------------------------------------------------------
#include "C8051F120.h"
#define CLOCK_FREQ 48000000UL
void delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 113; j++);
}
void initClock() {
OSCXCN = 0x67; // 配置内部振荡器为 24.5MHz
while(!(OSCXCN & 0x80)); // 等待振荡器稳定
OSCICN = 0x88; // 启用内部振荡器
}
void initPort() {
// 将 P1.7 设置为输出模式
P0MDOUT |= (1 << 7);
}
//------------------------------------------------------------------------------------------
//=================================================================================
// 主函数定义
//=================================================================================
void main()
{
unsigned int count = 0;
initClock();
initPort();
while(1)
{
delay_ms(500);
count++;
if (count == 2)
{
P0 ^= (1 << 7);
count = 0;
}
}
}
configuration wizard生成的代码
//---------------------------------------------------------------------------------
#include "C8051F120.h"
void delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 113; j++);
}
void Port_IO_Init()
{
SFRPAGE = CONFIG_PAGE;
P0MDOUT = 0x80;
XBR2 = 0x40;
}
void Oscillator_Init()
{
int i = 0;
SFRPAGE = CONFIG_PAGE;
OSCICN = 0x83;
CCH0CN &= ~0x20;
SFRPAGE = LEGACY_PAGE;
FLSCL = 0x90;
SFRPAGE = CONFIG_PAGE;
CCH0CN |= 0x20;
PLL0CN |= 0x01;
PLL0DIV = 0x01;
PLL0FLT = 0x21;
PLL0MUL = 0x02;
for (i = 0; i < 15; i++); // Wait 5us for initialization
PLL0CN |= 0x02;
while ((PLL0CN & 0x10) == 0);
CLKSEL = 0x02;
}
//------------------------------------------------------------------------------------------
//=================================================================================
// 主函数定义
//=================================================================================
void main()
{
unsigned int count = 0;
Port_IO_Init();
Oscillator_Init();
while(1)
{
delay_ms(500);
count++;
if (count == 2)
{
P0 ^= (1 << 7);
count = 0;
}
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
有一句段子是这样说的,身家过亿的只关心自己的身体,身家千万的,在担心传承,勉强糊口度日才天天看国际新闻,关心国家大事。
|