首页 > 其他分享 >七段数码管

七段数码管

时间:2024-04-26 22:00:27浏览次数:19  
标签:turtle False drawLine else 数码管 fd True 七段

import turtle, datetime

def drawGap(): # 绘制数码管间隔
turtle.penup()
turtle.fd(5)

def drawLine(draw): # 绘制单段数码管
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)

def drawDigit(d): # 根据数字绘制七段数码管
drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)
turtle.left(90)
drawLine(True) if d in [0, 4, 5, 6, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
drawLine(True) if d in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)

def drawDate(date):
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write('年', font=("Arial ", 18, "normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i == '=':
turtle.write('月', font=("Arial", 18, "normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i == '+':
turtle.write('日', font=("Arial", 18, "normal"))
turtle.pencolor("yellow")
turtle.fd(40)
elif i == '$':
turtle.write('时', font=("Arial", 18, "normal"))
turtle.pencolor("black")
turtle.fd(40)
elif i == '&':
turtle.write('分', font=("Arial", 18, "normal"))

    else:
        drawDigit(eval(i))

def main():
turtle.setup(1200, 350, 200, 200)
turtle.penup()
turtle.fd(-550)
turtle.pensize(5)
drawDate(datetime.datetime.now().strftime('%Y-%m=%d+%H$%M&'))
turtle.mainloop() # 让turtle画笔绘制画面停留
turtle.hideturtle()

main()

标签:turtle,False,drawLine,else,数码管,fd,True,七段
From: https://www.cnblogs.com/xyl050818/p/18160946

相关文章

  • 数码管显示屏驱动芯片VK1640 SOP28,2线串行接口,适用于小型LED显示屏驱动
    产品品牌:永嘉微电/VINKA产品型号:VK1640封装形式:SOP28概述VK1640是一种数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、LED驱动等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持8SEGx16GRID的点阵LED显示。适用于小型LED显示屏驱动。采用SOP28的封装形式。LJQ336特点•......
  • 数码管闪烁模板及注意事项
    数码管闪烁模板及注意事项方式1:直接在segProc()里写查看代码voidSeg_Proc(void){ if(Seg_Slow_Down)return; Seg_Slow_Down=1; /***用户自定义代码区↓***/ sprintf(seg_string,"-%d-%3d",(unsignedint)disp1,disp2); if(state_flag==2)//让disp1......
  • 基于EP4CE6F17C8的FPGA可调校数码管时钟实例
    一、电路模块1、数码管开发板板载了6个数码管,全部为共阳型,原理图如下图所示,段码端引脚为DIG[0]~DIG[7]共8位(包含小数点),位选端引脚为SEL[0]~SEL[5]共6位。端口均为低电平有效。其实物图如下所示。数码管引脚分配见下表。2、时钟晶振开发板板载了一个50MHz的有源晶振,为系统......
  • 基于51单片机的锅炉控制【热电偶,数码管,PID】(仿真)
    1、使用N型热电偶测量锅炉内部温度2、设置温度值,温度低于设定值则启动加热3、加热过程使用PID控制,PID参数固定4、数码管显示温度5、温度过限报警#include"lcd1602.h"voiddelay_uint(uinti){ while(i--);}/**************************************************......
  • 点阵LED数码管显示驱动IC VK16K33 A/B/C/BA/AA 驱动电流大 质量稳定 适用于计量插座,数
    VK16K33是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、键盘扫描、LED驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳极,GRID脚接LED阴极,可支持16SEGx8GRID的点阵LED显示面板。最大支持13×3的按键。内置上电复位电路,整体闪烁频率可......
  • 蓝桥杯单片机速成2-动态数码管数码管显示
    一、原理图段选给1是选中,该数码管是共阳极的数码管,位选输入0才会电亮一位二、代码分析/*************本地常量声明**************/u8codet_display[]={//标准字库//0123456789ABC......
  • 基于51单片机的雨刮器【雨量,速度,手动自动,点动,数码管】(仿真)
    #include"DHT11.h"unsignedchardht11_dat1[5];//湿度高低+温度高低+和校验unsignedchardht11_dat2[5];voiddelay1ms(unsignedinti)//延时函数{unsignedcharj;while(i--){ for(j=0;j<110;j++);}}voiddht11_recive1()//接收{unsignedch......
  • 七段码(蓝桥杯)
    文章目录七段码题目描述答案:80分析编程求解:有多种方法方法一:状态压缩+枚举+构图(以二极管为顶点)+DFS判断连通代码方法二:bfs七段码题目描述小蓝要用七段码数码管来表示一种特殊的文字。上图给出了七段码数码管的一个图示,数码管中一共有7段可以发光的二极管,分别......
  • 大电流LED驱动/数码管驱动芯片VK16K33A SOP28,适用于电饭煲,数字电表等
    产品品牌:永嘉微电/VINKA产品型号:VK16K33A封装形式:SOP28概述:VK16K33A是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、键盘扫描、LED驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳极,GRID脚接LED阴极,可支持16SEGx8GRID的点阵LED......
  • 基于EP4CE6F17C8的FPGA数码管时钟显示实例
    一、电路模块本例的电路模块与“基于EP4CE6F17C8的FPGA数码管动态显示实例”中的完全一样,此处就不再给出了。二、实验代码本例使用6个数码管显示时钟的时、分、秒,时与分之间及分与秒之间通过小数点来分隔,代码使用Verilog编写,采用例化的形式,使用了两种方式来实现。第一种方式,共......