附录
附录一:系统总体接线图
39
西安交通大学城市学院本科生毕业设计(论文)
附录二:频率测量子系统流程图
开始定时/计数器T0设置为定时10MS定时/计数器T1设置为计数模式开中断等待定时器T0中断将双字节计数值转换为压缩BCD码将计数值转换为非压缩BCD码取非压缩BCD码查表得段选送数码管显示该位数据对应位选送显示否写显示结束?是结束 附录
附录三:信号显示子系统流程图
开始设置采样点数启动A/D转换器读A/D转换数据并保存否采样结束?是液晶显示起始行设置液晶显示起始列设置取采样值计算得显示页“或”页面地址写入显示值开显示否写显示数据结束?是结束
41
西安交通大学城市学院本科生毕业设计(论文)
附录四:频率测量系统程序清单
/****************************************************************** AT89C51的T0,T1计数器对输入的信号进行频率计数,测量结果用五位数码管 动态显示,要求对0~20KHZ的信号频率进行准确测量,误差不超过5HZ *****************************************************************/ #include
#define uint unsigned int #define A 3 sbit P37=P3^7;
unsigned char num=0;
code unsigned char TAB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; /*显示变量对应的数值*/
/***************定时器0中断服务函数************************/ void timer0()interrupt 1{ TH0=0x3C; TL0=0xB0;//定时50ms num++;//记到20就直接停止 }
/**************************延时函数************************************/ void delay(unsigned char t){ unsigned char i,j; for(i=0;i /*************************显示函数**************************************/ void Display(){ uint number; unsigned char B1,B2,B3,B4,B5;//定义数的各个位,万,千,百,十,个位 number=TH1*256+TL1; B1=number/10000;//万位 B2=number000/1000;//千位 B3=number00/100;//百位 B4=number0/10;//十位 B5=number;//个位 while(1){ if(P37==1) break; P2=0xFE;//显示个位 P0=TAB[B5]; delay(A);
相关推荐: