阅读:1154回复:2
新手求助D12+C8051F043,谢谢!
请问D12_COMMAND和D12_DATA的地址映射是怎么得到呢?已经无奈了- -
![]() 还有请看看上面的电路图连接是否正确,D12 5V供电,A0接高电平。 测试上电MCU初始化后,D12 DMACK_N、EOT_N高电平,DMREQ低电平,CLKOUT输出4M。 下面是测试MCU发送命令的程序,不知道对不对,反正运行后没有反应! #include "C8051F040.h" sbit D12SUSPD = P2^3; sbit D12_RST = P2^2; sbit MCU_D12CS = P2^1; sbit D12_A0 = P2^0; sbit D12_WR = P0^7; sbit D12_RD = P0^6; sbit ALE = P0^5; #define D12_COMMAND 0x4000 //随便写的- - #define D12_DATA 0x4001 #define DATA_BUS P3 void wait() { int i = 0; for(i=0;i<6000;i++) ; } void Timer_Init() //时钟初始化 { SFRPAGE = TIMER01_PAGE; TCON = 0x10; TMOD = 0x19; } void Oscillator_Init() //MCU晶振初始化 { SFRPAGE = CONFIG_PAGE; OSCXCN = 0x67; wait(); // Wait 2ms for initialization while ((OSCXCN & 0x80) == 0); CLKSEL = 0x01; OSCICN = 0x00; } void Port_Init() //端口初始化 { SFRPAGE = CONFIG_PAGE; P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; P3 = 0xFF; XBR1 = 0x04; XBR2 = 0x40; MCU_D12CS = 0; D12SUSPD = 0; } void Interrupts_Init() //中断初始化 { IE = 0x83; IP = 0xC2; EA = 1; IT0 = 0; EX0 = 1; PX0 = 1; } void outportb(unsigned char Addr, unsigned char bData) { unsigned char xdata *ext_address; MCU_D12CS=0; //片选信号,低有效 ext_address=0xff00 + Addr; *ext_address = bData; MCU_D12CS=1; } void main(void) { Timer_Init(); Oscillator_Init(); Port_Init(); Interrupts_Init(); outportb(D12_COMMAND, 0xF3); outportb(D12_DATA, 0x0b); outportb(D12_DATA, 0x03); //12M分频系数 } 谢谢! |
|
沙发#
发布于:2007-11-20 12:45
晕~~没人能帮忙解答下么
急求中~~谢谢 |
|
板凳#
发布于:2007-11-21 16:18
![]() ![]() ![]() |
|