stc12单片机硬件调试记录

唉,没想到工作以后还要拾起老本行,搁这调单片机,手生的啥都不会了。

使用stc12c5a60s2作为MCU,完成锁腔。

第一部分:AD5541产生三角波

这一部分应该是相对简单的,设定好定时器和初值,以及AD的时序,有一点需要注意的是,在中断里给定DAC的输出值,为了稳定输出看对电压值的影响,让定时器的时间设长一点,在中断未运行的时候多读几次输入的值,具体效果还要看实验。

另外在办公室和实验室环境下输出的差异比较大,办公室反而收干扰小,得到的波形噪声数量和大小都低很多,实验室不知道有什么设备影响较大,右图所示。

 扫描模式下获取最佳触发值,用于后续稳定下的输出。

第二部分:单片机+PCF8574+LCD1602踩坑记录

通过一番调试最终可以在LCD上显示想要的信息,期间卡了好几天,主要有两个问题:

1、LCD模块(+PCF8574)没有和单片机共地,天真地以为给该模块供电和信号就行,结果在论坛里被人无情指出,这些最基本的都忘了,赶快给共地先。

2、LCD模块感觉被10A的电源烧坏了,刚买的新的模块时,测量各个电阻值都与手册相同,外接电源后,断点再测量电阻值不对了,我怀疑电路哪里烧坏了,又搞了个新的同样的模块,用单片机供电,结果可以显示了,断电后再测量相应阻值也是正常的。没办法啊,自己不会的时候就只能听别人的。

3、数位显示,AD读到的数字是16位,开始还纳闷单片机里的这种数据是按照16进制还是10进制存储,后来发现涉及运算的都是按十进制来算,我就直接做乘法然后按位从高到低进行显示。

4、I2C通信原理这个是不懂的,有机会学习下。

第三部分:AD读取

  原来电路用的ad7091r,12位的ad,但是写完程序发现读不出结果,论坛里发帖后也有人说是IO口的翻转速度问题,所用芯片外接20M晶振,1T的工作模式,时钟周期为50ns,机器周期也是;另外我看到网上的关于这个AD的使用都是32和fpga,还真的是没有用51的,这个卡了得有一周,一直读不出结果。

  穷则思变,干脆用自带的AD吧,也有10位,精度差不了多少(1/1024---1/4096),可以接受,自带AD看完手册写的很详细,参照网上的程序很快就写完测试,测试中数位显示

第四部分:联调

上述三个模块硬件问题都算解决了,接下来就需要处理的是逻辑问题了,这个就相对简单了,改代码就好,还未测试,尽快测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值