你会看到这个提示,那是因为你的系统无法识别某栏目的模型信息,或者你新建模型后,没为这个模型设计单独的模板。不同模型的文档浏览页的模板为:article_模型名字标识.htm
如“article_article.htm”,更多的信息你可以在频道模型管理的地方查看。
操作系统 内容:
模板调用标记:
|
Win2003,WinXP,Win2000,Win9X |
详细介绍 内容:
模板调用标记:
|
本项制作直接利用STC12C5A60S2单片机自带的AD转换器。能够测试0-5V电压的数字电压表表头,并有OLED模块显示数值。正好手头有这两个小东西,寻思着可以做个什么小东西玩玩。


这是STC12模块

这是OLED模块
测试效果

测量模块GND电压

测量模块3.3V电压

测量模块5V电压(用电压表实际测试电压为4.5V)
主程序
#include <STC12C5A60S2.H> #include <intrins.h> #include "oled.h" float V = 0; u32 L = 0; u8 d[5]; /********************************************************************************************* /*********************************************************************************************/ u32 Read(u32 CHA) { u8 AD_FLAG = 0; /**************************************************************************/ CHA &= 0x07; ADC_CONTR = 0x40; _nop_(); ADC_CONTR |= CHA; _nop_(); ADC_CONTR |= 0x80; delay_ms(3); /****************************************************************************/ ADC_CONTR |= 0x08; _nop_(); _nop_(); _nop_(); _nop_(); while(AD_FLAG == 0) { AD_FLAG = (ADC_CONTR & 0x10); } ADC_CONTR &= 0xe7; return(ADC_RES*4+ADC_RESL); } /*********************************************************************************************/ /********************************************************************************************* /*********************************************************************************************/ void transfer(void) { V = Read(0x00)*4.321; L=V; d[1] = L / 1000; L = L % 1000; d[2] = L / 100; L = L % 100; d[3] = L / 10; d[4] = L % 10; } /*********************************************************************************************/ void main(void) { AUXR = 0x00; P1M0 = 0xff; P1M1 = 0x00; P1ASF = 0xff; OLED_Init(); OLED_Clear(); OLED_Clear(); OLED_ShowCHinese(18,0,0); OLED_ShowCHinese(36,0,1); OLED_ShowCHinese(54,0,2); OLED_ShowCHinese(72,0,3); OLED_ShowCHinese(90,0,4); while (1) { transfer(); OLED_ShowCHinese(5,4,5); OLED_ShowCHinese(23,4,6); OLED_ShowCHinese(41,4,7); OLED_ShowChar(59,4,58); OLED_ShowNum(67,4,d[0],1,16); OLED_ShowNum(75,4,d[1],1,16); OLED_ShowChar(83,4,46); OLED_ShowNum(91,4,d[2],1,16); OLED_ShowNum(99,4,d[3],1,16); OLED_ShowNum(107,4,d[4],1,16); OLED_ShowChar(115,4,86); OLED_ShowString(20,6,"2017/11/21"); delay_ms(500); } } 其他程序在压缩包里。 |
(责任编辑:admin) |