为什么stc51的1602液晶程序写到stc12c5a60s2里面完全没反应,不是说完全兼容的吗?

 我来答
阳光的掌控者
2016-11-18 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:100%
帮助的人:9.8万
展开全部
是兼容的,注意1602的时序和检忙。
会用UART吗?可以用printf重定向,通过串口打印出程序运行数据
可以先用1602驱动函数读取1602的每个寄存器,看一下寄存器值是否一样,一样表明1602的读写操作都没弄好。不一样就看看1602数据手册,或者看你自己代码初始化程序有没有错。
printf重定向方法:
char putchar(char c) //printf重定向
{
ES=0;
SBUF = c;
while(TI==0);
TI=0;
ES=1;
return c;
}
void UART_Init(unsigned int baud)
{
SCON = 0x50; //串行控制寄存器
TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 = -(OSC_FREQ/12/32/baud); //Set auto-reload vaule
TR1 = 1; //Timer1 start run
ES = 1; //Enable UART interrupt
EA = 1; //Open master interrupt switch
}
加入以上两个函数,在一开始进入主函数时执行UART_Init(9600);函数,查看好stc5a60s2的引脚,用下载线连接芯片的Tx和Rx引脚,打开电脑串口监视终端,然后以后就可以用printf函数打印数据了。
用这个方法,以后就可以很方便的调试像这种外面看不出现象的程序了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式