欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
AT89C51與8253A計(jì)數(shù)器連接,不知問題出在哪?
[打印本頁]
作者:
奮斗前行
時(shí)間:
2014-11-8 21:13
標(biāo)題:
AT89C51與8253A計(jì)數(shù)器連接,不知問題出在哪?
上面那個(gè)8253A的3個(gè)計(jì)數(shù)器全用,下面的那個(gè)8253只用計(jì)數(shù)器0。每個(gè)計(jì)數(shù)器的gate腳通過脈沖信號選中,就會(huì)對時(shí)鐘脈沖進(jìn)行計(jì)數(shù)。仿真使用虛擬串口通信時(shí),串口助手得到的數(shù)據(jù)不變是怎么回事,這是做實(shí)驗(yàn)要用的一個(gè)電路,糾結(jié)老長時(shí)間了,實(shí)在不知道錯(cuò)在哪,編譯沒錯(cuò),求高手指導(dǎo)8253的使用或者給出以前做過的項(xiàng)目的例子,小弟在此謝過!程序如下:
01.jpg
(659.7 KB, 下載次數(shù): 82)
下載附件
電路圖
2014-11-8 21:05 上傳
#include<reg51.h>
#include<ctype.h>
#include<intrins.h>
#include<stdio.h>
#include<string.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uint dat,dat1,data1,data2,data3,data4;
sbit P32=P3^2 ;
void Init_com()
{
TMOD=0x21; //設(shè)定計(jì)數(shù)器1為模式2,定時(shí)器T0工作模式1
SCON=0x50;
PCON=0x80; //波特率加倍
TH1=0xE8;
TL1=0xE8; //設(shè)定波特率為4800,定時(shí)器T1自動(dòng)重新裝載定時(shí)初值
TR1=1; //啟動(dòng)計(jì)數(shù)器
ES=0;
TH0=47104/256;
TL0=47104%256;
EA=1;
ET0=1;
TR0=1; //上面是定時(shí)器T0的初始化程序
}
void send(dat)
{
SBUF=dat/256;
while(!TI);
TI=0; //RI 清零。
SBUF=dat;
while(!TI);
TI=0; //RI 清零。
}
void main()
{
P32=0;
XBYTE[0x7FFF]=0x32; //對計(jì)數(shù)器1寫入控制字并賦初值
XBYTE[0x7FFC]=65535;
XBYTE[0x7FFF]=0x72; //對計(jì)數(shù)器2寫入控制字并賦初值
XBYTE[0x7FFD]=65535;
XBYTE[0x7FFF]=0xB2; //對計(jì)數(shù)器3寫入控制字并賦初值
XBYTE[0x7FFE]=65535;
XBYTE[0xBFF7]=0x32; //對計(jì)數(shù)器4寫入控制字并賦初值
XBYTE[0xBFF3]=65535;
P32=1;
Init_com(); //串口初始化
while(1)
{}
}
void timer0() interrupt 1
{
P32=0; //輸出信號控制晶體管的開斷,實(shí)現(xiàn)對各計(jì)數(shù)器的復(fù)位
data1=65535-XBYTE[0x7FFC];
data2=65535-XBYTE[0x7FFD];
data3=65535-XBYTE[0x7FFE];
data4=65535-XBYTE[0xBFF3]; //XBYTE[0xAFF3]
send(data1); //發(fā)送計(jì)數(shù)數(shù)據(jù)
send(data2);
send(data3);
send(data4);
TH0=55536/256;
TL0= 55536%256;
P32=1; //開通各計(jì)數(shù)器
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1