kuki0702 发表于 2008-5-20 20:29:49

求教:马老师Mega16连8254为什么出不了波形??

马老师帮我看看!
我用的是Atman Avr编译器.PA口连8254的D0-7,PC4--A1,PC3--A0,PC2--!WR,PC1--!RD,PC0--!CS
完了我想初始化8254但是就是出不了波形...
   PORTA=0x00;
   DDRA=0xff;
   PORTC=0xff;
   DDRC=0xff;
main()
   cbi(PORTC,PC0); // cs=0
   cbi(PORTC,PC2);// wr=0
   PORTA=0x96;//控制方式(A1,A0=1) 2通道
   PORTA=0x0a;//置初值
//////////////////////////////////
   cbi(PORTC,PC3);
   cbi(PORTC,PC2);
   PORTA=0x0a;//置初值
//8254中 CLK信号我加了8M晶振,GATE信号加了+5V电源 可是OUT信号没有脉冲的波形,只有1v的直流电压...

machao 发表于 2008-5-20 20:48:27

1.为什么用8254而不用AVR中的T/C?感觉有点画蛇添足的味道.

2.AVR没有并行接口,8254是并行接口芯片.根据你主程序中的几句代码看,你用PORT口模拟并行时序有问题,你好象根本不知道8254的操作时序.

kuki0702 发表于 2008-5-22 22:19:54

谢谢马老师的解析.
1.我用8254而没有用内部的计数器是因为我需要比较高并且稳定的时钟频率,T/C可能满足不了.
2.8254的文档我看过了,我也看了相关书籍的程序,一般情况它都是与PC连着,控制8254内部三个独立寄存器的不同地址进行初始化,但是跟avr单片机连接,我不知道确切地址,也就是不知道怎么写进去,继续摸索中...

machao 发表于 2008-5-23 15:59:22

就是,你的微机原理没有学好.

另外,AVR的T/C1性能不会差的.

mljda 发表于 2008-5-23 17:32:08

地址就是引脚连接。

你看文档。
直接用avr模拟总线时序控制8245就可以了。

如果想用地址映射实现,可以改用Mage8535之类的.

machao 发表于 2008-5-23 17:40:36

这本身不是什么难的东西,应该算最基本的功力了.但是会者不难,难者不会.
页: [1]
查看完整版本: 求教:马老师Mega16连8254为什么出不了波形??