本帖最后由 zhliwlj 于 2012-10-21 18:22 编辑
刚接触
单片机,第一次搞编程,在练习用8255扩展IO,源码如下,很简单,但在
proteus下死活不见效果,PO和P2口没任何反应,delay函数也不起作用,不知道是proteus,keil还是源码的问题,试过各种方法都不行
,被折磨好几天了
,请各位
论坛高手指点迷津
#include<reg51.h>
#include<absacc.h>
#define PA8255 XBYTE[0xfff8]
#define PB8255 XBYTE[0xfff9]
#define PC8255 XBYTE[0xfffa]
#define COM8255 XBYTE[0xfffb]
void delay(unsigned int i);
void init(void)
{
COM8255=0x80;
}
main()
{
init();
while(1)
{
COM8255=0x07;
delay(2);
COM8255=0x06;
delay(2);
}
}
void delay(unsigned int i)
{
unsigned int j=0;
for(;i>0;i--);
{
for(j=0;j<333;j++)
{
;
}
}
}
void delay(unsigned int i)
{
unsigned int j=0;
for(;i>0;i--); \这条错了,;i〉0前面少了什么。--------这个可以真的省略的
{ \这个括号有必要吗---------------------这个没影响,主要为了规范
for(j=0;j<333;j++)
{
; \ 这里面什么内容嘛-------------------空操作
}
delay函数没问题的,我的疑问在于怎样访问外部IO或RAM,
#define PA8255 XBYTE[0xfff8]
PA8255=0x07;这样访问不行吗?
一周热门 更多>