微机原理课程设计说明书

上传人:na****u 文档编号:57076989 上传时间:2022-02-23 格式:DOCX 页数:32 大小:1,016.46KB
收藏 版权申诉 举报 下载
微机原理课程设计说明书_第1页
第1页 / 共32页
微机原理课程设计说明书_第2页
第2页 / 共32页
微机原理课程设计说明书_第3页
第3页 / 共32页
资源描述:

《微机原理课程设计说明书》由会员分享,可在线阅读,更多相关《微机原理课程设计说明书(32页珍藏版)》请在装配图网上搜索。

1、武汉理工大学微机原理课程设计说明书目录目录1微机原理课程设计说明书- 1 -一.必做部分- 1 -1.矩阵键盘下的数码管时间显示- 1 -1.数码管介绍- 1 -1.2数码管显示- 2 -1.2.1数码管静态态显示- 2 -1.2.2数码管动态显示- 2 -1.3矩阵键盘- 3 -1.4中断定时器介绍- 4 -1.4.1中断的概念- 4 -1.4.2中断系统的结构- 5 -1.4.3中断请求标志- 5 -1.4.4 80C51中断的控制- 6 -1.4.5定时计数器的结构和工作原理- 8 -1.5矩阵键盘控制下的数码管时间滚动显示- 11 -1.5.1功能设计- 11 -1.5.2设计思路-

2、11 -2. 串口控制下的1602液晶显示- 12 -2.1 1602液晶显示- 12 -2.1.11602液晶显示原理- 12 -2.1.2 1602液晶显示屏显示的实现- 14 -2.2串口通信- 17 -2.2.1 51串口通讯介绍- 17 -2.3串口控制液晶显示屏实验- 20 -2.3.1功能设计- 20 -2.3.2设计思路- 20 -2.3.2注意事项- 21 -3.A/D转换- 21 -3.1A/D转换指标- 21 -3.2AD0809介绍- 23 -3.3将A/D转换用数码管显示- 24 -3.3.1功能设计- 24 -3.3.2设计思路- 24 -3.3.3注意事项- 25

3、 -二.选作部分- 25 -1.任务要求- 25 -1.1选择题目- 25 -1.2实现方法- 25 -2.Python语言介绍- 26 -3. Python在此题目中的作用- 27 -4.Python与单片机串口的对接- 27 -5.串口转WiFi模块介绍- 28 -6.整体实现流程- 28 -7.实现效果- 29 -附录- 30 -1.数码管时钟滚动程序- 30 -2.串口控制1602时间显示- 42 -1602.h- 42 -1602.c- 42 -LCD.c- 46 -AD转换- 57 -选做- 60 -Python- 60 -串口OK发送提醒- 61 -微机原理课程设计说明书一.必做

4、部分1. 矩阵键盘下的数码管时间显示1.数码管介绍单片机常用的显示器有发光二极管LED显示器、液晶LCD)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(58、88点阵等)。使用LED显示器时,要注意区分这两种不同的接法,分别为共阴极和共阳极,接法如图所示。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。本次我使用的是共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。共阴极数码管码表:1.2数码管显示1.2.1数码管静态态显示LED显示器工作方式有两种:静

5、态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,编程控制简单,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。1.2.2数码管动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电

6、路中的。一般操作中,当有多个数码管时,会使用到锁存器,将I/O口的电平信息进行锁存,锁存器在控制动态显示的功能时可分为两种功能,一个是位锁存,一个是段锁存。所谓位锁存就是控制哪一个数码管亮,所谓位锁存就是控制某一个数码管的字形码显示。首先进行位选,选出哪一个锁存器亮,之后进项段选,选中该数码管需要显示的字形。当数码管个数少于等于8个时,均只需要占用两组I/O口,十分节约单片机资源。在编程时,需要注意的是控制每个段选信号、位选信号的I/O口时,首先都要进行控制该段选或位选信号的锁存器的锁存器的使能端。先开启使能信号端,之后进行位选或段选,之后再关闭使能信号端。1.3矩阵键盘键盘分编码键盘和非编码

7、键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘; 在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。由于独立键盘很简单,此处仅仅介绍矩阵键盘。且以4X4的矩阵键盘进行原理说明。原理图如下:可以知道,每个按键由两个I/O口控制,当一个I/O口为高电平时,控制行或一列四个按键的一端为高电平状态。这样以来,16个按键便可以只需8个I/O口控制。因此当按键按下去时,如果想让其处于导通状态,即两端都处于高电平状态,只需使得控制该按键两端的I/O

8、口同处于高电平状态。如矩阵键盘原理图可知,首先使控制行的某一I/O口为高电平,之后再使控制列的某一I/O口为高电平。那么在编程控制中,即可用switch( )、case语句,首先选出P3.0、P3.1、P3.2、P3.3中的一个控制行的I/O口,再用switch( )、case语句选中P3.4、P3.5、P3.6、P3.7中的一个控制列的I/O口。按照此种思维编程既可以选中自己想要的I/O口,并且设置相应的按键功能,比如按其中一个按键实现数码管数字加一,按一个按键使得数码管维持原示数等。将多个按键组成矩阵键盘是一个十分好的方法,这种方法节约资源,不需要过多I/O口同时仍然可以实现按键的不同工作

9、。按键控制在生活中无处不在,矩阵键盘有着重要意义。1.4中断定时器介绍1.4.1中断的概念中断对于单片机来说有着举足轻重的作用,它是控制单片机事件发生的重要手段。CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的

10、部件称为中断系统(中断机构)。如图所示:1.4.2中断系统的结构80C51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。1. (P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。2、 (P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。3、 TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器

11、T0发生溢出时,置位TF0,并向CPU申请中断。4、 TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。 5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。1.4.3中断请求标志1.4.3.1 TCON的中断标志IT0(TCON.0),外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断0中断请求标志位。IT1(TCON.2),

12、外部中断1触发方式控制位。IE1(TCON.3),外部中断1中断请求标志位。TF0(TCON.5),定时/计数器T0溢出中断请求标志位。TF1(TCON.7),定时/计数器T1溢出中断请求标志位。1.4.3.2 SCON中断标志RI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。注意,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能自动清除TI,TI必须由软件清除。1.4.4 80C51中断的控制1.4.4

13、.1中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA (IE.7), CPU中断允许(总允许)位。1.4.4.2中断优先级的控制80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的 。PX0(IP.0),外部中断0优先级设定位;PT0(IP.1),定时/计数器T

14、0优先级设定位;PX1(IP.2),外部中断0优先级设定位;PT1(IP.3),定时/计数器T1优先级设定位;PS (IP.4),串行口优先级设定位;PT2 (IP.5) ,定时/计数器T2优先级设定位。而80C52单片机有四个中断优先级,即可实现四级中断服务嵌套。每个中断源的中断优先级由中断优先级寄存器IP和IPH中的相应位的状态来规定的 。PX0(IPH.0),外部中断0优先级设定位;PT0(IPH.1),定时/计数器T0优先级设定位;PX1(IPH.2),外部中断0优先级设定位;PT1(IPH.3),定时/计数器T1优先级设定位;PS (IPH.4),串行口优先级设定位;PT2 (IPH

15、.5) ,定时/计数器T2优先级设定位。同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:1.4.4.3中断相应的条件和时间1.中断源有中断请求;2.此中断源的中断允许位为1;3.CPU开中断(即EA=1)。以上三条同时满足时,CPU才有可能响应中断。1.4.5定时计数器的结构和工作原理1.4.5.1定时计数器的结构定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志

16、。加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。1.4.5.2定时计数器的控制80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。(

17、一)工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:GATE:门控位。GATE0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。 定时/计数模式选择位:0为定时模式;=1为计数模式。M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。(二)控制寄存器TCONTCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位

18、用于控制定时/计数器的启动和中断申请。其格式如下:F1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。(

19、三)定时计数器初始化由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始货的步骤一般如下:1、确定工作方式(即对TMOD赋值);2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);3、根据需要开放定时器/计数器的中断(直接对IE位赋值);4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。下面介绍一下确定时时/计数器初值的具体方法。因为在不同工作方式下计数器位数

20、不同,因而最大计数值也不同。现假设最大计数值为M,那么各方式下的最大值M值如下:方式0:M=213=8 192方式1:M=216=65 536方式2:M=28=256方式3:定时器0分成两个8位计数器,所以两个M均为256。因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:X=M-计数值1.5矩阵键盘控制下的数码管时间滚动显示1.5.1功能设计利用以上基础知识,需要完成数码管时间滚动显示。用四位数码管能够显示年份、月份、日期、时间,同时还可以设置闹钟,修改时间等的设计。根据要求,我设计了如下时钟显示数码管:(1) 按键s1启动年份显示(2) 按键s2启动月份

21、、日期显示(3) 按键s3显示时间(4) 按键s4分钟加一(5) 按键s5小时加一(6) 按键s6滚动显示1.5.2设计思路设计了以上功能,我设计了如下设计方案:(1) 设定如下全局变量,year、month、day、hour、minute、second,另外再设置一个全局变量num,分别表示年、月、日、时、分、秒,num用于在定时器中,以实现second+,进而实现minute+,hour+等。(2) 设定year_display();month_day_display()、hour_minute_display(),三个显示函数。分别表示显示年份、日期、时间。(3) 设定clock_dis

22、play(),用于显示闹钟,对于闹钟相应,使用了蜂鸣器。(4) 设定全局变量范围设定函数rand()。(5) 数码管移位函数move()。2. 串口控制下的1602液晶显示2.1 1602液晶显示2.1.11602液晶显示原理1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm 引脚功能说明 1602LCD 采用标准的 14脚(无背光

23、)或 16脚(带背光)接口,各引脚接口说明如下所示: 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 引脚接口说明: 第 1 脚:VSS 为地电源。 第 2 脚:VDD接 5V正电源。 第 3 脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时

24、会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W。 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W为低电平时可以写入数据。 第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 714脚:D0D7为 8 位双向数据线。 第 15脚:背光源正极。 第 16脚:背光源负极。LCD寄存器的选择:ER/WRS功能

25、说明100写入命令寄存器101写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0X不动作2.1.2 1602液晶显示屏显示的实现2.2.2.1读取忙碌单片机处理速度较快,微秒级的处理速度,而LCD的处理速度是100ns,所以,单片机必须要等LCD不忙的时候才传数据给他,否则,LCD无法处理。在1602工作过程中,读取或者写入都需要判断液晶显示屏是否处于忙碌状态,有E(使能端)=1、R/W(读写端)=1、RS(数据命令端)=0时读取忙碌标志。忙碌时,BF=1,空闲时BF=0。其作用是告诉单片机:我现在是否有空接受你的指令。在对1602发指令时,必须要有个时间延迟,才能执行完成,之

26、后才可以接收下一条指令,不可处于忙碌状态下接收下一条指令,因此需要读取1602是否处于正在忙碌状态。对于1602的每一步操作都需要检测1602的忙碌状态。值得注意的是,在实际操作过程中,很多时候会用指令间隔几个空始终周期,程序中保证每条对液晶的指令都有一 定的间隔,如果不加,可能会出现某些指令得不到执行的状况,来不及响应,比如在吃饭时,是先吃饭还是先吃菜,总要有个先后,总得把嘴里的吃完了 再吃下一口。因此尽量对其进行指令周期的延时,保证每条程序的顺利进行。2.1.2.2写入指令的实现首先对1602进行忙碌状态检测,之后写入指令流程如下:2.1.2.3写入数据的实现首先对1602进行忙碌状态检测

27、,之后写入数据流程如下:2.2串口通信2.2.1 51串口通讯介绍随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。2.2.1.1 80C51串行口结构有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。2.2.1.2 80C51串行口的控制寄存器 SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送

28、控制以及设置状态标志: SM0和SM1为工作方式选择位,可选择四种工作方式:PCON中只有一位SMOD与串行口工作有关 , SMOD(PCON.7) 波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。2.2.1.3波特率设置在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相

29、同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD/64) fosc 方式1的波特率 =(2SMOD/32)(T1溢出率)方式3的波特率 =(2SMOD/32)(T1溢出率)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。 T1 溢出率 = fosc /12256 (TH1)在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示:串行口工作之前,应对其进行初始化,主要是设置产

30、生波特率的定时器1、串行口控制和中断控制。具体步骤如下:(1)确定T1的工作方式(编程TMOD寄存器);(2)计算T1的初值,装载TH1、TL1;(3)启动T1(编程TCON中的TR1位);(4)确定串行口控制(编程SCON寄存器);串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。2.3串口控制液晶显示屏实验2.3.1功能设计(1)能够用显示屏显示年、月、日及时间、星期,并且能够滚屏显示。(2)能够通过串口通讯实现时间的设置。2.3.2设计思路(1)设置液晶显示屏1602,编写其测忙碌函数、写数据函数、写命令函数、设置字符位置函数;(2)设置全局变量year4,month2,d

31、ay2、second0,second1,minute0,minute1,hour0,hour1,设置定时器T0,实现计时;(3)检验年份是否为闰年,设置月份天数,对年份、日期、年份实现正确自增;(4)设置disp_time()、disp_date()函数,显示时间与日期函数;(5)对相应的日期时间进行初始化;(6)用T1设置波特率,打开串口中断,设置串口中断实现,实现串口对液晶显示屏显示状态的控制。2.3.2注意事项所有传到1602的数据或指令都是单个或逐条发送的,比如发送数据16,只能一个一个发送,先发送1,再发送6,因此在对年份、月份等定义时,都是逐位定义或者利用数组逐位定义,便于逐位发送

32、。而在数据发送过程中,实际上发送的不是实际的数字值,而是相应的ASC码值,因此在发送数据过程中应该将相应的数字值相应加48,否则会出现无法识别的乱码。无法正确显示想要的内容。3.A/D转换3.1A/D转换指标所谓A/D装换就是讲模拟信号转换成数字信号。在现实生活的数据采集中,同城采集到的是计算机无法识别处理的连续的模拟信号,此时需要进行A/D转换,将其转换成离散的数字信号,可以直接交给计算机处理使用。因此A/D转换器对于信号的处理有着十分重要的作用和意义。对A/D转换器的选择根据不同的应用有不同的要求,因此对A/D转换器的重要参考指标需要掌握清楚。其主要指标有:1、分辨率ADC的分辨率是指使输

33、出数字量变化一个相邻数码所需输入模拟电压的变化量。2、量化误差ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。3、偏移误差偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。4、满刻度误差满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。5、线性度线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。6、绝对精度在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶

34、梯的水平中点进行测量,它包括了所有的误差。7、转换速率ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。3.2AD0809介绍A/D转换器有多种类型,由于我最熟悉的A/D转换器为AD0809,且其成本低,此处我直接使用了具有较快的处理速率,并且成本和功耗低,为逐次逼近式A/D转换器的AD0809。在进行完A/D转换之后的信号,立即交给单片机,用数码管显示出来。AD080915、2628,IN0IN7:8路模拟量输入端。1415、8、1721,D0D7:8位数字量输出端。2325,ADDA、ADDB、ADDC:3位

35、地址输入线,用于选通8路模拟输入中的一路22,ALE:地址锁存允许信号,输入,高电平有效,对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。6,START:AD转换启动信号,输入高电平有效,START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST.7,EOC:AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9,OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量,用于控制三态输出锁存器向单片机输出转

36、换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。10,CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ,EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。12、16,REF(+)、REF(-):基准电压。 11,Vcc:电源,单一5V。 13,GND:地。 3.3将A/D转换用数码管显示3.3.1功能设计通过单片机自身产生时钟信号,将外部产生的模拟信号通过数码管显示出来。3.3.2设计思路(1)利用单片机自身与其他元器件结合产生模拟信号送入AD0809(2)选通AD0809中的一路,将模拟信号送入(3

37、)初始化AD0809,定义启动信号ST,转换结束信号EOC ,输出使能信号OE。3.3.3注意事项AD0809需要时钟信号,在使用时一定要加时钟信号,否则无法正确工作,此处直接用单片机对其加时钟信号。在实验前先要对输出值的范围及其精度做好把握,便于编程是对数码管值的限定。二.选作部分1.任务要求1.1选择题目智能信息提示:每天早上自动搜集门户网站头条新闻、当天天气情况等,滚动显示在屏幕中。也可以将用户设定的提醒信息从PC机推送至单片机系统显示;也可以若置于门背,开门时显示重要提示信息。1.2实现方法我通过Python编程语言从网站抓取当天天气情况,再通过串口发送至单片机,通过单片机控制1602

38、显示屏,实现当天天气是显示。我抓取的网站天气信息来自人民网,其网站地址为 。在此要特别说明一点,由于个人条件有限,没有带中文字库的液晶显示屏,所以直接利用了Python进行了天气的中英文转换后再利用显示屏进行显示的。同时,为了使用方便,此处使用WiFi模块,将串口转换成无线连接方式,便于控制。其实此题目的本质依然是串口通讯,只不过为了完成智能信息提示,更加方便实时,使用了串口WiFi模块。至于智能抓取网站信息的实现,就体现出在硬件之外再多懂得一门编程语言的重要性,能够帮助我们更好的解决问题。2. Python语言介绍Python,是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完

39、善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。可扩充性可说是Python作为一种编程语言的特色。新的内置模块可以用C 或 C+写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使

40、得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。另外Python在其他

41、部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。 Python应用广泛,网络开发有 socket编程, twisted ,jabber ,python-qq ;Web开发有mod_python, zope/plone, django, karrigell;图形开发有 PIL,plot,2d,3d;GUI开发有tcl/tk ,wxPython ,pygtk ,pyqt ,ctypes ,pyswt ;文档处理有 epydoc , reStruecturedText , reportlab , moinmoin ;科学计算有

42、 numarray , numeric;除此,还有移动开发、嵌入开发、游戏开发、数据库开发等等。3. Python在此题目中的作用Python编程语言在此项目中完成自动获取网站新闻信息的用,由于题目要求“每天早上自动搜集门户网站头条新闻、当天天气情况等”,因此仅仅C语言是不够用,无法完成的,因此需要其他编程语言的帮助,由于个人一直在学习Python编程语言,对其掌握程度较好,而且用其解决此问题比较简单,因此我直接选用了Python作为解决此问题的办法。4.Python与单片机串口的对接在Python串口与单片机串口对接中,实际上是单片机与Python之间的对话过程,当单片机向上位机发送“OK”

43、时,表示单片机已经准备好接收数据了。上位机收到讯息,Python开始自动搜索网上的新闻、天气等信息反馈到单片机,进而由单片机通过1602液晶显示屏显示出来,由此过程即完成了Python串口与单片机串口之间的对接与信息交流,且是双向的交流。5.串口转WiFi模块介绍串口是一种信息交流的手段,它完成是机器与机器、人与机器等之间的交流与对话,在通信中起着重要作用,然而作为一种有线的交流通讯方式有着其局限性,很多时候用起来并不是十分方便便利,由此WiFi模块的优势也显现出来。Wi-Fi模块又名串口Wi-Fi模块,属于物联网传输层,功能是将串口或TTL电平转为符合Wi-Fi无线网络通信标准的嵌入式模块,

44、内置无线网络协议IEEE802.11b.g.n协议栈以及TCP/IP协议栈。传统的硬件设备嵌入Wi-Fi模块可以直接利用Wi-Fi联入互联网,是实现无线智能家居、M2M等物联网应用的重要组成部分。此处我使用WiFi模块,将原来的串口转换成无线网络通信标准,将原来的有线通讯方式编程了无线通讯方式,大大便利了人为的操作,更好的完成实时搜索网络信息,更方便地完成实时反馈。6.整体实现流程通过以上Python与单片机串口的对接和单片机串口转WiFi的过程,可以很容易理解此智能信息提示的实现过程。在Python串口与单片机串口对接中,实际上是单片机与Python之间通过WiFi模块对话的过程,当单片机通过串口WiFi模块向上位机发送“OK”时,表示单片机已经准备好接收数据了,上位机收到讯息,Python开始自动搜索网上的新闻、天气等信息通过串口WiFi模块反馈到单片机,进而由单片机通过1602液晶显示屏显示出来,由此过程即完成了Python串口与单片机之间的对接与信息交流。最终完成智能信息提示的过程。- 30 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!