头像-30280

奋斗前行

  • 陕西省西安市
  • 单片机
  • 科研教育

个人成就

获得 0 次赞

帮助过0人

计数器8253A

对8253的各计数器写控制字和初值,直接按下面这种写法行不行,汇编中是先写低8位,再写高8位,我用C一次写入初值行不行? XBYTE[0x7FFF]=0x32;             //对计数器1写入控制字并赋初值     XBYTE[0x7FFC]=2535;     XBYTE[0x7FFF]=0x72;             //对计数器2写入控制字并赋初值     XBYTE[0x7FFD]=65535; XBYTE[0x7FFF]=0xB2;             //对计数器3写入控制字并赋初值 XBYTE[0x7FFE]=65535;     XBYTE[0xBFF7]=0x32;             //对计数器4写入控制字并赋初值       XBYTE[0xBFF3]=5535; */ 还有就是读数据时,我用C一次性直接读取出来,如下所示。但是汇编中也是先读低8位,再度高8位。到底在C中怎么编程才可以?现在运行后读出的数据一致是同样的,没变化,怎么搞,求指导! data1=65535-XBYTE[0x7FFC];      data2=65535-XBYTE[0x7FFD];      data3=65535-XBYTE[0x7FFE];      data4=65535-XBYTE[0xBFF3];      send(data1);      send(data2);      send(data3);      send(data4)  

8253A计数器与单片机AT89C51连接使用,使用C编程

如上图所示,计算出来的8253A(上片那片芯片)个端口地址为:0x7FFFC-0x7FFF,请问下面这样给它写控制字和初值,以及最后读取计数器的数据对吗? XBYTE[0x7FFF]=0x32;             //对计数器1写入控制字并赋初值     XBYTE[0x7FFC]=65535;     XBYTE[0x7FFF]=0x72;             //对计数器2写入控制字并赋初值     XBYTE[0x7FFD]=65535; 假设计数一段时间后要读取计数器里面的数据并运算,下面的操作对不对? data1=65535-XBYTE[0x7FFC];  data2=65535-XBYTE[0x7FFD];

AT89C51与PC串口通信

该电路图对应的程序如下: #include unsigned char dat,dat1; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容  unsigned char code table[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,}; //1~10,LED共阴极连接 unsigned char code a[4]={0xfe,0xfd,0xfb,0xf7}; sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; sbit P23=P2^3; void Init_com() { TMOD=0x20;    //设定计数器1为模式2     SCON=0x70; PCON=0x40; //波特率加倍 TH1=0xF4; TL1=0xF4;   //设定波特率为4800 TR1=1;       //启动计数器 //IE=0x90; } void Delay(unsigned int tc) //延时程序 { while( tc != 0 ) {unsigned int i; for(i=0; i