89C52 PLC仿制原码:fx1n.rar的工业控制应用

版权申诉
0 下载量 95 浏览量 更新于2024-11-17 收藏 4KB RAR 举报
资源摘要信息:"fx1n.rar_89C52 PLC_89c52 p_FX1N_仿PLC_仿fx1n" 根据给定的文件信息,我们可以提炼出以下知识点: 1. PLC(可编程逻辑控制器)概念 PLC是一种用于工业自动化控制的电子设备,它使用可编程存储器来存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作指令,用以控制各种类型的机械或生产过程。PLC能够根据控制要求,灵活地编写控制程序,实现复杂的逻辑控制,广泛应用于自动化生产线、石油化工、冶金、轻工业、交通运输等领域。 2. 89C52单片机简介 89C52是一款8位微控制器,属于8051系列的改进型产品,由美国英特尔公司推出。它内部集成了8KB的Flash ROM(可擦除可编程只读存储器)和256字节的RAM(随机存取存储器),具有4个并行I/O口,3个定时器/计数器和6个中断源等功能,适用于各种微处理器控制场合。 3. 仿PLC软件与89C52的结合使用 “仿PLC”可能是指使用89C52单片机来模拟PLC的功能,通过编写特定的程序代码实现PLC的控制逻辑。这种结合可以用来进行工业控制项目的开发和测试,尤其是在没有实际PLC硬件的情况下,通过模拟PLC行为来验证控制程序的正确性。 4. 工业控制编程基础 在进行工业控制时,编程是实现控制逻辑的关键。编程知识涵盖了对不同指令集的理解、编程逻辑的构建、I/O端口的配置、定时器和计数器的使用、中断处理以及通讯协议的应用等方面。 5. 资源文件的分析 - fx1n.hex:该文件很可能是一个包含汇编语言编写的89C52单片机的机器码,用于模拟PLC功能。它可能是89C52单片机的固件或者是用于仿PLC项目的程序代码。 ***.txt:这个文件名暗示了它可能是一个文本文件,包含了网址信息。可能是一个网页链接,指向了提供相关程序、文档或资源的网站,例如PUDN(程序员大本营),一个可能提供编程相关资源的网站。但根据文件名列表,这个文件可能是一个参考文档或者辅助材料,并不直接涉及仿PLC程序的源代码。 综合以上信息,可以看出该压缩包涉及到使用89C52单片机进行仿PLC程序开发的资源。开发者可以利用89C52单片机的编程能力,编写用于工业控制的原码,实现特定的控制逻辑。此外,了解如何利用通用的8位微控制器进行工业控制,也能够帮助开发者在没有专用PLC硬件时,进行项目的开发与模拟。

import cv2 import face_recognition import numpy as np from PIL import Image, ImageDraw,ImageFont video_capture = cv2.VideoCapture(r'C:/Users/ALIENWARE/123.mp4')#如果输入是(0)为摄像头输入 #现输入为MP4进行识别检测人脸 first_image = face_recognition.load_image_file("1.jpg") first_face_encoding = face_recognition.face_encodings(first_image)[0] Second_image = face_recognition.load_image_file("2.jpg") Second_face_encoding = face_recognition.face_encodings(Second_image)[0] third_image = face_recognition.load_image_file("3.jpg") third_face_encoding = face_recognition.face_encodings(third_image)[0] inside_face_encodings = [first_face_encoding,Second_face_encoding,third_face_encoding] inside_face_names = ['A','B','C'] face_locations = [] face_encodings = [] face_names = [] process_this_frame = True while True: ret, frame = video_capture.read() small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25) rgb_small_frame = small_frame[:, :, ::-1] if process_this_frame: face_locations = face_recognition.face_locations(rgb_small_frame) face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations) face_names = [] for face_encoding in face_encodings: matches = face_recognition.compare_faces(inside_face_encodings, face_encoding) name = '未录入人脸' if True in matches: first_match_index = matches.index(True) name = inside_face_names[first_match_index] face_names.append(name) process_this_frame = not process_this_frame for (top, right, bottom, left), name in zip(face_locations, face_names): top *= 4 right *= 4 bottom *= 4 left *= 4 cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) img_pil = Image.fromarray(frame) draw = ImageDraw.Draw(img_pil) fontStyle = ImageFont.truetype("C:/Windows/Fonts/simsun.ttc", 32, encoding="utf-8") draw.text((left + 6, bottom - 6), name, (0, 200, 0), font=fontStyle) frame = np.asarray(np.array(img_pil)) cv2.imshow('face_out', frame) if cv2.waitKey(1) & 0xFF == ord('q'): #退出需要按下Q键否则内核会崩溃 break video_capture.release() cv2.destroyAllWindows()

2023-06-07 上传

写出以下代码的函数说明:# 界面初始化,设置界面布局 def initUI(self): main_widget = QWidget() main_layout = QHBoxLayout() font = QFont('楷体', 15) # 主页面,设置组件并将组件放在布局上 left_widget = QWidget() left_layout = QVBoxLayout() img_title = QLabel("样本") img_title.setFont(font) img_title.setAlignment(Qt.AlignCenter) self.img_label = QLabel() img_init = cv2.imread(self.to_predict_name) h, w, c = img_init.shape scale = 400 / h img_show = cv2.resize(img_init, (0, 0), fx=scale, fy=scale) cv2.imwrite("images/show.png", img_show) img_init = cv2.resize(img_init, (224, 224)) cv2.imwrite('images/target.png', img_init) self.img_label.setPixmap(QPixmap("images/show.png")) left_layout.addWidget(img_title) left_layout.addWidget(self.img_label, 1, Qt.AlignCenter) left_widget.setLayout(left_layout) right_widget = QWidget() right_layout = QVBoxLayout() btn_change = QPushButton(" 上传图片 ") btn_change.clicked.connect(self.change_img) btn_change.setFont(font) btn_predict = QPushButton(" 开始识别 ") btn_predict.setFont(font) btn_predict.clicked.connect(self.predict_img) label_result_f = QLabel(' 花卉名称 ') self.result_f = QLabel("等待识别") self.label_info = QTextEdit() self.label_info.setFont(QFont('楷体', 12)) label_result_f.setFont(QFont('楷体', 16)) self.result_f.setFont(QFont('楷体', 24)) right_layout.addStretch() right_layout.addWidget(label_result_f, 0, Qt.AlignCenter) right_layout.addStretch() right_layout.addWidget(self.result_f, 0, Qt.AlignCenter) right_layout.addStretch() right_layout.addWidget(self.label_info, 0, Qt.AlignCenter) right_layout.addStretch() right_layout.addWidget(btn_change) right_layout.addWidget(btn_predict) right_layout.addStretch() right_widget.setLayout(right_layout)

2023-06-02 上传