TA的每日心情 | 擦汗 2013-1-23 10:31 |
---|
签到天数: 14 天 连续签到: 1 天 [LV.3]偶尔看看II
|
我的硬件连接:
DS 在 P3.0
SH_CP 在 P3.1
L_CLK 在 P3.2
595输出0-7对应BCD的a-h
源码:- #include <reg51.h>
- #include <intrins.h>
- code unsigned char BCD[]={0x81,0xB7,0xC2,0x92,0xB4,0x98,0x88,0xB3,0x80,0x90}; /* 0-9 */
- sbit L_DS = P3^0;
- sbit L_CP = P3^1;
- sbit L_CLK = P3^2;
- void Input(unsigned char BCD_N){
- unsigned char tmp;
- tmp = BCD_N;
- for(tmp=0;tmp<8;tmp++){
- tmp <<= 1;
- if((BCD_N |= 0x01) == 0x01){
- L_DS = 1;
- }else{
- L_DS = 0;
- }
- L_CLK = 1;
- _nop_();
- _nop_();
- L_CLK = 0;
- }
- }
- void Output(){
- L_CP = 0;
- _nop_();
- _nop_();
- L_CP = 1;
- _nop_();
- _nop_();
- L_CP = 0;
- }
- void Init(){
- L_CLK = 0;
- L_CP = 1;
- }
- void main(){
- Init();
- Input(BCD[0]);
- while(1){
- Output();
- }
- }
- l
复制代码 结果是:
BCD不亮,复位后也不亮,按一下电路接一个测试电路发现:
VCC-LED-接口(分别测试0-7输出)
接所有输出都亮,是不是我写的时序有问题呢,我看到别人的程序以后自己重写了一个.
|
|