2、1602的引脚情况第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,本实验通过一个10K的电位器调整对比度,也可以换用一个1KΩ电阻)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:背灯电源。15脚背光正极,16脚背光负极。
3、1602的接线方法1602的接线方法有两种,一种是8线连接法,一种是4线连接法。这两种方法具体可参见http://www.cnblogs.com/xiaowuyi/p/3390024.html。
四、实验板的连接方法
具体接线如下:
连接后如下图:
五、显示hello world的实验1、代码如下
- # main.py -- put your code here!
-
- import pyb
-
- from pyb import Pin
-
- from pyb import delay, udelay,millis
-
- from tpyb_lcd1602 import TPYBoardLcd1602Api
-
- from tpyb_gpio_lcd1602 import TPYBoardGpioLcd1602
-
-
-
-
-
- def main():
-
- lcd = TPYBoardGpioLcd1602(rs_pin=Pin.board.Y10,
-
- enable_pin=Pin.board.Y9,
-
- d4_pin=Pin.board.Y5,
-
- d5_pin=Pin.board.Y6,
-
- d6_pin=Pin.board.Y7,
-
- d7_pin=Pin.board.Y8,
-
- num_lines=2, num_columns=16)
-
- lcd.lcd1602_write_string("hello world!nThis is TPYBoard")
-
-
-
-
- #if __name__ == "__main__":
-
- main()
复制代码
2、实验效果
六、简单的秒表下面做一个简单的计时器,断电、按键USR置零。
- # main.py -- put your code here!
- import pyb
- from pyb import Pin
- from pyb import delay, udelay,millis
- from tpyb_lcd1602 import TPYBoardLcd1602Api
- from tpyb_gpio_lcd1602 import TPYBoardGpioLcd1602
-
-
- lcd = TPYBoardGpioLcd1602(rs_pin=Pin.board.Y10,
- enable_pin=Pin.board.Y9,
- d4_pin=Pin.board.Y5,
- d5_pin=Pin.board.Y6,
- d6_pin=Pin.board.Y7,
- d7_pin=Pin.board.Y8,
- num_lines=2, num_columns=16)
- sw=pyb.Switch()
- def test():
- global count
- lcd.clear()
- count = 0
-
- sw.callback(test)
-
- #lcd.lcd1602_write_string("hello world!nThis is TPYBoard")
- #pyb.delay(1000)
- #lcd.clear()
- count=0
- while True:
- lcd.move_to(0, 0)
- #%1d 宽度 返回运行当前程序的累计时间,单位是毫秒
- #lcd.lcd1602_write_string("%1d" % (millis() // 1000))
- delay(1000)
- count += 1
- lcd.lcd1602_write_string(str(count))
复制代码
实现效果:
七、按键中断的使用1、按键使用 tpyboard v102有两个按键,一个rst,重启键,一个usr。按键常用usr。常用的使用方法如下:
(1)定义按键
sw = pyb.Switch()
(2)常用方法
sw():读取按键状态
sw.callback(lambda:pyb.LED(1).toggle()) 定义按键回调函数,这里lambda表达式,可以查阅一下baidu。呵呵
sw.callback(None) 禁用按键回调函数
(3)更复杂的使用回调函数(按键后翻转LED2)
def test():
pyb.LED(2).toggle()
sw.callback(test)
2、中断的解释 现在谈谈按键回调函数发生时的细节。当你调用了含有 sw.callback( )的函数时,按键将在其连接引脚产生一个边沿触发(下降沿)外部中断。这意味着芯片将监听该引脚的任何状态变换,且如下事情会发生:
步骤1、当按键被按下时引脚将发生改变(电平由低到高?),芯片处理器将记录这种变化;
步骤2、处理器完成当前机器指令,退出执行状态并保存当前的状态(将寄存器的内容推入栈中)。这将停止当前运行的任何代码,例如正在执行着的 python 脚本;
步骤3、芯片开始执行与按键相关的特定外部中断触发处理。该处理指向你在 sw.callback( )函数中指定的函数功能并执行之;
步骤4、直到回调函数执行完毕,控制主权将回到中断处理手上;
步骤5、按键中断处理将返回,芯片处理器确认记录该中断被执行过;
步骤6、芯片调回步骤 2 的状态;
步骤7、继续执行开始时的代码,除了短暂的暂停,这部分代码看起来似乎没有被打断过。
当同一时间多个中断同时发生上述的过程将复杂得多。这种情况下拥有最高优先级别的中断将被首先执行,其他的中断按各自的优先级数序执行。按键中断的优先级最低。