Tuesday, June 2, 2020

MM32 microcontroller with LCD 16x2 display

#include "MM32F103.h"
#include<stdio.h>
#include "sys.h"
#include "delay.h"
#include "uart.h"


/* LCD Commands */
#define LCD_DD_RAM_PTR 0x80 // Address Display Data RAM pointer
#define LCD_CG_RAM_PTR 0x40 // Address Character Generator RAM pointer
#define LCD_CLEAR_DISPLAY   0x01 // Clear entire display and set Display Data Address to 0
#define LCD_RETRN_HOME 0x02 // sets DDRAM address 0 and returns display from being shifted to original position.
#define LCD_DISP_INIT 0x28 // function set is 4 bit data length and 2 lines
#define LCD_INC_MODE   0x06 // Entry mode is display Data RAM pointer incremented after write

#define LCD_DISP_OFF   0x08    // Sets entire display off, cursor off
#define LCD_CURSOR_ON   0x04 // turn on cursor
#define LCD_CURSOR_OFF     0x00    // turn off cursor
#define LCD_CUR_MOV_LEFT   0x10 // Cursor move and shift to left
#define LCD_CUR_MOV_RIGHT   0x14 // Cursor move and shift to right
#define LCD_BUSY              0x80    // LCD is busy
#define LCD_CURSOR_BLINKING   0x0D //LCD cursor blinking
#define LCD_DISP_ON   0x0E   //lcd cursor ON 


/*************************LCD Control pins***********************************************/

#define Lcd_En_High()     GPIO_SetBits(GPIOB, GPIO_Pin_15)
#define Lcd_En_Low()      GPIO_ResetBits(GPIOB, GPIO_Pin_15) 

#define Lcd_Rs_High()    GPIO_SetBits(GPIOB, GPIO_Pin_14) 
#define Lcd_Rs_Low()     GPIO_ResetBits(GPIOB, GPIO_Pin_14) 

/************************** LCD Data pins *************************************************/

#define Lcd_D7_High()     GPIO_SetBits(GPIOB, GPIO_Pin_5)   
#define Lcd_D7_Low()     GPIO_ResetBits(GPIOB, GPIO_Pin_5)    

#define Lcd_D6_High()     GPIO_SetBits(GPIOB, GPIO_Pin_4)     
#define Lcd_D6_Low()     GPIO_ResetBits(GPIOB, GPIO_Pin_4)   

#define Lcd_D5_High()     GPIO_SetBits(GPIOB, GPIO_Pin_11)        
#define Lcd_D5_Low()     GPIO_ResetBits(GPIOB, GPIO_Pin_11)         

#define Lcd_D4_High()     GPIO_SetBits(GPIOB, GPIO_Pin_10)                 
#define Lcd_D4_Low()      GPIO_ResetBits(GPIOB, GPIO_Pin_10)  
/****************************************************************************************/


void Delay_stm(u32);
void LCD_Control_Write(unsigned char cmd);


void GPIO_Configuration_LCD(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); 
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5 | GPIO_Pin_4 | GPIO_Pin_11 | GPIO_Pin_10| GPIO_Pin_14 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

void Lcd_Delay(u32 nCount)
 
 for(; nCount != 0; nCount--);

}

void LCD_initialization(void)
{
/* Set 4-bits interface */
printf("\r\n LCD init done");
LCD_Control_Write(0x33);
Delay_stm(1);
LCD_Control_Write(0x32);
Delay_stm(1);

LCD_Control_Write(LCD_DISP_INIT);
Delay_stm(1); 
LCD_Control_Write(LCD_CLEAR_DISPLAY); 
Delay_stm(1);
LCD_Control_Write(LCD_INC_MODE); 
Delay_stm(1);
LCD_Control_Write(LCD_DISP_ON); 
Delay_stm(1);
LCD_Control_Write(LCD_CURSOR_BLINKING); 
Delay_stm(1);
LCD_Control_Write(LCD_CUR_MOV_RIGHT);
Delay_stm(1);
LCD_Control_Write(LCD_RETRN_HOME);  
Delay_stm(1);
}

void LCD_Clear(void)
{
printf("\r\n LCD clr fun");
LCD_Control_Write(LCD_CLEAR_DISPLAY);
  Delay_stm(5);
}

void LCD_Control_Write(unsigned char cmd)
{
unsigned char temp;
temp = cmd;
temp = temp & 0xf0;
if (temp & 0x80)
  Lcd_D7_High();        
  else
  Lcd_D7_Low();         
temp = temp << 1;

if (temp & 0x80)
  Lcd_D6_High();         
  else
  Lcd_D6_Low();           
temp = temp << 1;

if (temp & 0x80)
  Lcd_D5_High();       
  else
  Lcd_D5_Low();         
    temp = temp << 1;

if (temp & 0x80)
  Lcd_D4_High();       
  else
  Lcd_D4_Low();
temp = temp << 1;

Lcd_Rs_Low();  
Lcd_En_High();
  delay_ms(1);
Lcd_En_Low();
  Delay_stm(200);


cmd = cmd << 4;
cmd = cmd & 0xF0;
if (cmd & 0x80)
Lcd_D7_High();         
  else
Lcd_D7_Low();         
cmd = cmd << 1;

if (cmd & 0x80)
  Lcd_D6_High();       
  else
   Lcd_D6_Low();         
cmd = cmd << 1;

if (cmd & 0x80)
  Lcd_D5_High();       
  else
  Lcd_D5_Low();         
cmd = cmd << 1;

if (cmd & 0x80)
  Lcd_D4_High();         
  else
  Lcd_D4_Low();         
  cmd = cmd << 1;

Lcd_Rs_Low();  
Lcd_En_High();
delay_ms(1);
Lcd_En_Low();
  //Delay_stm(1);
}

void LCD_Data_Write(unsigned char data)
{
  
  unsigned char temp;
printf("\r\n IN LCD data write fun");
temp = data;
temp = temp & 0xf0;
//printf("hai_in _write");
if (temp & 0x80)
Lcd_D7_High();         
  else
Lcd_D7_Low();         
temp = temp << 1;

if (temp & 0x80)
  Lcd_D6_High();       
  else
   Lcd_D6_Low();         
temp = temp << 1;

if (temp & 0x80)
  Lcd_D5_High();       
  else
  Lcd_D5_Low();         
temp = temp << 1;

if (temp & 0x80)
  Lcd_D4_High();         
  else
  Lcd_D4_Low();         
temp = temp << 1;

Lcd_Rs_High();  
Lcd_En_High();
delay_ms(1);
Lcd_En_Low();
  Lcd_Delay(2000);


data = data << 4;
data = data & 0xF0;

if (data & 0x80)
Lcd_D7_High();         
  else
Lcd_D7_Low();         
data = data << 1;

if (data & 0x80)
  Lcd_D6_High();       
  else
  Lcd_D6_Low();         
data = data << 1;

if (data & 0x80)
  Lcd_D5_High();       
  else
  Lcd_D5_Low();         
data = data << 1;

if (data & 0x80)
  Lcd_D4_High();        
  else
  Lcd_D4_Low();         
data = data << 1;
Lcd_Rs_High();  
Lcd_En_High();
delay_ms(1);
Lcd_En_Low();
}

void RowDisplay(const char *Ptr,char line1)
{
   int i = 0;
printf("\r\n IN Row display fun");
   if(line1==1)LCD_Control_Write(0x80);  //Address of first line first digit
   if(line1==2)LCD_Control_Write(0xC0);  //Address of secondline first digit
   Lcd_Delay(50000);
   for(i=0;i<16;i++)                  //for 16x2 lcd
   {
      LCD_Data_Write(Ptr[i]);
      Lcd_Delay(2000);    
   } 
}

void Delay_stm(u32 num)
{
delay_ms(num);
}

int main(void)
{
 
GPIO_Configuration_LCD();
uart_initwBaudRate(115200);
delay_init();
 
LCD_initialization();
   LCD_Clear();
   
RowDisplay("M",1);
delay_ms(20);
RowDisplay("raju",2);
delay_ms(20);

while(1)
{
LCD_Clear();
delay_ms(1000);
RowDisplay("HELLO  WORLD",2);
delay_ms(1000);
}
}

Monday, June 1, 2020

upper case and lower case conversion in python

def swap_case(s):
    a = ""
    for i in s:
        if i.isupper() == True:
            a+=(i.lower())
        else:
            a+=(i.upper())
    return a
    

if __name__ == '__main__':
    s = input()
    result = swap_case(s)
    print(result)

Saturday, May 30, 2020

list operation in python

if __name__ == '__main__':
    N = int(input())
    list=[]
    list.insert(0,5)
    list.insert(1,10)
    list.insert(0,6)
    print(list)
    list.remove(6)
    list.append(9)
    list.append(1)
    list.sort()
    print(list)
    list.pop()
    list.reverse()
    print(list)

pattern display in python

thickness = int(input()) #This must be an odd number
c = 'H'

#Top Cone
for i in range(thickness):
    print((c*i).rjust(thickness-1)+c+(c*i).ljust(thickness-1))
    
#Top Pillars
for i in range(thickness+1):    
    print((c*thickness).center(thickness*2)+(c*thickness).center(thickness*6))

#Middle Belt
for i in range((thickness+1)//2):
    print((c*thickness*5).center(thickness*6))    

#Bottom Pillars
for i in range(thickness+1):
    print((c*thickness).center(thickness*2)+(c*thickness).center(thickness*6))    

#Bottom Cone
for i in range(thickness):
    print(((c*(thickness-i-1)).rjust(thickness)+c+(c*(thickness-i-1)).ljust(thickness)).rjust(thickness*6))



  •     H    
  •    HHH   
  •   HHHHH  
  •  HHHHHHH 
  • HHHHHHHHH
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHHHHHHHHHHHHHHHHHHHHHH   
  •   HHHHHHHHHHHHHHHHHHHHHHHHH   
  •   HHHHHHHHHHHHHHHHHHHHHHHHH   
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •   HHHHH               HHHHH             
  •                     HHHHHHHHH 
  •                      HHHHHHH  
  •                       HHHHH   
  •                        HHH    
  •                         H     

Monday, May 25, 2020

MM32 product search table is working


from tkinter import Toplevel, Button, Tk, Menu  
from tkinter import *
#import sqlite3
import pymysql
import tkinter.ttk as ttk
from view_product_info import*

  
master = Tk() 
conn=pymysql.connect(host="localhost",user="root",password="",db="sslabs")
mycursor=conn.cursor()


def entry_form(): 
    Label(master , text="Name",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=0)
    Label(master , text="ArmVer", font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=0,column=3)
    Label(master , text="Speed",  font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=2)
    Label(master , text="Flash",  font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=2,column=3)
    Label(master , text="RAM",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=4)
    Label(master , text="GPIO",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=4,column=3)
    Label(master , text="AdvTimer", font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=6)
    Label(master , text="GPTM",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=6,column=3)
    Label(master , text="WDG",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=8)
    Label(master , text="RTC",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=9)
    Label(master , text="UART",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=10)
    Label(master , text="I2C",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=11)
    Label(master , text="SPI",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=12)
    Label(master , text="USB",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=13)
    Label(master , text="ADC",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=14)
    Label(master , text="EEPROM", font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=15)
    Label(master , text="DAC",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=16)
    Label(master , text="CAN",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=17)
    Label(master , text="SDIO",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=18)
    Label(master , text="COMP",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=19)
    Label(master , text="AES",    font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=20)
    Label(master , text="TRNG",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=21)
    Label(master , text="PACK",   font=('arial 12 bold'), justify=LEFT, fg='black').grid(row=22)
    
    e1=Entry(master)
    Name=e1.grid(row=0,column=1)
    
    e2=Entry(master)
    ArmVer = e2.grid(row=0,column=4)
    
    e3=Entry(master)
    Speed = e3.grid(row=2,column=1)
    
    e4=Entry(master)
    Flash = e4.grid(row=2,column=4)
    
    e5=Entry(master)
    RAM = e5.grid(row=4,column=1)
    e6=Entry(master)
    Gpio = e6.grid(row=4,column=4)
    
    e7=Entry(master)
    AdvTimer = e7.grid(row=6,column=1)
    e8=Entry(master)
    GPTM = e8.grid(row=6,column=4)
    e9=Entry(master)
    WDG = e9.grid(row=8,column=1)
    e10=Entry(master)
    RTC = e10.grid(row=9,column=1)
    
    e11=Entry(master)
    UART = e11.grid(row=10,column=1)
    
    e12=Entry(master)
    I2C = e12.grid(row=11,column=1)
    
    e13=Entry(master)
    SPI = e13.grid(row=12,column=1)
    
    e14=Entry(master)
    USB = e14.grid(row=13,column=1)
    
    e15=Entry(master)
    ADC = e15.grid(row=14,column=1)
    
    e16=Entry(master)
    EEPROM = e16.grid(row=15,column=1)
    
    e17=Entry(master)
    DAC = e17.grid(row=16,column=1)
    
    e18=Entry(master)
    CAN = e18.grid(row=17,column=1)
    
    e19=Entry(master)
    SDIO = e19.grid(row=18,column=1)
    
    e20=Entry(master)
    COMP = e20.grid(row=19,column=1)
    
    e21=Entry(master)
    AES = e21.grid(row=20,column=1)
    
    e22=Entry(master)
    TRNG = e22.grid(row=21,column=1)
    
    e23=Entry(master)
    PACK = e23.grid(row=22,column=1)

def create_table():
    mycursor.execute("CREATE TABLE `mm321` (id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(255),ArmVer VARCHAR(255), Speed VARCHAR(255), Flash VARCHAR(255) , RAM VARCHAR(255) , Gpio VARCHAR(255) , AdvTimer VARCHAR(255), GPTM VARCHAR(255), WDG VARCHAR(255),RTC VARCHAR(255),UART VARCHAR(255),I2C VARCHAR(255),SPI VARCHAR(255),USB VARCHAR(255),ADC VARCHAR(255),EEPROM VARCHAR(255),DAC VARCHAR(255),CAN VARCHAR(255),SDIO VARCHAR(255),COMP VARCHAR(255),AES VARCHAR(255),TRNG VARCHAR(255),PACK VARCHAR(255))")

def display_text():        
    sql = "INSERT INTO `mm321` (Name, ArmVer,Speed,Flash,RAM,Gpio,AdvTimer,GPTM,WDG,RTC,UART,I2C,SPI,USB,ADC,EEPROM,DAC,CAN,SDIO,COMP,AES,TRNG,PACK) VALUES (%s, %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
    #print("First Name: %s\nstandard:%s\nsubject:%s" % (e1.get(),e2.get(),e3.get()))
    Name=e1.get()
    ArmVer=e2.get()
    Speed=e3.get()
    Flash=e4.get()
    RAM=e5.get()
    Gpio=e6.get()
    AdvTimer=e7.get()
    GPTM=e8.get()
    WDG=e9.get()
    RTC=e10.get()
    UART=e11.get()
    I2C=e12.get()
    SPI=e13.get()
    USB=e14.get()
    ADC=e15.get()
    EEPROM=e16.get()
    DAC=e17.get()
    CAN=e18.get()
    SDIO=e19.get()
    COMP=e20.get()
    AES=e21.get()
    TRNG=e22.get()
    PACK=e23.get()
    val = (Name, ArmVer, Speed,Flash,RAM,Gpio,AdvTimer,GPTM,WDG,RTC,UART,I2C,SPI,USB,ADC,EEPROM,DAC,CAN,SDIO,COMP,AES,TRNG,PACK)
    mycursor.execute(sql, val)
    conn.commit()
    print(mycursor.rowcount, "record inserted.")     
        

        
def Database():
        conn = pymysql.connect(host="localhost",user="root",password="",db="sslabs")
        cursor = conn.cursor()
        #cursor.execute("CREATE TABLE IF NOT EXISTS `mm321` (id INTEGER NOT NULL PRIMARY KEY  AUTOINCREMENT, firstname TEXT, lastname TEXT, address TEXT, age TEXT)")
        cursor.execute("SELECT * FROM `mm321`")
        '''if cursor.fetchone() is None:
            cursor.execute("INSERT INTO `mm321` (firstname, lastname, address, age) VALUES('Clea', 'Hela', 'San Francisco', '20')")
            cursor.execute("INSERT INTO `mm321` (firstname, lastname, address, age) VALUES('Thor', 'Jackson', 'San Aurora', '25')")
            cursor.execute("INSERT INTO `users1` (firstname, lastname, address, age) VALUES('Naruto', 'Uzumaki', 'Konoha', '18')")
            cursor.execute("INSERT INTO `users1` (firstname, lastname, address, age) VALUES('San', 'Juan', 'Peninsula', '55')")
            cursor.execute("INSERT INTO `users1` (firstname, lastname, address, age) VALUES('Juan', 'Dela Cruz', 'San Juan', '22')")
            cursor.execute("INSERT INTO `users1` (firstname, lastname, address, age) VALUES('Pedro', 'Bago', 'Bayan', '30')")
            ''' 
        conn.commit()
          
        cursor.execute("SELECT * FROM `mm321` ORDER BY `Name` ASC")
        fetch = cursor.fetchall()
        for data in fetch:
            tree.insert('', 'end', values=(data))
        cursor.close()
        conn.close()
    
def Search():
    if SEARCH.get() != "":
        tree.delete(*tree.get_children())
        conn = pymysql.connect(host="localhost",user="root",password="",db="sslabs")
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM `mm321` WHERE `Name` LIKE ? OR `ArmVer` LIKE ?", ('%'+str(SEARCH.get())+'%', '%'+str(SEARCH.get())+'%'))
        fetch = cursor.fetchall()
        for data in fetch:
            tree.insert('', 'end', values=(data))
        cursor.close()
        conn.close()
            
def Reset():
        conn = pymysql.connect(host="localhost",user="root",password="",db="sslabs")
        cursor = conn.cursor()
        tree.delete(*tree.get_children())
        cursor.execute("SELECT * FROM `mm321` ORDER BY `ArmVer` ASC")
        fetch = cursor.fetchall()
        for data in fetch:
            tree.insert('', 'end', values=(data))
        cursor.close()
        conn.close()
        
#=====================================VARIABLES============================================
SEARCH = StringVar()
    
#=====================================FRAME================================================
Top = Frame(master, width=500, bd=1, relief=SOLID)
Top.pack(side=TOP)
TopFrame = Frame(master, width=500)
TopFrame.pack(side=TOP)
TopForm= Frame(TopFrame, width=300)
TopForm.pack(side=LEFT, pady=10)
TopMargin = Frame(TopFrame, width=260)
TopMargin.pack(side=LEFT)
MidFrame = Frame(master, width=500)
MidFrame.pack(side=TOP)
    
#=====================================LABEL WIDGET=========================================
lbl_title = Label(Top, width=500, font=('arial', 18), text="Product Search Table")
lbl_title.pack(side=TOP, fill=X)
    
#=====================================ENTRY WIDGET=========================================
search = Entry(TopForm, textvariable=SEARCH)
search.pack(side=LEFT)
    
#=====================================BUTTON WIDGET========================================
btn_search = Button(TopForm, text="Search", bg="#006dcc", command=Search)
btn_search.pack(side=LEFT)
btn_reset = Button(TopForm, text="Reset", command=Reset)
btn_reset.pack(side=LEFT)
#=====================================Table WIDGET=========================================
scrollbarx = Scrollbar(MidFrame, orient=HORIZONTAL)
scrollbary = Scrollbar(MidFrame, orient=VERTICAL)
#Name, ArmVer, Speed,Flash,RAM
tree = ttk.Treeview(MidFrame, columns=("ID", "Name", "ArmVer", "Speed", "Flash","RAM","Gpio","AdvTimer","GPTM","WDG","RTC","UART","I2C","SPI","USB","ADC","EEPROM","DAC","CAN","SDIO","COMP","AES","TRNG","PACK"), selectmode="extended", height=400, yscrollcommand=scrollbary.set, xscrollcommand=scrollbarx.set)
scrollbary.config(command=tree.yview)
scrollbary.pack(side=RIGHT, fill=Y)
scrollbarx.config(command=tree.xview)
scrollbarx.pack(side=BOTTOM, fill=X)
tree.heading('ID', text="ID",anchor=W)
tree.heading('Name', text="Name",anchor=W)#1
tree.heading('ArmVer', text="ArmVer",anchor=W)#2
tree.heading('Speed', text="Speed",anchor=W)#3
tree.heading('Flash', text="Flash",anchor=W)#4
tree.heading('RAM', text="RAM",anchor=W)#5
tree.heading('Gpio', text="Gpio",anchor=W)#6
tree.heading('AdvTimer', text="AdvTimer",anchor=W)#7
tree.heading('GPTM', text="GPTM",anchor=W)#8
tree.heading('WDG', text="WDG",anchor=W)#9
tree.heading('RTC', text="RTC",anchor=W)#10
tree.heading('UART', text="UART",anchor=W)#11
tree.heading('I2C', text="I2C",anchor=W)#12#"SPI","USB","ADC","EEPROM","DAC","CAN","SDIO","COMP","AES","TRNG","PACK"
tree.heading('USB', text="USB",anchor=W)#13
tree.heading('ADC', text="ADC",anchor=W)#14
tree.heading('EEPROM', text="EEPROM",anchor=W)#15
tree.heading('DAC', text="DAC",anchor=W)#16
tree.heading('CAN', text="CAN",anchor=W)#17
tree.heading('SDIO', text="SDIO",anchor=W)#18
tree.heading('COMP', text="COMP",anchor=W)#19
tree.heading('AES', text="AES",anchor=W)#20
tree.heading('TRNG', text="TRNG",anchor=W)#21
tree.heading('PACK', text="PACK",anchor=W)#22
tree.column('#0', stretch=NO, minwidth=0, width=0)#1
tree.column('#1', stretch=NO, minwidth=0, width=0)#2
tree.column('#2', stretch=NO, minwidth=0, width=60)#3
tree.column('#3', stretch=NO, minwidth=0, width=60)#4
tree.column('#4', stretch=NO, minwidth=0, width=60)#5
tree.column('#5', stretch=NO, minwidth=0, width=40)#6
tree.column('#6', stretch=NO, minwidth=0, width=40)#7
tree.column('#7', stretch=NO, minwidth=0, width=40)#8
tree.column('#8', stretch=NO, minwidth=0, width=40)#9
tree.column('#9', stretch=NO, minwidth=0, width=40)#10
tree.column('#10', stretch=NO, minwidth=0, width=40)#11
tree.column('#11', stretch=NO, minwidth=0, width=40)#12
tree.column('#12', stretch=NO, minwidth=0, width=40)#13
tree.column('#13', stretch=NO, minwidth=0, width=40)#14
tree.column('#14', stretch=NO, minwidth=0, width=40)#15
tree.column('#15', stretch=NO, minwidth=0, width=40)#16
tree.column('#16', stretch=NO, minwidth=0, width=40)#17
tree.column('#17', stretch=NO, minwidth=0, width=40)#18
tree.column('#18', stretch=NO, minwidth=0, width=40)#19
tree.column('#19', stretch=NO, minwidth=0, width=40)#20
tree.column('#20', stretch=NO, minwidth=0, width=40)#21
tree.column('#21', stretch=NO, minwidth=0, width=40)#22
tree.column('#22', stretch=NO, minwidth=0, width=40)#22
tree.pack()

###########################################################################

menubar = Menu(master)  
file = Menu(menubar, tearoff=0)  
file.add_command(label="New",command=db_related.display_text)  
file.add_command(label="Open")  
file.add_command(label="Save")  
file.add_command(label="Save as...")  
file.add_command(label="Close")  
  
file.add_separator()  
  
file.add_command(label="Exit", command=master.quit)  
  
menubar.add_cascade(label="File", menu=file)  


edit = Menu(menubar, tearoff=0)  
edit.add_command(label="Undo")  
  
edit.add_separator()  
  
edit.add_command(label="Cut")  
edit.add_command(label="Copy")  
edit.add_command(label="Paste")  
edit.add_command(label="Delete")  
edit.add_command(label="Select All")  
  
menubar.add_cascade(label="Edit", menu=edit)  
help = Menu(menubar, tearoff=0)  
help.add_command(label="About")  
menubar.add_cascade(label="Help", menu=help)  

view = Menu(menubar, tearoff=0) 
view.add_command(label="View")
menubar.add_cascade(label="View", menu=view) 
master.config(menu=menubar)  

btn=Button(master, text="MM32", fg='blue')
btn.place(x=20, y=40)
btn=Button(master, text="Quectel", fg='blue')
btn.place(x=20, y=80)
btn=Button(master, text="Mornsun", fg='blue')
btn.place(x=20, y=120)

#=====================================INITIALIZATION=======================================
if __name__ == '__main__':
    Database()
    master.mainloop()  





Tkinter pack example


from tkinter import *

root = Tk()
root.geometry("800x600")

for i in range(5):
    Label(root, text="heading1", relief=GROOVE).pack(fill=BOTH, expand=True)
for i in range(5):
    Label(root, text=str(i), relief=GROOVE).pack(side=RIGHT, fill=BOTH, expand=True)
for i in range(5):
    Label(root, text=str(i), relief=GROOVE).pack(side=BOTTOM, fill=BOTH, expand=True)
for i in range(5):
    Label(root, text=str(i), relief=GROOVE).pack(side=LEFT,fill=BOTH, expand=True)
root.mainloop()

tkinter combobox postcommand example


A Python function that receives a three digit no and return the ones place value?

def ones_place_value(a):
    b =a%10;
    return b;


val= int(input("enter three digit number\n"))
c=ones_place_value(val)
print(c)

How to create train ticketing inventory management system in Python?

using tkinter library we can create train ticketing inventory system

for loop in python

list=("anil","shiva","maha")

for i in list:
    print(i)

python class topic video