当前位置:网站首页>##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
多多支持小博主哈
我们一起加油
边栏推荐
- PyQt5_QScrollArea内容保存成图片
- Uniapp automated test learning
- Stm32-dac Experiment & high frequency DAC output test
- Who is better, Qianyuan projection Xiaoming Q1 pro or Jimi new play? Which configuration is higher than haqu K1?
- Solving the longest subsequence with linear DP -- three questions
- Understanding of mongodb
- Daily learning 3
- Openharmony notes --------- (4)
- NLA natural language analysis makes data analysis more intelligent
- Quarkus learning IV - project development to deployment
猜你喜欢

Yyds dry goods inventory software encryption lock function

Codeforces Round #803 (Div. 2)(A~D)

There is no solution to the decryption error of the remote user 'sa' and the service master password mapped from the remote server 'to the local user' (null) /sa '

YOLOv3&YOLOv5输出结果说明

The use of TestNG, the testing framework (II): the use of TestNG XML

php链表创建和遍历

Pychart connects to the remote server

In 2021, the global styrene butadiene styrene (SBS) revenue was about $3722.7 million, and it is expected to reach $5679.6 million in 2028

Quick analysis: easy to share the Internet

快解析:轻松实现共享上网
随机推荐
MySQL 45 lecture - learning the actual battle of MySQL in Geek time 45 Lecture Notes - 05 | easy to understand index (Part 2)
没有从远程服务器‘‘映射到本地用户‘(null)/sa‘的远程用户‘sa‘及服务主密码解密错误的解决办法
A white hole formed by antineutrons produced by particle accelerators
每日学习2
篇9:XShell免费版安装
Stm32-dac Experiment & high frequency DAC output test
Use of freemaker
NLA natural language analysis realizes zero threshold of data analysis
Fabric.js 动态设置字号大小
TeamTalk源码分析之win-client
每日学习3
Word frequency statistics & sorting
Chinese science and technology from the Winter Olympics (III): the awakening and evolution of digital people
Launcher startup process
go操作redis
< 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
Some interview suggestions for Android programmers "suggestions collection"
The global special paper revenue in 2021 was about $27 million, and it is expected to reach $35 million in 2028. From 2022 to 2028, the CAGR was 3.8%
Understanding of mongodb
线性dp求解 最长子序列 —— 小题三则