求单片机高手解答(新手)

这张电路图里怎么控制数码管动态显示,位选和段选怎么控制,如果用C编程怎么实现,还有能否解释一下器件ULN2803的作用,下面两张图上面是全局,下面是LED数码管附近的电路,多谢

段选控制:AT89C51—74HC593—段选(数码管)
位选控制:AT89C51—74HC593—ULN28C03—控制位选
ULN2803:输出0000,0001,一个数码管亮,0000,0011,两位数码管亮,一次类推;
程序就自己思考,不懂得在问吧,不然你学不到东西的追问

但是我不清楚怎么使能两个器件,因为段选用的是AJ01,位选用的是AJ00,这两个是38译码器输出,实现过程说下大体也好,还有WR是程序里可以直接使用不需定义的吗

追答

74HC593作用:假设P0=0xFF,那么74HC593输入端和输出端都是0xFF,作为初学者记住这个就够了;
ULN2803:当74HC593输出端是0xFF到达ULN2803的输出端时,ULN2803输出端也是0XFF;
建议你先弄明白段选在研究位选这样你的收获更大;

追问

段选我懂,那是P0控制段选信号,那谁控制的位选信号(单片机上哪个端口),还有就是我现在最不能理解的地方,因为AJ00和AJ01是38译码器的两个输出,肯定不能同时为0,一般来说不都是选择了位之后再把段信号送过去让LED亮吗,既然要送段信号肯定要使AJ01为0,那样AJ00就成1了,怎么知道送到哪一位上,还有位选也是P0控制的吗,谢谢

追答

位选:假设AT89C51的P0口输出0XFF,U14B起作用,U14A不起作用(AJ00、/WR同时满足要求,缺一不可;),那么P0口的信号就到了ULN2803,ULN2803的0-7对应了数码管上的0-7;
段选你懂撒
写程序:打开U14B关闭U14A,让位选信号0000,0001到达数码管,你图上最右边的数码管等段选信号来了就会显示数字;然后关闭U14B打开U14A,让段选信号到达数码管,你图上最右边的数码管就亮了;if语句你会用撒!

追问

好吧,那你能看一下这个程序吗,实在是不会了,DUBUG进机子后软件直接自己关掉,而且LED无显示

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-21
分别控制两片573芯片,就可以实现动态显示数码管。
百度一下有相关的程序

ULN2803就是把三极管集成到芯片里面,不过电流更大,驱动能力强了,B就是三极管基极,C是集电极,GND就是发射极。
第2个回答  2015-03-21
开发板都有送资料的吧,看看别人怎么写就知道了。前提是,你先把硬件原理图搞懂,每一颗相关的芯片都实现什么功能。
原理图上具体芯片名字看不到。
百度uln2803,这个芯片很多人用,大把的中文资料。追问

学校实验发的,老师基本上都没讲,只讲了汇编,可是我根本没学过汇编,具体芯片名字为数码管下面的从左往右为74HC573,74HC573,ULN2803,下面的一个为74HC573,在下面一个用不到,在下面往左一点的是38译码器(数电就学过这个,前面的都没见过)

相似回答