)
目标①学习基本外设如GPIO使用、外部中断、定时器、串口等②掌握数字电子技术和模拟电子技术知识略过自行找书和教程学习③C语言编程能力很重要不再单独学边开发边写④多进行实操脱离教程自主实现一个功能。数电和C语言基础电平特性单片机是一种数字集成芯片数字电路中只有两种电平高电平High和低电平Low。为方便理解先暂时定义TTLTransistor-Transistor Logic晶体管三极管电路输出与输入为TTL电平其中高电平为5V低电平为 0V。计算机的串口为RS232电平RS232C电平为负逻辑电平其中高电平-12V低电平为12V因此当计算机与单片机之间要通信时需要依靠电平转换芯片比如MAX232电平转换芯片。常用的逻辑电平还有很多比如TTL、CMOS、LVTTL、RS-232、RS-485等。5V TTL和5V CMOS是通用的逻辑电平CMOS电路中不使用的输入端不能悬空否则会造成逻辑混乱详情自查。3.3V及以下的逻辑电平被称为低电压逻辑电平常用的为LVTTLLow Voltage TTL电平。低电压逻辑电平还有2.5V和1.8V两种。RS-232 和 RS-485 是串口的接口标准RS-232 是单端输入/输出。RS-485 是差分输入/输出。TTL电路和CMOS电路的逻辑电平VOHVoltage Out High逻辑电平 1 的输出电压VOLVoltage Out Low逻辑电平 0 的输出电压VIHVoltage In High逻辑电平 1 的输入电压VILVoltage In Low逻辑电平 1 的输入电压TTL电平临界值VOHmin2.4VVOLmax0.4VVIHmin2.0VVILmax0.8VCMOS电平临界值假设电源电压为5VVOHmin4.99VVOLmax0.01VVIHmin3.5VVILmax1.5V临界值也就是说当VOHVOHminVOLVOLmaxVIHVIHminVILVILmax这些情况出现时我们将不再能判断这些电平是高还是低。TTL和CMOS的逻辑电平转换CMOS电平能驱动TTL电平但TTL电平不能驱动CMOS电平需加上拉电阻看上述两种电路的电平临界值的关系就能知道。常用逻辑芯片的特点芯片类型电路类型输入电平类型输出电平类型74LS系列TTL电路TTL电平TTL电平74HC系列CMOS电路CMOS电平CMOS电平74HCT系列CMOS电路TTL电平CMOS电平CD4000系列CMOS电路TTL电平CMOS电平进制二进制十进制0123456789二进制001101110010111011110001001十六进制十进制0123456789101112131415161718十六进制0123456789ABCDEF101112进制换算任意进制转换成十进制k是进制是每一位的权重n是从右往左数的位数从个位数n0开始N是转换后的十进制数。十进制转换成任意进制除k基取余法本质上只要对上述“任意进制转换成十进制”的公式做一定处理由十进制数N反向算出、、……、即可得到k进制数主要利用“被除数÷除数商……余数”这个公式处理过程如下。由上述式子可见第一次除以k得到的余数就是k进制数的右数第一位数第二次除以k得到的余数是k进制数的右数第二位数以此类推每一次操作都先除以进制k取余数再拿得到的商继续除以进制k直到算出这个k进制数的左数第一位数也是右数第n1为数。至此可得十进制数N的k进制数即。逻辑门电路与门“与”运算是实现“必须都有否则就没有”这种逻辑关系的一种运算。C语言中运算符为“”其运算规则如下000010100,111一般规定0和1也可以说成是“假”和“真”。C语言中“”表示“按位与”运算意思是变量之间按二进制位数对应关系一一进行“与”运算。如0101 01011010 10100000 0000而上面讲到的“”运算只是对单一位进行运算。或门“或”运算是实现“只要其中之一有就有”这种逻辑关系的一种运算。C语言中运算符为“|”其运算规则如下0|000|111|011|11。C 语言中“||”表示“按位或”运算意思是变量之间按二进制位数对应关系一一进行“或”运算。如0101 0101||1010 10101111 1111而上面讲到的“|”运算只是对单一位进行运算。非门“非”运算是实现“求反”这种逻辑关系的一种运算。C语言中运算符为“!”其运算规则如下!01!10。C 语言中“~”表示“按位取反”运算。如~0101 01011010 1010而上面讲到的“!”运算只是对单一位进行运算。同或异或可由与或非得出“同或”与“异或”运算使用的较少我们在这里只做简单了解大家用到之处可再查找相关资料。“同或”运算是实现“必须相同否则就没有”这种逻辑关系的一种运算其逻辑运算符为“⊙”。其运算规则如下0⊙010⊙101⊙001⊙11。在 C 语言中没有规定符号。同或的逻辑表达式是YA⊙B¬A¬BAB。“异或”运算是实现“必须不同否则就没有”这种逻辑关系的一种运算其逻辑运算符为“⊕”。其运算规则如下0⊕000⊕111⊕011⊕10。在 C 语言中有“按位异或”运算“^”。异或的逻辑表达式是YA⊕B¬ABA¬B。C语言略不单独学C语言。