目录

试题:

一、自己写的代码:

1、问题总结:(自己没调出来)

2、解决问题:

二、大科代码:


试题:

一、自己写的代码:

1、问题总结:(自己没调出来)

①显示总价出问题:0.1-1.0的时候总价没问题,到后面某个时间之后总价是错的?如:10.00显 示总价02.xx?

②数码管为什么不滚动显示?

2、解决问题:

unsigned char:无符号字节型,char 为1字节 = 8位 范围0-255

unsigned int :无符号常数,int 为2字节 = 16位 范围0-65535

unsigned int  count_water = 0;   //用int 型!!!!char 溢出了!!!

unsigned int  money = 0;  //用int 型!!!

定义w_ge1; w_shi1; w_bai1;   缓存w_ge; w_shi; w_bai 的数据!!!!就可以!!

wu = ; liu = ; qi = ; ba = ;写在中断服务函数里。

#include "reg52.h" //时间02-10  20:40
#include "iic.h"sbit L1 = P0^0;//AD光敏电阻
sbit S7 = P3^0;//出水
sbit S6 = P3^1;//停水unsigned char code SMG_duanma[18] = {//  0   1    2    3    4    5    6    70xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,//  8   9    A10  B11  C12  D13  E14  F150x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,// -16  .170xbf,0x7f};  //共阳数码管unsigned char code SMG_duanmaDot[10] = {// 0.   1.   2.   3.   4.   5.   6.   7.0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,// 8.   9.0x00,0x10};  //数码管(小数点)unsigned char ling, yi, er, san, si, wu, liu, qi;//数码管段选
unsigned char count = 0;
unsigned int count_water = 0;//出水总量(0.1L/s)
unsigned int money = 0;//总价    unsigned char w_ge = 0;
unsigned char w_shi = 0;
unsigned char w_bai = 0;       void InitHC138(unsigned char n)
{switch (n){case 4://LEDP2 = (P2 & 0x1f) | 0x80;break;case 5://蜂鸣器与继电器P2 = (P2 & 0x1f) | 0xa0;break;case 6://数码管位置P2 = (P2 & 0x1f) | 0xc0;break;case 7://数码管段码P2 = (P2 & 0x1f) | 0xe0;break;}
}void Delayms(unsigned int ms)//延时 ms
{unsigned int i, j;for (i = ms; i > 0; i--)for (j = 845; j > 0; j--);
}
/*=================系统初始化=======================================
关闭LED、蜂鸣器与继电器
==================================================================*/
void InitSystem()
{InitHC138(4);P0 = 0xff;InitHC138(5);P0 = 0x00;
}/*=================数码管显示单元===================================
0123:显示费率 X0.50
4567:显示 ①出水总量(按下S7,清除4567,实时显示出水量;再次按下,不影响出水状态,直到按S6) ②总价(按下S6停水后,4567显示总价)
(均保留两位有效数字)
==================================================================*/
void SMG_Bit(unsigned pos, unsigned char dat)//数码管位置、数据
{InitHC138(6);P0 = 0x01 << pos;InitHC138(7);P0 = dat;
}void ShowSMG()//数码管动态显示(出水总量)
{
//0123显示费率:X0.50 SMG_Bit(0, 0xff);//熄灭Delayms(1);SMG_Bit(1, SMG_duanmaDot[0]);//0.Delayms(1);SMG_Bit(2, SMG_duanma[5]);//5Delayms(1);SMG_Bit(3, SMG_duanma[0]);//0Delayms(1);//4567显示出水总量SMG_Bit(4, SMG_duanma[w_bai]);Delayms(1);SMG_Bit(5, SMG_duanmaDot[w_shi]);Delayms(1);SMG_Bit(6, SMG_duanma[w_ge]);Delayms(1);SMG_Bit(7, SMG_duanma[qi]);Delayms(1);
}/*=================按键控制单元=====================================
S7:出水按键 (按下:出水/清除4567(显示实时水量),继电器接通,L10亮再次按下:不影响出水状态,直到按S6)S6:停水按键 (按下:停水/4567显示总价,继电器断开,L10灭)==================================================================*/
unsigned char flat = 0;//标志位
unsigned char w_ge1 = 0; w_shi1 = 0; w_bai1 = 0;
//123
//个位:123 % 10 = 12.3 = 3
//十位:123 / 10 = 12.3 = 12 % 10 = 1.2 = 2
//百位:123 / 100 = 1.23 = 1
void ScanKeys()
{if (S7 == 0){Delayms(5);if (S7 == 0){if (flat == 0){TR0 = 1;//打开中断flat = 1;InitHC138(5);P0 = 0x10;//继电器接通w_ge = 0; w_shi = 0; w_bai = 0; qi = 0;}while(!S7){ShowSMG();//动态扫描数码管}}}
//1234
//个位:1234 % 10 = 123.4 = 4
//十位:1234 / 10 = 123.4 = 123 % 10 = 12.3 = 3
//百位:1234 / 100 = 12.34 = 12 % 10 = 1.2 = 2
//千位:1234 / 1000 = 1.234 = 1   if (S6 == 0){Delayms(5);if (S6 == 0){if (flat == 1){TR0 = 0;flat = 0;InitHC138(5);P0 = 0x00;//继电器断开w_bai = money / 1000;w_shi = (money / 100) % 10;w_ge = (money / 10) % 10;qi = money % 10;}}while(!S6){ShowSMG();//动态扫描数码管}}
}
/*=================定时器0=========================================
100毫升/秒
100毫升 = 0.1L (XX.XX L)
1s = 1000ms = 100 0000us = 20*50000us
==================================================================*/
//unsigned char count = 0;
//unsigned char count_water = 0;//出水总量(0.1L/s)
//unsigned char money = 0;//总价void InitTimer0()//定时器0中断函数(每1s产生一次中断)
{TMOD = 0x01;TH0 = (65535 - 50000) / 256;TL0 = (65535 - 50000) % 256;//  TR0 = 1;ET0 = 1;EA = 1;
}void ServiceTimer0() interrupt 1 //定时器0服务函数
{TH0 = (65535 - 50000) / 256;TL0 = (65535 - 50000) % 256;count++;if (count == 20)//1s{w_ge++;count = 0;if (w_ge == 10){w_shi++;w_ge = 0;if (w_shi == 10){w_shi = 0;w_bai++;if (w_bai == 10){InitHC138(5);P0 = 0x00;w_bai = 5;w_shi = 0;w_ge = 0;qi = 0;TR0 = 0;//关闭定时器}}}}w_ge1 = w_ge; w_shi1 = w_shi; w_bai1 = w_bai;count_water = w_ge1 + w_shi1*10 + w_bai1*100;money = count_water * 5;
}
/*=================AD转换单元=======================================
光敏电阻,亮度值转化为电压,当电压<1.25V L1亮;>1.25V L1灭==================================================================*/
unsigned char ReadAD(unsigned char AIN)
{unsigned char temp;IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(AIN);IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();temp = IIC_RecByte();IIC_Stop();return temp;
}void main()
{unsigned char temp;InitSystem();InitTimer0();while(1){temp = ReadAD(1);ShowSMG();ScanKeys();if (temp < 63.75){InitHC138(4);P0 = 0xfe;}else if (temp > 63.75){InitHC138(4);P0 = 0xff;}}
}

二、大科代码:

#include "reg52.h"
#include "iic.h"sbit S7 = P3^0;
sbit S6 = P3^1;unsigned char code SMG_duanma[19] = {//  0   1    2    3    4    5    6    70xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,//  8   9    A10  B11  C12  D13  E14  F150x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,// -16  .17  熄灭0xbf,0x7f,0xff};  //共阳数码管unsigned char code SMG_duanmaDot[10] = {// 0.   1.   2.   3.   4.   5.   6.   7.0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,// 8.   9.0x00,0x10};  //数码管(小数点)      unsigned char yi, er, san, si, wu, liu, qi, ba;
unsigned char guang;//光敏电阻void InitHC138(unsigned char n)
{switch(n){case 4://LEDP2 = (P2 & 0x1f) | 0x80;break;case 5://蜂鸣器与继电器P2 = (P2 & 0x1f) | 0xa0;break;case 6://数码管位置P2 = (P2 & 0x1f) | 0xc0;break;case 7://数码管段码P2 = (P2 & 0x1f) | 0xe0;break;}
}void Delayms(unsigned int ms)//延时 ms
{unsigned int i, j;for (i = ms; i > 0; i--)for (j = 845; j > 0; j--);
}/*================系统初始化=================================================
关闭LED、蜂鸣器与继电器===========================================================================*/
void InitSystem()
{InitHC138(4);P0 = 0xff;InitHC138(5);P0 = 0x00;
}/*================数码管显示单元=================================================
0123:显示费率 X0.50
4567:显示 ①出水总量(按下S7,清除4567,实时显示出水量;再次按下,不影响出水状态,直到按S6) ②总价(按下S6停水后,4567显示总价)
(均保留两位有效数字)
===========================================================================*/
void SMG_Bit(unsigned pos, unsigned char dat)//数码管位置、数据
{InitHC138(6);P0 = 0x01 << pos;InitHC138(7);P0 = dat;
}void ShowSMG()
{SMG_Bit(0, SMG_duanma[yi]);Delayms(1);SMG_Bit(1, SMG_duanmaDot[er]);Delayms(1);SMG_Bit(2, SMG_duanma[san]);Delayms(1);SMG_Bit(3, SMG_duanma[si]);Delayms(1);SMG_Bit(4, SMG_duanma[wu]);Delayms(1);SMG_Bit(5, SMG_duanmaDot[liu]);Delayms(1);SMG_Bit(6, SMG_duanma[qi]);Delayms(1);SMG_Bit(7, SMG_duanma[ba]);Delayms(1);
}/*================按键控制单元=================================================
S7:出水按键 (按下:出水/清除4567(显示实时水量),继电器接通,L10亮再次按下:不影响出水状态,直到按S6)S6:停水按键 (按下:停水/4567显示总价,继电器断开,L10灭)
===========================================================================*/
unsigned int money = 0;
unsigned int w_10ml = 0;void ScanKeys()
{if (S7 == 0){Delayms(5);if (S7 == 0){wu = 0;liu = 0; qi = 0; ba = 0;//清除4567数据InitHC138(5);  P0 = 0x10;//继电器接通TR0 = 1;//打开定时器}while(!S7){ShowSMG();}}if (S6 == 0){Delayms(5);if (S6 == 0){InitHC138(5); P0 = 0x00;//关闭继电器TR0 = 0;//关闭定时器(不计时)money = w_10ml * 5;//可能会有五位12345(取前四位,保留两位有效数字:第五位>5,第四位+1)wu = money / 10000;liu = (money / 1000) % 10;qi = (money / 100) % 10;ba = (money / 10) % 10;if ((money % 10) >= 5){ba = ba + 1;}w_10ml = 0;}while(!S6){ShowSMG();}}
}/*=================定时器0=========================================
XX.XX L  =>  01.00L  =>  00.01L = 10ml
100ml/1s = 10ml/100ms
100ms = 20*5ms = 20*5000us0.5元/L = 0.005元/10ml//1234
wu:1234 / 1000 = 1.234 = 1
liu:1234 / 100 = 12.34 = 12 % 10 = 1.2 = 2
qi:1234 / 10 = 123.4 = 123 % 10 = 12.3 = 3
ba:1234 % 10 = 123.4 = 4
==================================================================*/
unsigned char count = 0;
//unsigned int w_10ml = 0;//int:16位65535/char:8位255(小了)
//unsigned int money = 0;//总价void InitTimer0()//定时器0中断函数(每5ms产生一次中断)
{TMOD = 0x01;TH0 = (65535 - 5000) / 256;TL0 = (65535 - 5000) % 256;//    TR0 = 1;(这里不开,等按S7开水的时候开始定时)ET0 = 1;EA = 1;
}void ServiceTimer0() interrupt 1 //中断服务函数
{TH0 = (65535 - 5000) / 256;TL0 = (65535 - 5000) % 256;count++;if (count == 20)//100ms/10ml{count = 0;w_10ml++;wu = w_10ml / 1000;liu = (w_10ml / 100) % 10;qi = (w_10ml / 10) % 10;ba = w_10ml % 10;if (w_10ml == 9999)//99990ml = 99.99L = 50元{wu = 5; liu = 0; qi = 0; ba = 0;TR0 = 0;}}
}
/*=================AD转换单元=======================================
光敏电阻,亮度值转化为电压,当电压<1.25V L1亮;>1.25V L1灭==================================================================*/
unsigned char ReadAD(unsigned char AIN)
{unsigned char temp;IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(AIN);IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();temp = IIC_RecByte();IIC_Stop();return temp;
}void main()
{InitSystem();InitTimer0();yi = 18; er = 0; san = 5; si = 0; wu = 0; liu = 1; qi = 0; ba = 0;while(1){guang = ReadAD(1);//光敏电阻ShowSMG();ScanKeys();if (guang < 63.75){InitHC138(4);P0 = 0xfe;}else if (guang > 63.75){InitHC138(4);P0 = 0xff;}}
}

三、练习改进

注意:

数码管4567清除数据:ml_10 = 0;

而不是wu = 0; liu = 0; qi = 0; ba = 0;!!!!!!

改进:XX.XX L ===>  00.10L / s  =  00.01L / 0.1s  =  10 mL  / 100ms 

#include "reg52.h"
#include "iic.h"sbit S7 = P3^0;
sbit S6 = P3^1;
sbit L1 = P0^0;unsigned char code SMG_duanma[19] = {//  0   1    2    3    4    5    6    70xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,//  8   9    A10  B11  C12  D13  E14  F150x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,// -16  .170xbf,0x7f,0xff};  //共阳数码管unsigned char code SMG_duanmaDot[10] = {// 0.   1.   2.   3.   4.   5.   6.   7.0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,// 8.   9.0x00,0x10};  //数码管(小数点)unsigned char yi, er, san, si, wu, liu, qi, ba;
unsigned int ml_10 = 0;//可达9999 用int(65535)
unsigned int money = 0;
unsigned char count = 0;void InitHC138(unsigned char n)
{switch (n){case 4://LEDP2 = (P2 & 0x1f) | 0x80;break;case 5://蜂鸣器与继电器P2 = (P2 & 0x1f) | 0xa0;break;case 6://数码管位置P2 = (P2 & 0x1f) | 0xc0;break;case 7://数码管段码P2 = (P2 & 0x1f) | 0xe0;break;}
}void Delayms(unsigned int ms)//延时 ms
{unsigned int i, j;for (i = ms; i > 0; i--)for (j = 845; j > 0; j--);
}/*=================系统初始化==========================================
关闭LED、蜂鸣器与继电器=====================================================================*/
void InitSystem()
{InitHC138(4);P0 = 0xff;InitHC138(5);P0 = 0x00;
}/*=================数码管显示单元=======================================
0123:显示费率 X0.50
4567:显示 ①出水总量(按下S7,清除4567,实时显示出水量;再次按下,不影响出水状态,直到按S6) ②总价(按下S6停水后,4567显示总价)
(均保留两位有效数字)
=====================================================================*/
void SMG_Bit(unsigned pos, unsigned char dat)
{InitHC138(6);P0 = 0x01 << pos;InitHC138(7);P0 = dat;
}void ShowSMG()
{SMG_Bit(0, SMG_duanma[yi]);Delayms(1);SMG_Bit(1, SMG_duanmaDot[er]);Delayms(1);SMG_Bit(2, SMG_duanma[san]);Delayms(1);SMG_Bit(3, SMG_duanma[si]);Delayms(1);SMG_Bit(4, SMG_duanma[wu]);Delayms(1);SMG_Bit(5, SMG_duanmaDot[liu]);Delayms(1);SMG_Bit(6, SMG_duanma[qi]);Delayms(1);SMG_Bit(7, SMG_duanma[ba]);Delayms(1);
}/*=================按键控制单元=====================================
S7:出水按键 (按下:出水/清除4567(显示实时水量),继电器接通,L10亮再次按下:不影响出水状态,直到按S6)S6:停水按键 (按下:停水/4567显示总价,继电器断开,L10灭)==================================================================*/
unsigned char flat = 0;//标志位void ScanKeys()
{if (S7 == 0){Delayms(5);if (S7 == 0){if (flat == 0){ml_10 = 0;//清除4567flat = 1;TR0 = 1;//打开定时器InitHC138(5);P0 = 0x10;//打开继电器}}while(!S7){ShowSMG();}}if (S6 == 0){Delayms(5);if (S6 == 0){if (flat == 1){flat = 0;TR0 = 0;//关闭定时器InitHC138(5);P0 = 0x00;//关闭继电器wu = money / 10000;//12345五位(保留两位有效数字)liu = (money / 1000) % 10;qi = (money / 100) % 10;ba = (money / 10) % 10;}}while(!S6){ShowSMG();}}
}/*=================定时器0=========================================
100ml/s = 10ml/0.1s
100毫升 = 0.1L (XX.XX L) 00.01L = 10ml
0.1s = 100ms = 10 0000us = 20*5000us
//1234
//1wu:1234 / 1000 = 1.234 = 1
//2liu:1234 / 100 = 12.34 = 12 % 10 = 1.2 = 2
//3qi:1234 /10 = 123.4 = 123 % 10 = 12.3 = 3
//4ba:1234 % 10 = 123.4 = 4
==================================================================*/
//unsigned int ml_10 = 0;//可达9999 用int(65535)
//unsigned int money = 0;
//unsigned char count = 0;void InitTimer0() //定时器0中断函数(每5ms产生一次中断)
{TMOD = 0x01;TH0 = (65535 - 5000) / 256;TL0 = (65535 - 5000) % 256;ET0 = 1;EA = 1;
//TR0 = 1;//等要用的时候再打开
}void ServiceTimer0() interrupt 1//中断服务函数
{TH0 = (65535 - 5000) / 256;TL0 = (65535 - 5000) % 256;count++;if (count == 20)//20*5ms = 100ms = 0.1s{count = 0;ml_10++;wu = ml_10 / 1000;liu = (ml_10 / 100) % 10;qi = (ml_10 / 10) % 10;ba = ml_10 % 10;money = ml_10 * 5;//0.5元/L = 0.005/10mlif (ml_10 == 9999){InitHC138(5);P0 = 0x00;//关闭继电器TR0 = 0;//关闭定时器wu = 5; liu = 0; qi = 0; ba = 0;//50元}}
}/*=================AD转换单元=======================================
光敏电阻,亮度值转化为电压,当电压<1.25V L1亮;>1.25V L1灭==================================================================*/
unsigned char ReadAD(unsigned char AIN)
{unsigned char temp;IIC_Start();IIC_SendByte(0x90);//发送写(0)读(1)IIC_WaitAck();IIC_SendByte(AIN);IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);//读(1)IIC_WaitAck();temp = IIC_RecByte();IIC_Stop();return temp;
}void main()
{unsigned char guang;InitSystem();InitTimer0();yi = 18; er = 0; san = 5; si = 0;wu = 0; liu = 1; qi = 0; ba = 0;while(1){ShowSMG();ScanKeys();guang = ReadAD(1);//0-255 => 0-5V   (255/5)*1.25 = 63.75 if (guang < 63.75){InitHC138(4);P0 = 0xfe;//点亮}else if (guang > 63.75){InitHC138(4);P0 = 0xff;//熄灭}}
}

蓝桥杯:第三届初赛试题“自动售水机”相关推荐

  1. 蓝桥杯单片机省赛第三届初赛试题 自动售水机

    蓝桥杯单片机省赛第三届初赛试题 自动售水机 蓝桥杯单片机 原题如下 `` main.c代码如下 iic.c文件 iic.h文件 这是第一次写蓝桥杯的题目的代码,写的时候外设没有熟悉 花费了很多时间 感 ...

  2. 蓝桥杯单片机第三届初赛程序设计——“自动售水机”设计任务书

    程序设计流程 综述 模板搭建 根据此题要求对模板做出的改变 程序设计 IIC A/D光敏电阻板块程序设计 系统设计 主函数代码 综述 第三届初赛赛题除了基础的独立按键.数码管显示.继电器和蜂鸣器的控制 ...

  3. 蓝桥杯单片机第三届省赛自动售水机

    #蓝桥杯单片机省三自动售水机 提示:能力有限仅供参考 本人能力有限仅供新手使用,第一次发表博客难免有错误仅供参考. 提示:以下是本篇文章正文内容,下面案例可供参考 一.main.c 代码如下: #in ...

  4. 蓝桥杯第三届初赛“自动售水机”设计任务书

    文章目录 蓝桥杯第三届初赛"自动售水机"设计任务书 Author:Luis Time:2022-04-06 Version:v1.0 说明 功能简述 具体代码 iic.c iic. ...

  5. 蓝桥杯2015初赛试题

    目录 方程整数解 [简单] 星系炸弹 [★] 奇妙的数字 [简单] 牌型种数 [★★]有意思 饮料换购 [简单] 奖券数目 [简单] 三羊献瑞 [★] 加法变乘法 [★]有点意思 移动距离 [★★]有 ...

  6. 2012年蓝桥杯【初赛试题】 转方阵

    问题描述: 对一个方阵转置,就是把原来的行号变列号,原来的列号变行号     例如,如下的方阵:  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 转置后 ...

  7. 2012蓝桥杯【初赛试题】手机尾号

    题目描述; 30年的改革开放,给中国带来了翻天覆地的变化.2011全年中国手机产量约为11.72亿部.手机已经成为百姓的基本日用品! 给手机选个好听又好记的号码可能是许多人的心愿.但号源有限,只能辅以 ...

  8. 蓝桥杯第3届省赛(单片机)_自动售水机

    蓝桥杯第3届省赛(单片机)_自动售水机 题目 这是2012年蓝桥杯的省赛的题目,也是单片机第一次加入蓝桥杯比赛系列,由于是初次加入蓝桥杯,所以这次比赛的自动售水机的题目(自动售水机)也比较简单,主要考 ...

  9. 蓝桥杯单片机 自动售水机

    蓝桥杯单片机 自动售水机 题目要求 main.c #include <stc15f2k60s2.h> #include <absacc.h> #include <dela ...

最新文章

  1. flash期末作业成品_基于“新工科”的工科物理作业模式研究
  2. makefile的使用方法(简单视频教程以及详细文字教程)
  3. fsimage文件丢失_hadoop fsimage edits关系
  4. what to do next?
  5. centos服务器解决vsftp连接时的“550 Create directory operation failed.”错误
  6. java基础语句_【Java基础-Java语言基础】
  7. 令牌桶 限速_Go 限流器实战系列(2) Token Bucket 令牌桶
  8. python使用matplotlib的savefig保存时图片保存不完整的问题
  9. princomp 与pca的区别与联系
  10. php 在线更新,Updates.php给自己的主题添加在线更新功能
  11. php dp0,DOS批处理中%cd%与%~dp0的区别详解
  12. cjson构建_cJSON的构造和解析
  13. 白话图解机器学习里的Regularization正则化
  14. 超线程cpu的寄存器_我对超线程我的理解
  15. 汇编——Masm使用及程序结构
  16. 列表求和python_python列表求和
  17. NVIDIA NCCL优化——利用共享内存实现比NCCL更快的集合通信
  18. 【FNN回归预测】基于matlab蝙蝠算法优化前馈神经网络数据回归预测【含Matlab源码 2070期】
  19. 三维激光扫描系统基本原理及分类
  20. 半双工通信和全双工通信的区别

热门文章

  1. PCweb开发与移动web开发区别在于什么?
  2. mysql 获取更新id,如何获取MySQL中最后更新的行的ID?
  3. 服从威布尔风力发电matlab参考程序,算法丨基于威布尔参数的风功率密度估算
  4. C#:将blibli缓存文件批量转换为MP4文件
  5. Encore une Fois
  6. 逻辑与(),逻辑或(||),and(),or(|)
  7. 继 CentOS 后,红帽又惹“众怒”:限制访问 RHEL 代码,要“杀死”下游发行版?...
  8. c语言正弦波峰峰值,STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3.3V可调)
  9. 做android版水果忍者有感
  10. android 骁龙图库解析,Android Camera开发系列:高通平台,How To Expose Aux Camera ?