单片机实验报告 班级:自动0903 姓名: 一. 软件实验 实验题目:脉冲计数(定时/计数器实验) 1, 实验目的:熟悉单片机内部定时/计数器功能,掌握初始化编程方法
2, 实验内容:把外部中断0 输入的脉冲进行计数,并送数码管显示
仿真电路图如下所示:设定频率发生器为50Hz 程序如下: #include sbit P2_0=P2^0; //数码管选定位 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; unsigned int motorspeed; unsigned char GE,SHI,BAI,QIAN; unsigned int counter=0; //脉冲数 unsigned int calsp; //设定多长时间计算一次 void display(); //数码管显示 void delay(); //延迟函数 void calspeed(); void main() { EA=1; //开启总中断 EX0=1; //开启外部中断0 IT0=1; //设置成下降沿触发方式 TMOD=0x01; //设置定时器0 为模式1,即16 位计数模式 TH0=(65536-10000)/256; //计数时间为10ms TL0=(65536-10000)%256; ET0=1; //开启定时器0 中断 TR0=1; //启动定时器0 P2=P2&0xf0; while(1) { display(); calspeed(); } } void calspeed() { if(calsp>=100) //