---------yw--2010.03.31------
破题目,就是AD采电压,数码管显示就得了,什么数字式什么的,
就是 :最小系统 + ADC0804 + 数码管 + 光敏电阻
我几乎用了两个工作日,焊板子到最终调试,浪费了两天时间,麻烦死了,我讨厌焊板子,累!
现在就简单分析一下,希望以后做这题目少走弯路,不要像我周围的同学似的,什么都不会,硬件不行,程序也不会写,
唉……大学念到这样,悲剧啊!
1. 焊板子期间
a. 最小系统: 注意P0端口的上拉电阻
b. 串口调试:注意串口的方向,正对着串口,管脚1对应下面的哪一点,2是什么,注意不要反了,注意看清max232的管脚方向,
不要原理图上画的是什么,就照着原理图上画,想想封装上的管脚分布,
c. 光敏电路:光敏电阻的性质是,光强越强,电阻越小,ad采集的电压也就越大,再处理一下,对应的是就是光强了。
d. adc0804: 我觉得实验室提供的0804有点问题,并不是按照0~5逐渐变大的,而是变大之后,再变小,简直是奇迹,我从调
ad到现在,还没遇到这么奇怪的情况,不过还好,我发现它在0~2V之内,至少采集的还是准的,我就对采集电路进行分压,强制
使送入ad的电压达到2V以下,这样才能正确采集,至少可以跳出合适的光方向,总之要不断去调,发现问题,然后思考,去怎样
解决它。
e. 数码管部分: 这部分有点恶,不是难,主要就是编码麻烦,共阳就是所有的led管脚(8个)接低就变亮,共阴就相反了,不说了。
带点和不带点的共阳的编码如下:
可以尝试自己去分析一下,很简单,自己编也行,我最开始用网上的一个,md,竟然是错的,害得我自己编码。
unsigned char code table[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//数码管段选显示 0--9 共阳,不带小数点
unsigned char code table_point[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//数码管段选显示 0--9 共阳,带小数点
差不多就这么多了,
2. 调程序期间
无
正确的方法:
没有什么问题是解决不了的,至少我是这么认为的,只要你遵循正确的方法,并有一颗平和的心态(非常重要,非常重要),
就一定能解决问题,一定能!我最瞧不起的就是那些慌张的人,有什么问题,就扔给我,叫我调,拉倒吧,我才不会给你调呢。
懒死了,我没那时间。
关于调试的方法:
1. 检查硬件电路:
检查硬件电路的问题,充分使用万用表,短路档(无电时),和电压档(有电时),对芯片的电源管脚,地管脚进行电压测量,
确保正常,还要对一切你从电路图上能够读懂的电压节点等,分析出电压并测量,保证无误。 一定要确保硬件电路没问题,
这样,你才能保证,下一步,即程序调试。
2. 调试程序:
调试程序,要是有单步调试的功能,就好多了,一步一步分析程序,然后一步一步跑,每一步测量电压,发现问题,看实际和
理论的是否有误,找到出现问题的环节,然后去解决它,就OK了。对于不带单步调试功能的,不如说51单片机,就是用串口
变量监测,或者使用数码管、1602液晶,12864液晶、led灯显示出来变量值的变化,发现出错的部分,改正。
最后要强调的一点就是,在实际进行动手之前,对实验的原理一定要明白,不能有半点不懂的地方,要不然它肯定会来找你的,
哈哈,不是夸张,是的,的确。 还有对于一个整个系统,不能求快,稀里糊涂的就全焊上了,要一步一步来,循序渐进,把
硬件焊上,然后再写个程序,下里面,看看硬件上是否正常了,再调下一个,不要急,要有一个,平常心。