fuguang_y
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1518回复:8

D12问题

楼主#
更多 发布于:2002-10-10 09:00
我现在正在开始调试D12的程序,用的是51的单片机,在无DMA的方式下,reset、 eon_t、dmack_n 信号接5V,ale、cs_n、接地,dmreq悬空, wr_n、rd_n分别与单片机的写读信号相连。A0与p2.7相连。在初始化阶段最开始的5句程序是:  
#define D12_COMMAND (*(unsigned char xdata *)0x8000)
#define D12_DATA    (*(unsigned char xdata *)0x0000)
    D12_COMMAND = 0xf3;
    D12_DATA = 0x06;
    D12_DATA = 0x03;/*初始化频率 12MHz */
   但是这积聚程序执行完以后,D12输出的时钟频率仍然为4M,这是为什么,我觉得这是最简单的功能,但是现在实现不了,下边的工作根本不用考虑了,哪位大虾指点一二,不胜感激。
 
Adward
驱动牛犊
驱动牛犊
  • 注册日期2001-10-09
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-10 09:22
多看d12 器件手册,那有详细说明
smuhsy
驱动牛犊
驱动牛犊
  • 注册日期2002-06-19
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-10 09:51
12M是初始值,很明显你的命令没有被写进去,可能是你的硬件设计有问题,是否P0口的驱动问题,如忘记加上拉电阻?方便留下电话号码,我的emial:smuhsy@163.net
fuguang_y
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-10 10:08
 由于是实验板,我觉得简单,所以没有画原理图,P0口确实没有家上拉电阻,但是我目前的板子上只有89C51和D12芯片,我觉得驱动应该不存在问题的。
  
takaya
驱动小牛
驱动小牛
  • 注册日期2002-02-10
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-10 20:35
看看P0 P2 有没有输出,还有WR RD等.
我是只可爱的小猫咪,高枕无忧................................. QQ:2745071
BRANDER
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2009-05-01
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望15点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-10 22:57
#define D12_COMMAND (*(unsigned char xdata *)0x8000)
中(*(unsigned char xdata *)怎么理解啊???
zfnuaa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2004-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-11 09:15
因为他的板子是用A0选则地址或命令,而A0又和P2。7相接,所以0X8000地址时,P2脚输出地址的高8位,正好P2。7是1,所以是选择命令的。 :cool:
zfnuaa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2004-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-11 09:21
而前面的(*(unsigned char xdata *)则是用C语言写的汇编命令,在汇编语言中就是MOVX 0X8000,比如程序中的D12_COMMAND = 0xf3,在汇编中就是MOVX 0X8000,0Xf3. :cool:
mengxy
驱动牛犊
驱动牛犊
  • 注册日期2002-05-11
  • 最后登录2004-02-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-11 09:54
用这种方式的话,最好是将普通IO口接到A0上。
要不就采用复用方式,ALE跟ALE相连,不用A0.
游客

返回顶部