当前位置:网站首页>##51单片机实验之简易验证码发生器
##51单片机实验之简易验证码发生器
2022-07-02 11:21:00 【肖肖的猪会飞】
嘿!!好久不见,各位
会想小猪嘛?
嗯…怎么不会呢?
ヾ(≧ ▽ ≦)ゝ
前言:
本文由自主学习所做的一个实验,可能有很多不足,请各位大佬指出!!
一,摘要
这次的综合实验报告顺应着实验课题给出的题目写的,课题内容是验证码发生器。主要是通过运用该学期所学的单片机中串口通信、液晶显示器LCD1602、串口中断系统、外部中断的相关内容实现一个从主机(在虚拟终端输入)向子机发送6位数字或者字母的验证码验证信息,通过子机接收后在LCD1602上显示出来。为了验证其是否接收准确,这里在主机端也设计一个LCD1602液晶显示器显示在虚拟终端发送的内容,以此来检验子机接收的是否正确。此实验简易模拟了数字通信中验证码的发送机制,以下就是实验的全部内容。
二,目的
通过该实验来完善这阶段的单片机所学,顺便做一个总结,主要是串口通信的内容,准备接触嵌入式,也就为下面的学习做准备。
三,功能说明
在虚拟终端输入一个6位的字母或数字或者数字字母的组合,主机的LCD1602液晶显示器的显示屏上显示该输入的数据,按下按键即可发送该数据给子机,在子机的LCD1602显示屏上显示该数据。从验证码发生器的角度看就是主机向子机发送验证码,子机收到的验证码可以和主机匹对,检验验证码是否一致。
各部分的功能说明:
(1)主机AT89C51和子机的AT89C51:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可以降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
(2)LCD1602液晶显示器:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成。显示屏上64×16个显示单元与显示RAM区的1024字节相对应,每一字节的内容与显示屏上相应位置的亮暗对应。例如显示屏第一行的亮暗由RAM区的000H~00FH的16字节的内容决定,当(000H)=FFH时,屏幕左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,屏幕右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H…,(00EH)=00H,(00FH)=00H时,在屏幕的顶部显示一条由8条亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。lcd1602主要用于显示数字,字母,图形和一些自定义字符。由于其简单的显示控制和高性价比,它被广泛用于电子仪表,冰箱,空调,汽车电子仪表和其他设备。
(3)虚拟终端:共有4个接线端,其中RXD为数据接收端,TXD为数据发送端,RTS为请求发送信号,CTS为清除传送,是对RTS的响应信号。Proteus提供的虚拟终端相当于键盘和屏幕的双重功能,免去了上位机系统的仿真模型,使用户在用到单片机与上位机之间的串行通信时,直接由虚拟终端经RS-232模型与单片机之间异步发送和接收数据。这里只是利用了虚拟终端发送数据的功能。
四,硬件电路设计

用到的元器件名称:AT89C51、BUTTON、LM016L、POT
在该实验中就是利用AT89C51的I/O接口P2连接LCD1602显示器,从而将接收的数据显示在LCD1602显示屏上。主机的AT89C51上的RXD连接虚拟终端上的TXD,从而接收虚拟终端输入的数据,在主机上TXD连接子机上的RXD发送数据到子机。按键连接P3^2口,利用外部中断0控制。
五,程序设计
(1)这里首先要讲的是LCD1602文件,我们学习单片机的都知道,在学习这部分内容的时候,老师会给出相应的LCD1602头文件,其中的头文件是比较完善的。但是在这里,我们需要自己写入相应的内容,因为这里我所需要实现的是由虚拟终端输入所以在写.c程序的时候要把所定义的函数的内容放到主机和子机中写,不能直接使用网上或者老师给出的LCD1602的头文件 ,需要改动一下。
首先我们来看原本的头文件:
打开intrins.h头文件可以看到里面的命令,我们可以引用头部和尾部来说明有这个头文件,中间可以定义自己需要的命令,这样之后就很清楚的知道自己需要用到的函数命令和变量。如下图
定义完所需要的变量之后就可以写LCD1602的.c文件了,如下:
(2)主机的.c文件
从main函数说起:
从main函数可以看出,这里包含了几个函数:
1,窗口函数
作用:定义串口工作方式1和定时工作方式1,设定波特率为9600(可以自行设计),打开总中断和串口中断。
2,外部中断开关函数
作用:打开外部中断(按键控制数据的发送)
3,LCD1602初始化函数
4,发送函数
作用:按键按下的时候数据发送给子机
5,显示函数
(以上解析的地方需要注意,这里就不做重复解析,又不懂的可以来问我哈)
作用:在显示屏上显示数据。
(3)主机全部的.c文件




这就是验证码发送机制的主机的简易函数
(4)子机程序

子机程序比主机的要简单一些,但都是差不多的,就不做过多的解析了。
六,仿真

这里需要提醒一点:虚拟终端的波特率需要自己根据自己所设的波特率来设计的。
好啦!宝子们,以上就是该实验的全部内容,希望能帮助你对51单片机有进一步的理解
如果这篇文章对你有帮助或者你也喜欢小博主的,记得点赞评论加关注哦!不然就找不到我了o(▽)q
多多支持小博主哈
我们一起加油
边栏推荐
- Fabric.js 元素被选中时保持原有层级
- C crystal report printing
- What is erdma? Popular science cartoon illustration
- < schematic diagram of oral arithmetic exercise machine program development> oral arithmetic exercise machine / oral arithmetic treasure / children's math treasure / children's calculator LCD LCD driv
- Thymeleaf dependency
- Dangbei projection 4K laser projection X3 Pro received unanimous praise: 10000 yuan projector preferred
- Development and design of animation surrounding mall sales website based on php+mysql
- NLA natural language analysis realizes zero threshold of data analysis
- Tencent cloud tstor unified storage passed the evaluation of the first batch of basic file storage capabilities of the ICT Institute
- docker mysql
猜你喜欢

Federated Search: all requirements in search

A white hole formed by antineutrons produced by particle accelerators

Who is better, Qianyuan projection Xiaoming Q1 pro or Jimi new play? Which configuration is higher than haqu K1?

Daily learning 3

Development and design of animation surrounding mall sales website based on php+mysql

Dangbei projection 4K laser projection X3 Pro received unanimous praise: 10000 yuan projector preferred

联合搜索:搜索中的所有需求

Certik released the defi security report in 2021, disclosing key data of industry development (PDF download link attached)

Borui data integrated intelligent observable platform was selected into the "Yunyuan production catalogue" of China Academy of communications in 2022

每日学习3
随机推荐
Route (II)
How kaggle uses utility script
Data Lake (11): Iceberg table data organization and query
2022 home projector preferred! Dangbei F5 brings the ultimate audio-visual experience with its powerful audio-visual effect
STM32库函数进行GPIO初始化
Contrôleur pour threejs cube Space Basic Controller + Inertial Control + Flight Control
Understanding of mongodb
STM32标准固件库函数名记忆(二)
给Android程序员的一些面试建议「建议收藏」
The use of TestNG, the testing framework (II): the use of TestNG XML
Yolov3 & yolov5 output result description
PTA题库 ===>复数四则运算,一帮一,考试座位号(7-73)
Methods of software testing
Development and design of animation surrounding mall sales website based on php+mysql
Qt原代码基本知识
Qt新建项目
YOLOv3&YOLOv5输出结果说明
Dangbei projection 4K laser projection X3 Pro received unanimous praise: 10000 yuan projector preferred
提示:SQL Server 阻止了对组件‘Ad Hoc Distributed Queries ‘的STATEMENT ‘OpenRowset/OpenDatasource“”
threejs的控制器 立方體空間 基本控制器+慣性控制+飛行控制