单片机
返回首页

电机转速信号的单片机测量程序

2017-09-09 来源:eefocus

  1. #include   

  2. #include   

  3. #include   

  4. #define uchar unsigned char  

  5. #define uint unsigned int  

  6. // 定义8253的寄存器地址  

  7. #define     COM XBYTE[0x6000]   // 定义8253的控制字寄存器地址  

  8. #define     C0 XBYTE[0x0000]    // 定义8253的计数器0寄存器地址  

  9. #define     C0I XBYTE[0x1000]  

  10. sbit P1_7=P1^7;  

  11. uint BUF810;  

  12. uchar h,l,a,b,c,sendflag,FREQ;  

  13.   

  14. //主函数,初始化定时器和片外寄存器  

  15. void main(void)  

  16. {  

  17.     EA=1; PT0=1;  

  18.     ET0=1;  

  19.     IT0=1;IT1=1;  

  20.     EX0=1;EX1=1;ET2=1;  

  21.     T2CON=0x08;  

  22.     TMOD=0x21;  //用定时器0产生2s的中断信号,为8253计数提供门控。  

  23.     TH0=-1000/256;    

  24.     TL0=-1000%256;  

  25.       

  26.       

  27. // 向8253R中的控制字寄存器中选择计数器0,并对其幅初值0;  

  28. COM=0x30;  

  29.     C0=0;C0=0;  

  30. TR0=1;  

  31.     sendflag=1;  

  32.     while(1){}  

  33. }  

  34.   

  35. /* 定时计数器0的中断服务子程序 */  

  36. void timer0(void)  interrupt 1 using 1  

  37. {  

  38. TH0=-1000/256;                          // 定时器T0的高四位赋值  

  39. TL0=-1000%256;  

  40. FREQ=FREQ+1;                        // 定时器T0的低四位赋值  

  41. if (FREQ==1000)                     // 1秒判断  

  42.     {  

  43. FREQ=0;  

  44. P1_7=!P1_7;                     // 信号输出端口取反  

  45. COM=0x00;                       //计数器0闩锁操作  

  46. l=C0;                           //分别读取高、低8位的数据  

  47. h=C0;  

  48. BUF810=-(h*256+l);  

  49. COM=0x30;  

  50. C0=0;C0I=0;  

  51.     }  

  52. }   


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 短波AM发射器电路设计图

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章