冲哥32G12k128的疑问贴
我是一个计算机小白呀,跟着冲哥的视频学,写到led点灯的时候,sfr P0 =0X80; //改成p4端口sfr P0M1 = 0X93;
sfr P0M0 = 0X94;
sfr P4 =0XC0;
sfr P4M1 = 0XB3;
sfr P4M0 = 0XB4;
sfr P6 =0XE8;
sfr P6M1 = 0XCB;
sfr P6M0 = 0XCC;
sbit P40 = P4^0;//三极管控制的引脚
sbit P60 = P6^0;//LED的引脚
void main ()
{
P0M0 = 0X00;
P0M1 = 0X00;
P4M1 = 0X00;
P4M0 = 0X00;
P6M1 = 0X00;
P6M0 = 0X00;
while (1)
{
//P0++;
P40 = 0;
P60 = 0;
}
}
那个代码怎么写都不对呀,大佬可以帮我看看我的代码哪里有问题吗
在您的代码中,您尝试将LED点灯的控制从P0端口切换到P4端口。以下是几点专业建议:<br><br>1. 端口配置:确保P4和P6端口的模式寄存器(P4M1、P4M0、P6M1、P6M0)正确配置为输出模式。例如,将P4M1和P4M0设置为0x00,将P6M1和P6M0设置为0x00,以确保端口为推挽输出。<br><br>2. 引脚定义:您已经正确定义了P40和P60引脚,分别控制三极管和LED。确保这些引脚在实际硬件中正确连接。<br><br>3. 主函数逻辑:在主函数中,您需要添加逻辑来控制LED的开关。例如:<br> c<br> void main() {<br> P4 = 0x00;// 初始化P4端口<br> P6 = 0x00;// 初始化P6端口<br><br> while(1) {<br> P40 = 1;// 打开三极管<br> P60 = 1;// 打开LED<br> // 延时函数<br> P40 = 0;// 关闭三极管<br> P60 = 0;// 关闭LED<br> // 延时函数<br> }<br> }<br><br>4. 延时函数:建议添加一个简单的延时函数,以便观察LED的闪烁效果。例如:<br> c<br> void delay(unsigned int ms) {<br> unsigned int i, j;<br> for(i = ms; i > 0; i--)<br> for(j = 110; j > 0; j--);<br> }<br><br>通过以上调整,您的LED点灯程序应该能够正常运行。如有进一步问题,请随时提问。<br><br>[本文内容由国芯人工智能辅助生成,仅供参考] 三极管会把共阴的翻转一下电平
你试试P40 =1 ;P60=1
页:
[1]