STC12c5a60s2 AD+12864液晶驱动 有图有真相
首先声明不是马甲!老在论坛中看到有人对stc的jj,评价的如何的差。因为工程需要选型stc12c60s2 的片子,在此客观公正的评价stc的产品。在此鄙视那些只会照抄别人的程序还jjyy的人。
客户要求:要做一个成本最低(<=10元)的AD采样电压表(测量范围0-5v)。要求进度到小数点后一位。并且要求能够双串口通信(TTL信号)。能够未来实现pwm输出。
选型:STC12c5a60s2 淘宝7.5元/片。 一共10片 75元+运费10元 85元 成本8.5元。 晶振+30p 电容两只=1元。 (直接拆旧货市场淘宝板子。40元/公斤。)
程序设计:使用10位AD转换后 取9-2bit结果,经中位值平均滤波器输出最终ad结果 在做转换。人工校准ADVcc。
程序ok后运行测试如下。http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592445RCHKHY.jpg
(原文件名:101024A000.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592446PDGFY9.jpg
(原文件名:101024A001.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592447Z75V6L.jpg
(原文件名:101024A002.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592448WIZX5F.jpg
(原文件名:101024A003.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592449GSSPHP.jpg
(原文件名:101024A004.jpg)
采样数据经串口输出AD_REG值,和滤波输出值比较。串口数据格式:channel+ad_reg+filter+0d+0a
实际运行后得出的结论,1、stc芯片确实存在ad采样数值的漂移,但是漂移的程度远远没有达到传说中的乱跳的情况。现对来说stc的ad输出甚至比我的滤波函数处理过的输出值稳定点。当然前提是硬件电路设计时需要认真考虑稳压设计。我用的是lm2596ADJ供电。
2、stc 的串口下载不稳定的问题肯定没有。实际测试我每次调试均从新串口下载,用老y提供的软件。3小时内下载了59次。没有一次失败。倒是下载软件ver4.86曾经自己推出过。这是以前在ver 4.80上没有出现过的。当然我的rs232接口芯片采样的是正规的max芯片外接电容使用的是10uF。串口是pcmaci扩展出来的。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592451ZI9JSJ.jpg
(原文件名:串口isp.jpg)
3.在驱动液晶片没有传说中的乱码出现,我试过8bit并口输出,和spi三线输出均未出现液晶乱跳(st7920控制器)。液晶是便于调试用的,呵呵不计入客户成本。我淘宝的一片就50元啊。驱动自己写的。
最后推荐一下论坛里清风大哥的51 0-40v可调电源。我的输出显示屏就是借鉴他的硬件设计,嘿嘿我也是照抄的典型。另外希望清风大哥多搞点51的东东。毕竟成本好低啊。
程序结构上我比较推荐安徽师范大学Lyzhangxiang的EasyHW OS结构设计。结构层次分明,不论是老鸟、菜鸟一看就懂。毕竟混乱的程序代表混乱的硬件设计,二者相加就是失败的产品。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592450F744HU.jpg
(原文件名:程序.jpg)
一句话客观的评价老y的风格:感谢CCTV电视剧插播广告的创意模板,给了老y以灵感!datasheet插播广告,确实恶心。
最后还是要感谢老y,嘿嘿,毕竟老y还是咱中国人,山寨了一个51jj,才使我等没钱的主,踏上数字时代的快车,什么河洛编程器,在线仿真仪,laoz都扔掉,一样搞开发。 附上测试程序,设计商品开发源码占时不发,发个hex。供给位看客测试。
点击此处下载 ourdev_592466G4ILF9.rar(文件大小:2K) (原文件名:ut60电压表.rar)
引脚定义 p1.0 AD 直接输入,
sbit CS=P2^2; //LCD12864串行通信片选
sbit SID=P2^1; //LCD12864串行通信数据口
sbit SCLK=P2^0; //LCD12864串行通信同步时钟信号
//sbit PSB=P2^5; //LCD12864并/串选择:H并行 L串行
//LCD12864并/串选择:H并行 L串行硬件设计上 psb用跳线帽选择 串并模式。
#define FOSC 22118400L //系统时钟22.1184Mhz
#define BAUD 9600 //波特率
#define AD_int_Vcc506 //实测芯片供电Vcc=5.06V
#define filter_N 12 //滤波参数选择12
//-----------------AD采样--------------------老y自己给的ad测试代码 直接照搬。
unsigned char GetADCResult(unsigned char ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_(); //Must wait before inquiry
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag
ADC_CONTR &= ~ADC_FLAG; //Close ADC
return ADC_RES; //Return ADC result
} 你这个AD只用了8Bit,还要把低两位加上.
看错了,你只要小数点后一位啊 小狂……呵呵 继续测试 stc12c5a60s2,一样的板子一样的电路,gps 显示终端。测试并口写12864。
修改引脚定义。
#define LCD_DATA P0 //LCD的数据口
sbit LCD_BUSY=LCD_DATA^7;//LCD忙信号位
//-----------LCD 控制信号------------------------
sbit LCD_EN= P2^0; //LCD使能信号
sbit LCD_RW= P2^1; //LCD读写控制
sbit LCD_RS= P2^2; //LCD寄存器选择H=data; L=command;
sbit LCD_CS1 = P2^3;
sbit LCD_CS2 = P2^4;
sbit LCD_CS3 = P2^5;
sbit LCD_RST = P2^6; //Reset Signal 低电平有效
sbit LCD_PSB = P2^7; //PSB跳线选择工作方式 H=并口; L=串口;
测试效果http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592490TTHBV2.jpg
(原文件名:101024A000.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592491P6SOJX.jpg
(原文件名:101024A001.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592492ZGWVJ8.jpg
(原文件名:101024A002.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592493WT0CU0.jpg
(原文件名:101024A003.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592494O76EF9.jpg
(原文件名:101024A004.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592495W8K58J.jpg
(原文件名:101024A005.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592496KVB5O9.jpg
(原文件名:101024A006.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592497J4Z1B2.jpg
(原文件名:101024A007.jpg)
gps显示器hex 文件。
点击此处下载 ourdev_592498ZH7NBR.rar(文件大小:6K) (原文件名:gps_c51_display_12864.rar)
用串口助手打开直接文件输出用的调试gps语句。
gps 调试测试用文件ourdev_592499ULR2G5.txt(文件大小:30K) (原文件名:nmea.txt) 你这程序有这么机密吗?楼主AD和显示部分程序是否是参考这里的,http://blog.csdn.net/djimon/archive/2010/08/29/5848284.aspx
基本改都没改呀,呵
/****************************************************************************
* 文件名:AD_CAIYANG.C
* 功能:使用AD采集电压显示在LCD
* 说明:转自网络,本人验证通过
****************************************************************************/
#include<STC12C5A60S2.H>
#define uint unsigned int
#define uchar unsigned char
sbit CS=P2^0; //LCD12864串行通信片选
sbit SID=P2^1; //LCD12864串行通信数据口
sbit SCLK=P2^2; //LCD12864串行通信同步时钟信号
sbit PSB=P2^5; //LCD12864并/串选择:H并行 L串行
unsigned int temp1,sh1,ge1,n1,m1;
unsigned char ad_result_data; //AD转换高八位
unsigned char ad_result_low2; //AD转换低八位
unsigned char ad_result_total; //AD转换总十位
unsigned char ad_average_result; //AD转换十次的平均值
unsigned char Ain,Vin;
unsigned char b,t,R;
char tp=0;
unsigned char code ma1={0xb5,0xe7,0xd1,0xb9,0xa1,0xc3}; //电压:
unsigned char code ma2[]={"."};
uchar code disp1[]={"提示: 按1 键进入"};
uchar code disp2[]={"功能选择界面. "};
unsigned char code num0[]={0xa3,0xb0};
unsigned char code num1[]={0xa3,0xb1};
unsigned char code num2[]={0xa3,0xb2};
unsigned char code num3[]={0xa3,0xb3};
unsigned char code num4[]={0xa3,0xb4};
unsigned char code num5[]={0xa3,0xb5};
unsigned char code num6[]={0xa3,0xb6};
unsigned char code num7[]={0xa3,0xb7};
unsigned char code num8[]={0xa3,0xb8};
unsigned char code num9[]={0xa3,0xb9};
//-------模块延时程序---------------------------- 1ms
void delay1ms(uint delay1ms) //STC11F60XE,22.1184M,延时1ms
{
uint i,j;
for(;delay1ms>0;delay1ms--)
for(i=0;i<7;i++)
for(j=0;j<210;j++);
}
void delay(uint delay) //STC11F60XE,22.1184M,延时170us
{
uint i,j;
for(;delay>0;delay--)
for(i=0;i<124;i++);
for(j=0;j<124;j++);
}
/*******************************************************
AD转换程序
*******************************************************/
void AD_initiate() //初始化函数
{
ES=0;
TMOD=0x21; //定时计数器方式控制寄存器,"自动重装,16位计数器".
SCON=0x50; //串行控制寄存器,方便在串口助手那观察
TH1=0xfa;
TL1=0xfa;
TR1=1;
}
void ADC_Power_On() //AD转换电
{
ADC_CONTR|=0x80;
delay(5); //必要的延时
}
void get_ad_result() //取AD结果函数,它是十位AD转换,每十次平均,最后取低八位作为AD采样数据
{
uint i,q=0;
for(i=0;i<10;i++)
{
tp=0;
ADC_RES=0; //高八位数据清零,STC12C5A60S2 AD数据寄存名与STC12C54××系列不同
ADC_RESL=0; //低两位清零
ADC_CONTR|=0x08; //启动AD转换
while(!tp) //判断AD转换是否完成
{
tp=0x10;
tp&=ADC_CONTR;
}
ADC_CONTR&=0xe7;
ad_average_result=ADC_RES;
q=q+ad_average_result;
}
ad_average_result=q/10;
//ad_average_result=ad_average_result*4*5000/1024;
}
/************************AD转换结束***********************/
void send_ad_result() //取AD结果函数发送到串口,方便调试
{
SBUF=n1;
while(TI==0) ;
TI=0;
delay1ms(100);
//SBUF=R>>4;
}
//---------------------电压采样程序-------------------------
void caiyangP10() //测电压
{
P1M0|=0x01; //设P1_0为开漏模式 如: P1_0= #00000000B
P1M1|=0x01;
ADC_CONTR=0xe0; //设置P1.0为输入AD转换口
delay(2);
get_ad_result(); //取转换数据
Vin=ad_average_result;
R=Vin;
}
/*-----------写控制字到LCD12864------------*/
void write_cmd(uchar cmd)
{
uchar i;
uchar i_data;
i_data=0xf8; //命令控制字:11111000写指令 11111010写数据 11111100读状态 11111110读数据
CS=1; //片选置高,才能进行读写操作
SCLK=0;
/*----------写命令控制字-----------------*/
for(i=0;i<8;i++) //循环八次,每次读取一位数据
{
SID=(bit)(i_data&0x80); //bit表示取其最高位
SCLK=0;
SCLK=1; //正跳变写入指令
i_data=i_data<<1; //左移一位
}
/*---------------------------------------*/
/*----------写指令高四位-----------------*/
i_data=cmd;
i_data=i_data&0xf0; //把低四位置0
for(i=0;i<8;i++) //循环八次,每次读取一位数据
{
SID=(bit)(i_data&0x80); //bit表示取其最高位
SCLK=0;
SCLK=1; //正跳变写入指令
i_data=i_data<<1; //左移一位
}
/*---------------------------------------*/
/*----------写指令低四位-----------------*/
i_data=cmd;
i_data=i_data<<4; //左移四位,把低四位的数据移到高四位,再把低四位置0
for(i=0;i<8;i++) //循环八次,每次读取一位数据
{
SID=(bit)(i_data&0x80); //bit表示取其最高位
SCLK=0;
SCLK=1; //正跳变写入指令
i_data=i_data<<1; //左移一位
}
/*-----------------------------------------*/
CS=0; //把片选置低
delay1ms(5); //延时是因为没有进行忙检测,适当的延时可以不进行忙检测
}
/*-----------------------------------------*/
/*------------写数据到LCD12864-------------*/
void write_dat(uchar dat)
{
uchar i;
uchar i_data;
i_data=0xfa;
CS=1;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=dat;
i_data=i_data&0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=dat;
i_data=i_data<<4;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
delay1ms(5);
}
/*-----------------------------------------*/
/*--------------显示坐标-------------------*/
void lcd_pos(uchar x,uchar y) //汉字显示坐标,x为哪一行,y为哪一列
{
uchar pos;
if(x==0)
x=0x80; //第一行
else if(x==1)
x=0x90; //第二行
else if(x==2)
x=0x88; //第三行
else if(x==3)
x=0x98; //第四行
pos=x+y; //显示哪一行(总共有4行)哪一竖(总共有8竖,每16列为1竖)
write_cmd(pos);
}
/*-----------------------------------------*/
/*--------------显示8个汉字-------------------*/
void disp_hanzi(uchar code *chn)
{
uchar i;
write_cmd(0x30); //基本指令操作方式
for(i=0;i<16;i++) //16列*8个汉字=128(刚好)
write_dat(chn);
}
/*-----------------------------------------*/
/*--------------显示数字-------------------*/
void disp_num(uchar code *chn)
{
uchar i;
write_cmd(0x30); //基本指令操作方式
for(i=0;i<2;i++) //1个数字
write_dat(chn);
}
void disp_number(uchar num)
{
switch(num)
{
case 0: disp_num(num0);break;
case 1: disp_num(num1);break;
case 2: disp_num(num2);break;
case 3: disp_num(num3);break;
case 4: disp_num(num4);break;
case 5: disp_num(num5);break;
case 6: disp_num(num6);break;
case 7: disp_num(num7);break;
case 8: disp_num(num8);break;
case 9: disp_num(num9);break;
default: break;
}
}
/*----------- --LCD初始化------------------*/
void lcd_init()
{
PSB=0;
write_cmd(0x30); //基本指令
write_cmd(0x02); //地址归位
write_cmd(0x06); //游标右移
write_cmd(0x0c); //整体显示
write_cmd(0x01); //清屏
}
/*-----------------------------------------*/
void displayP10()
{
float ad1;
//unsigned int temp1,sh1,ge1,n1,m1;
//uchar code dis2[]={0x01,0x02,0x00};
//ad1=x*7.8125; //电压修正
uchar i;
ad1=Vin*3.9608; //具体线性参数由输入电压值调整,该值的测量范围为0-10.00V,5V左右的测量比较准确,
//两端的最大误差为70mv,其他一般在40mv以内
temp1=(int)ad1;
sh1=temp1/1000; //十位
ge1=(temp1%1000)/100; //个位
n1=((temp1%1000)%100)/10; //小数点后一位
m1=((temp1%1000)%100)%10; //小数点后二位
//write_cmd(0x01);
write_cmd(0x30); //基本指令操作方式
lcd_pos(0,0);
for(i=0;i<6;i++) write_dat(ma1);
lcd_pos(0,3);
disp_number(sh1);
lcd_pos(0,4);
disp_number(ge1);
lcd_pos(0,5);
for(i=0;i<2;i++) write_dat(ma2);
lcd_pos(0,6);
disp_number(n1);
lcd_pos(0,7);
disp_number(m1);
/*lcd_pos(2,0);
disp_hanzi(disp1);
lcd_pos(3,0);
disp_hanzi(disp2);*/
}
void main()
{
EA=1;
AD_initiate(); //初始化
ADC_Power_On(); //开AD电源
//init();
lcd_init();
delay(10);
while(1)
{
caiyangP10(); //测电压
send_ad_result();
//Vin=Vin*4007;
displayP10();
delay(10);
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/djimon/archive/2010/08/29/5848284.aspx ok,最终老y的stc12c560s2 通过。还是不错的。毕竟比我以前用的77e58 89s52实现作品要便宜的多。
嘿嘿,在上两张pp,猜猜显示成这样是这么弄的?幻影显示。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592506INCJHI.jpg
(原文件名:101024A000.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_592507RYEZ7J.jpg
(原文件名:101024A002.jpg)
最后还是和老y撇清关系,我不是老y的马甲,fns。就是冲着老y的东东便宜去的。不知道老y能否搞出stc stc-telin 808x986 四核睿库,9.9元/片。那我等就能笑的死去活来了。 实话实说,老妖怪的东西就是便宜实惠,而且从来没有缺货的问题.只是他的那个数据手册可谓全球首创了,第一次看到差点吐血,还以为下载错了,还有那个网站,实在是汗,不仔细看还以为是木马网站
不过好像现在最新的12系列的数据手册改正收敛了1点,前几天下载了看看,好像在众怒之下改正了,貌似没有那么多广告了 噢,搞错,是最新15系列那个中文手册,收敛了很多了 不错···· 回复【9楼】litteworm
-----------------------------------------------------------------------
你店里那个USB吸尘器是否适合于阿莫雕刻机吸尘? 1602还在乱飞中弟一行正常 弟2行见鬼去了 回复【8楼】skynet 青青草原
噢,搞错,是最新15系列那个中文手册,收敛了很多了
-----------------------------------------------------------------------
专门去看了下,感觉会好点 希望从15系列开始,数据手册会慢慢正规 STC单片机中ADC的参考电压是从哪里来的?好像是VCC吧,就这点不靠谱。 回复【14楼】XA144F
-----------------------------------------------------------------------
参考电压的解决办法:连解两个方程
adc_reg1=1024*Vin/Vcc P1.0输入
adc_reg2=1024*Vtl431_ref/Vcc P1.1输入
getadc(P1.0adc,P1.1adc) 当然这个不是实时的至少有10个t的延时。 mark 感谢5楼!
我马上也要做一个STC12C5A60S系列的单片机的开发板!这次打算选用的型号为STC12C5A08S2,呵呵。到时候可以参考上面的5楼代码了。
选用此芯片也是因为这个呆AD的缘故。呵呵。 原来用STC12C5A60S2做重量采集,飘得厉害,能飘近10个字。用示波器看VCC波形和ADC输入波形很稳定,一点问题都没有,可是就是乱飘,后来用50次采集求平均值都没有用,真是见鬼了。
<font color=red> 后来给应变桥的铝体接地,不漂了,稳定在1-2个字。郁闷死。 ding 回复【18楼】oufuqiang 欧福强
原来用stc12c5a60s2做重量采集,飘得厉害,能飘近10个字。用示波器看vcc波形和adc输入波形很稳定,一点问题都没有,可是就是乱飘,后来用50次采集求平均值都没有用,真是见鬼了。
<font color=red> 后来给应变桥的铝体接地,不漂了,稳定在1-2个字。郁闷死。</font>
-----------------------------------------------------------------------
我的无地方接地用的是 LM35~~~~ 飘阿飘 24~27 度飘阿飘 我用的Atmega32,内部参考电压2.57V,也是测量LM35,使用16点平滑滤波,根本不跳动了,哈哈。 回复【20楼】jrcsh邪恶的小会会
-----------------------------------------------------------------------
程序中添加中位值平均滤波啊,可以防脉冲干扰。50次采集求平均值是算数均值滤波法。
附:算数均值滤波法优点:这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。注意是某一数值上下波动。
以你的数值乱跳来看是脉冲干扰。数字采样必须用滤波函数处理,否则嘿嘿。我试过传说中的10中滤波方法,对于stc的adc能够兼顾速度程序空间的话最好的就是中值平均法。 为什么“北纬”的“北”容易闪成“61‘ 后面的数字太长了,LCD的显示自动回绕了 继续测试stc12c5a60s2的ad,对于老y的stc12c5a60s2单片机,再次尝试ad,pwm,timer0,timer1,uart1,uart2,键盘扫描同时使用到。总结:
1、发现ad采样数值漂的问题,确实存在(前提是使用线性电源),不过加在调用滤波函数后,非常稳定,在此与各位分享心得。首先stc的pz,因为ad用的是单片机的vcc 所以必须在电源上选择硬件滤波,我用安泰信的可调线性电源调试时滤波函数,N取12时还是飘,同样的电路用IBM 1u机箱上拆下的atx电源供电后,测试电源的3.3v输出组,滤波函数调用和不调用AD的输出值是一样的,非常稳定。同样在ad取样上切换引脚的话一样的需要等待几个时钟周期,才能稳定。
2、所谓的stc的单片机不能接液晶的问题也发现了,在显示时会出现偶尔会出现乱码。估计是stc片子内部存储器为了和51的兼容,因此在使用idata时,必须考虑到堆栈地址的问题,这个在新版的谣言中提到,顺便说下,新版谣言没有恶心的广告了,而且居然也学会在pdf中加水印了。
3、stc作为超频的51,在运算速度上确实快了不少。这点在滤波函数上体现出来,对比过传说的avr和stc跑同样的滤波函数耗时基本一样。4、对比编译器的效率,keil4的比avr的所有编译器效率高,也就是说同样的C函数对于avr的icc也好gcc也好,编译后执行效率反而低于传统的51片子。当然除非使用汇编的话,avr的高速才能体现出来。
题外话:是谁说的avr的引脚厉害,接高电压没有问题。我的atmega16L就是测量一个6v左右的脉冲挂了。mmd。损失12块啊。以后谁在说avr的引脚可以直接测量高于vcc的信号,就赔我一片atmega16.
封贴。。。。。。。 我还是要继续玩我的超频c300a,哦是超频51cpu。 顶一个,作个记号先 只说:可用。 标记啦... mark 看来还是要先把电源部分做好吧,不知道大家用什么IC稳压效果比较好呢? mark学习了~ 回复【22楼】bg8wj
回复【20楼】jrcsh邪恶的小会会
-----------------------------------------------------------------------
程序中添加中位值平均滤波啊,可以防脉冲干扰。50次采集求平均值是算数均值滤波法。
附:算数均值滤波法优点:这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。注意是某一数值上下波动。
以你的数值乱跳来看是脉冲干扰。数字采样必须用滤波函数处理,否则嘿嘿。我试过传说中的10中滤波方法,对于stc的adc能够兼顾速度程序空间的话最好的就是中值平均法。
-----------------------------------------------------------------------
我用了上次数据进行压制 代价就是灵敏度下降 先MARK了.THX! 太好了,终于看到一个同路人了~~ 收藏! mark mark!!! 很好的经验!不过注意keil有个oxfd的bug
别歪打正着以为是stc不能接液晶了! 记录 mark mark 看看! 不错 还带GPS呢 mark mark 0xfd,曠ision,绝对是keil的标志…… 路过 看了一下,现在STC芯片也可能缺货了 话说STC的单片机其实很好用的。 mark 刚好想用这个片子 做温控看着大家说的 我都不敢用了 mark 请教一下!有没有带ad的一些stc89系列的51或52 MARK mark mark 好东西,挺下 mark~ mark~ 不错 mark 强悍 强大呀,学习了 学习学习 mark MARK 马甲 不错 我也在学习中! 我浪费了好多原件啊,学习了 mark一下 顶一下 学习学习 mark MARK mark HAMDING 标记一下,明天再看!! STC AD 12864液晶测试~ mark 顶你一下!!!!!!! 收藏,谢谢分享 MARK 各有各的特点!! mark Mark! 刚用这个片子做了数据采集,采样出来的电压值偏高一点 标记,感谢分享 玛瑞k STC一直在用,还算稳定 不懂。。还虽学习 STC AD 12864液晶测试我正需要用到。 mark 在产品要求不高和要求成本低的情况下还是可以选用STC的,大家别一棍子打死老妖的所有芯片,毕竟是自己家门的产品。 我们一直是用STC的单片机做项目 mark mark LCD12864 说真的,我们产品用的就是stc,没什么不一样, 回复【楼主位】bg8wj
-----------------------------------------------------------------------
mk
页:
[1]
2