|
一个很实用的单片机做万用表的仿真带电阻,电流,电压和,容的测量,功能十分强大,在此分享给51黑电子论坛的朋友们.
下面是万用表proteus仿真的部分单片机源程序(完整代码和仿真工程文件请下载本帖最后的附件):
- #include<reg52.h>
- #include"LCD.h"
- #include"Delay.h"
- #include"AD.h"
- #include<measure_define.h>
- #include<KEY_FUNCTION_DEFINE.H>
- #include<Cap_define.h>
- void ININT_int1(void);
- extern uchar key_number;
- extern uchar disp_value[5];
- void main(void)
- {
- uchar num=0;
- s1=0;
- s2=0;
- s3=0;
- key_number=1; //初始化按键的值为0
-
- LcdInit(); //LCD1602有初始化
- WriteCom(0x80+0x46); //1602第二行显示 value=00000v
- for(num=0;num<5;num++)
- {
- WriteData(disp_value[num]);
- Delay(10);
- }
- ININT_int1(); //外部中断1的初始化
- Tmie0_init(); //定时器0的初始化
-
- while(1)
- {
- if(key_number==1) //按键值为1
- {
- DC_VOL_measure(); //直流电压的测量
- }
- if(key_number==2) //按键值为2
- {
- AC_VOL_measure(); //交流电压的测量
- }
- if(key_number==3) //按键值为3
- {
- Circuit_measure(); //电流的测量
- }
-
- if(key_number==4) //按键值为4
- {
- Res_measure(); //电阻的测量
- }
-
- if(key_number==5) //按键值为5
- {
- WriteCom(0x01); //清屏
- Cap_disp_init(); //电容显示初始化
- Cap_measure(); //电容的测量
- } /**/
-
- }
- }
复制代码
|
|