仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
一、总述
二、总体设计
三、所需元器件及个数:
四、各模块功能
1、控制模块:
2、放大模块:
五、 参考文献
六、附录
1、整体电路图
2、单片机驱动代码
- #include<reg52.h>
- #include <intrins.h>
- #include "codetab.h"
- #include "LQ12864.h"
- #define uchar unsigned char
- #define uint unsigned int
- uint n,n3,n4;
- unsigned long int temp1;
- unsigned long int nnn;
- uchar xianshi1[]="Fre: 00000HZ";//第一行显示
- sbit PWM1=P1^7;
- uchar count;
- uchar jd=0;
- bit biaozhi;
- uchar dang;
- uchar yanshi;
- //------------------------------------------------------------
- void timer0_inti(void)//定时器TO中断初始化
- {
- TMOD=0X52;//工作模式设置 T1计数 T0 定时
- TH0=TL0=(256-200);
- TH1=0;
- TL1=0;
- EA=1;//开总中断
- ET0=1;//开定时器0中断
- ET1=1;//开定时器1中断
- TR0=1;
- TR1=1;
- }
- //------------------------------------------------------------
- void main()
- {
- delay(200);// 延时小会让液晶上电
- timer0_inti(); // 中断初始化
- OLED_Init(); //OLED初始化
-
-
- while(1)
- {
- xianshi1[9]=temp1/10000%10+0x30;
- xianshi1[10]=temp1/1000%10+0x30;
- xianshi1[11]=temp1/100%10+0x30; // 转换转速千位 下面分别是 百 个 十
- xianshi1[12]=temp1/10%10+0x30;
- xianshi1[13]=temp1%10+0x30;
- OLED_P8x16Str(0,3,xianshi1);
-
- }
- }
- void time0(void) interrupt 1
- {
- PWM1=!PWM1;
- n3++;
- if(n3==5000)//时间计数 //
- {
- n3=0;
- temp1=((n4*65536)+(TH1*256+TL1)); //这样就得到1秒;
- n4=0;TH1=0;TL1=0;
- }
- }
- void timer1(void) interrupt 3 using 3 //定时器计数中断
- {
- TH1=0;
- TL1=0;
- n4++;
- }
复制代码
全部资料51hei下载地址:
2020-12-11 简版OLED.zip
(126.63 KB, 下载次数: 115)
|