正在加载...
正在加载...
正在加载...
       

正在加载... 正在加载...


正在加载...

单片机c语言教程

单片机C语言实验及实践教程35.DS18B20数字温度计使用
相关内容: 35.DS18B20 温度计 数字 实验 教程 使用 实践 语言 单片机
DS18B20数字温度计使用 1.DS18B20基本知识 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 1、DS18B20产品的特点 (1)、只要求一个端口即可实现通信。 (2)、在DS18B20中的每个器件上都有独一无二的序列号。 (3)、实际应用中不需要外部任何元器件即可实现测温。 (4)、测量温度范围在-55。C到+125。C之间。 (5)、数字温度计的分辨率用户可以从9位到12位选择。 (6)、内部有温度上、下限告警设置。 2、DS18B20的引脚介绍 TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。 (底视图) 图1 表1DS18B20详细引脚功能描述 序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 3.DS18B20的使用方法 由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总..
单片机C语言实验及实践教程34:
相关内容: 实验 教程 实践 语言 单片机
带有存储器功能的数字温度计-DS1624技术应用 1.DS1624基本原理 DS1624是美国DALLAS公司生产的集成了测量系统和存储器于一体的芯片。数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1624。其数字温度输出达13位,精度为0.03125℃。DS1624可工作在最低2.7V电压下,适用于低功耗应用系统。 (1).DS1624基本特性 ◆无需外围元件即可测量温度 ◆测量范围为-55℃~+125℃,精度为0.03125℃ ◆测量温度的结果以13位数字量(两字节传输)给出 ◆测量温度的典型转换时间为1秒 ◆集成了256字节的E2PROM非易性存储器 ◆数据的读出和写入通过一个2-线(I2C)串行接口完成 ◆采用8脚DIP或SOIC封装,如图2.34.1 图2.34.1 (2).引脚描述及功能方框图 其引脚描述如表1所示: DS1624的功能结构图如图4.34.2所示: 图4.34.2 (3).DS1624工作原理 温度测量 图4.34.3是温度测量的原理结构图 图4.34.3温度测量的原理结构图 DS1624在测量温度时使用了独有的在线温度测量技术。它通过在一个由对温度高度敏感的振荡器决定的计数周期内对温度低敏感的振荡器时钟脉冲的计数值的计算来测量温度。DS1624在计数器中预置了一个初值,它相当于-55℃。如果计数周期结束之前计数器达到0,已预置了此初值的温度寄存器中的数字就会增加,从而表明温度高于-55℃。 与此同时,计数器斜坡累加电路被重新预置一个值,然后计数器重新对时钟计数,直到计数值为0。 通过改变增加的每1℃内的计数器的计数,斜坡累加电路可以补偿振荡器的非线性误差,以提高精度,任意温度下计数器的值和每一..
单片机C语言实验及实践教程33 --- 4×4键盘的电子密码锁..
相关内容: 密码锁 实验 键盘 教程 实践 语言 单片机 电子
4×4键盘及8位数码管显示构成的电子密码锁1.实验任务用4×4组成0-9数字键及确认键。用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。2.电路原理图图4.33.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。(2).把“单片机系统“区域中的P2.0-P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。(3).把“单片机系统”区域中的P3.0-P3.7用8芯排线连接到“4×4行列式键盘”区域中的R1R2R3R4C1C2C3C4端子上。(4).把“单片机系统”区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L2端子上。(5).把“单片机系统”区域中的P1.7用导线连接到“音频放大模块”区域中的SPKIN端子上。(6).把“音频放大模块”区域中的SPKOUT接到喇叭上。4.程序设计内容(1).4×4行列式键盘识别技术:有关这方面内容前面已经讨论过,这里不再重复。(2).8位数码显示,初始化时,显示“P”,接着输入最大6位数的密码,当密码输入完后,按下确认键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“8.”。当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以..
单片机C语言实验及实践教程32:电子密码锁设计
相关内容: 密码锁 实验 设计 教程 实践 语言 单片机 电子
1.实验任务 根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。 2.电路原理图 图4.32.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPKIN端子上; (2).把“音频放大模块”区域中的SPKOUT端子接喇叭和; (3).把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上; (4).把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上; (5).把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上; 4.程序设计内容 (1).密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。 (2).密码的输入问题: 由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。 (3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入..
单片机C语言实验及实践教程31---6位数显频率计数器
相关内容: 31---6 频率 数显 实验 教程 计数器 实践 语言 单片机
1.实验任务 利用AT89S51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。要求能够对0-250KHZ的信号频率进行准确计数,计数误差不超过±1HZ。 2.电路原理图 图4.31.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P0.0-P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 (2).把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 (3).把“单片机系统”区域中的P3.4(T0)端子用导线连接到“频率产生器”区域中的WAVE端子上。 4.程序设计内容 (1).定时/计数器T0和T1的工作方式设置,由图可知,T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC=12MHz,因此:T0的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。 (2).T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。 5.C语言源程序 #include<AT89X52.H> unsignedcharcodedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; unsignedchardispbuf[8]={0,0,0,0,0,0,10,10}; unsignedchart..
单片机C语言实验及实践教程30: 四位数数字温度计
相关内容: 温度计 位数 数字 实验 教程 实践 语言 单片机
1.温度传感器AD590基本知识 AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1uA。 AD590温度与电流的关系如下表所示 摄氏温度 AD590电流 经10KΩ电压 0℃ 273.2uA 2.732V 10℃ 283.2uA 2.832V 20℃ 293.2uA 2.932V 30℃ 303.2uA 3.032V 40℃ 313.2uA 3.132V 50℃ 323.2uA 3.232V 60℃ 333.2uA 3.332V 100℃ 373.2uA 3.732V AD590引脚图 2.实验任务 利用AD590温度传感器完成温度的测量,把转换的温度值的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入数码管显示。 3.电路原理图 图4.30.1 4.系统板上硬件连线 (1).把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 (2).把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 (3).把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。 (4).把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。 (5).把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。 (6).把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。 (7).把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。 (8).把“模数转换模..
单片机C语言实验及实践教程29. 两点间温度控制
相关内容: 温度控制 两点 实验 教程 实践 语言 单片机
1.实验任务 用可调电阻调节电压值作为模拟温度的输入量,当温度低于30℃时,发出长嘀报警声和光报警,当温度高于60℃时,发出短嘀报警声和光报警。测量的温度范围在0-99℃。 2.电路原理图 图4.29.1 3.系统板上硬件连线 a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。 d)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。 e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。 f)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。 g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。 h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。 i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。 j)把“单片机系统”区域中的P3.6、P3.7用导线分别连接到“八路发光二极管指示模块”区域中的L1、L2上。 k)把“单片机系统”区域中的P3.5用导线连接到“音频放大模块”区域中的SPKIN端口上。 l)把“音频放大模块“区域中的SPKOUT插入音频喇叭。 4.汇编源程序 (略) 5.C语言源程序 #include<AT89X52.H> unsignedcharcodedispbitcode[]={..
单片机C语言实验及实践教程28:数字电压表
相关内容: 电压表 数字 实验 教程 实践 语言 单片机
1.实验任务 利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。 2.电路原理图 图1.28.1 3.系统板上硬件连线 a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。 d)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。 e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。 f)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。 g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。 h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。 i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。 4.程序设计内容 i.由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。因此产生CLK信号的方法就得用软件来产生了。 ii.由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF) 5.汇编源程序 (略) 6.C语..
单片机C语言实验及实践教程27. ADC0809A/D转换器基本应用技术..
相关内容: ADC0809A/D 应用技术 实验 转换器 教程 基本 实践 语言 单片机
1.基本知识 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1).ADC0809的内部逻辑结构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2).引脚结构 IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制..
单片机C语言实验及实践教程26:点阵式LED简单图形显示技术..
相关内容: 图形 简单 阵式 实验 技术 教程 实践 语言 单片机 显示
1.实验任务 在8X8点阵式LED显示“★”、“●”和心形图,通过按键来选择要显示的图形。 2.电路原理图 图4.26.1 3.硬件系统连线 (1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; (3).把“单片机系统”区域中的P2.0/A8端子用导线连接到“独立式键盘”区域中的SP1端子上; 4.程序设计内容 (1).“★”在8X8LED点阵上显示图如下图所示 12345678 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 12H,14H,3CH,48H,3CH,14H,12H,00H (2).“●”在8X8LED点阵上显示图如下图所示 12345678 ● ● ● ● ● ● ● ● ● ● ● ● 00H,00H,38H,44H,44H,44H,38H,00H (3).心形图在8X8LED点阵上显示图如下图所示 12345678 ● ● ● ● ● ● ● ● ● ● ● ● ● ● 30H,48H,44H,22H,44H,48H,30H,00H 5.汇编源程序 CNTAEQU30H COUNTEQU31H ORG00H LJMPSTART ORG0BH LJMPT0X ORG30H START:MOVCNTA,#00H MOVCOU..
单片机C语言实验及实践教程25. 点阵LED“0-9”数字显示技术..
相关内容: 数字显示 点阵 实验 技术 教程 实践 语言 单片机
1.实验任务 利用8X8点阵显示数字0到9的数字。 2.电路原理图 图4.25.1 3.硬件系统连线 (1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4.程序设计内容 (1).数字0-9点阵显示代码的形成 如下图所示,假设显示数字“0” 12345678 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 00003E4141413E00 因此,形成的列代码为00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别送到相应的列线上面,即可实现“0”的数字显示。 送显示代码过程如下所示 送第一列线代码到P3端口,同时置第一行线为“0”,其它行线为“1”,延时2ms左右,送第二列线代码到P3端口,同时置第二行线为“0”,其它行线为“1”,延时2ms左右,如此下去,直到送完最后一列代码,又从头开始送。 数字“1”代码建立如下图所示12345678 ● ● ● ● ● ● ● ● ● ● 其显示代码为00H,00H,00H,00H,21H,7FH,01H,00H 数字“2”代码建立如下图所示 12345678 ● ● ● ● ● ● ● ● ● ●..
单片机C语言实验及实践教程24----8X8 LED点阵显示技术
相关内容: 24----8X8 点阵 实验 技术 教程 实践 语言 单片机 显示
1.实验任务 在8X8LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。 2.电路原理图 图4.24.1 3.硬件电路连线 (1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4.程序设计内容 (1).8X8点阵LED工作原理说明 8X8点阵LED结构如下图所示 从图4.24.2中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。 5.汇编源程序 ORG00H START:NOP MOVR3,#3 LOP2:MOVR4,#8 MOVR2,#0 LOP1:MOVP1,#0FFH MOVDPTR,#TABA MOVA,R2 MOVCA,@A+DPTR MOVP3,A INCR2 LCALLDELAY DJNZR4,LOP1 DJNZR3,LOP2 MOVR3,#3 LOP4:MOVR4,#8 MOVR2,#7 LOP3:MOVP1,#0FFH MOVDPTR,#TABA MOVA,R2 MOVCA,@A+DPTR MOVP3,A DECR2 LCALLDELAY DJNZR4,LOP3 DJNZR3,LOP4 MOVR3,#3 LOP6:MOVR4,#8 MOVR2,#0 LOP5:MOVP3,#00H MOVDPTR,#TABB MOVA,R2 MOVCA,@A+DPTR MOVP1,A INCR2 LCALLDELAY DJNZR4,LOP5 DJNZR3,LOP6 MOVR3,#3 LOP8:MOVR4,#8 MOV..
单片机C语言实验及实践教程23. 模拟计算器数字输入及显示..
相关内容: 计算器 数字 实验 教程 输入 实践 语言 单片机 模拟 显示
1.实验任务 (1.开机时,显示“0” (2.第一次按下时,显示“D1”;第二次按下时,显示“D1D2”;第三按下时,显示“D1D2D3”,8个全显示完毕,再按下按键下时,给出“嘀”提示音。 2.电路原理图 图4.23.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上; (2.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上; (3.把“单片机系统”区域中的P0.0-P0.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (4.把“单片机系统:区域中的P2.0-P2.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; 4.相关程序设计内容 (1.行列式键盘输入及按键功能设定; (2.动态数码显示; (3.数码显示方式处理; 5.汇编源程序 (略) 6.C语言源程序 #include<AT89X51.H>
单片机C语言实验及实践教程22:电子琴
相关内容: 电子琴 实验 教程 实践 语言 单片机
1.实验任务 (1.由4X4组成16个按钮矩阵,设计成16个音。 (2.可随意弹奏想要表达的音乐。 2.电路原理图 图4.22.1 3.系统板硬件连线 (1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上; (2.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上; 4.相关程序内容 (1.4X4行列式键盘识别; (2.音乐产生的方法; 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示 音符 频率(HZ) 简谱码(T值) 音符 频率(HZ) 简谱码(T值) 低1DO 262 63628 #4FA# 740 64860 #1DO# 277 63731 中5SO 784 64898 低2RE 294 63835 #5SO# 831 64934 #2RE# 311 63928 中6LA 880 64968 低3M 330 64021 #6 932 64994 低4FA 349 64103 中7SI 988 65030 #4FA# 370 64185 高1DO 1046 65058 低5SO 392 64260 #1DO# 1109 65085 #5SO# 415 64331 高2RE 1175 65110 低6LA 440 64400 #2RE# 1245 65134 #6 466 64463 高3M 1318 65157 低7SI 494 64524 高4FA 1397 65178 中1DO 523 ..
单片机C语言实验及实践教程21. 拉幕式数码显示技术
相关内容: 数码 实验 技术 教程 实践 语言 单片机 显示
1.实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。 2.电路原理图 图4.21.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2.把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3.把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上; 4.程序设计方法 (1.动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管显示,因此,要显示8位的数据,必须经过让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,我必须每隔1ms,就得刷新一个数码管。而这刷新时间我们采用单片机的定时/计数器T0来控制,每定时1ms对数码管刷新一次,T0采用方式2。 (2.在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。 5.程序框图 主程序框图 中断服务程序 6.汇编源程序 DISPBUFEQU30H DISPCNTEQU38H DISPBITEQU39H T1CNTAEQU3AH T1CNTBEQU3BH CNTEQU3CH ORG00H LJMPSTART ORG0BH LJMPINT_T0 START:MOVDISPCNT,#8 MOVA,#10 MOVR1,#DISPBUF LP..
单片机C语言实验及实践教程20:数字钟﹝★﹞
相关内容: 00★ 数字 实验 教程 实践 语言 单片机
1.实验任务 (1.开机时,显示12:00:00的时间开始计时; (2.P0.0/AD0控制“秒”的调整,每按一次加1秒; (3.P0.1/AD1控制“分”的调整,每按一次加1分; (4.P0.2/AD2控制“时”的调整,每按一次加1个小时; 2.电路原理图 图4.20.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2.把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3.把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上; 4.相关基本知识 (1.动态数码显示的方法 (2.独立式按键识别过程 (3.“时”,“分”,“秒”数据送出显示处理方法 5.程序框图 6.汇编源程序 SECONDEQU30H MINITEEQU31H HOUREQU32H HOURKBITP0.0 MINITEKBITP0.1 SECONDKBITP0.2 DISPBUFEQU40H DISPBITEQU48H T2SCNTAEQU49H T2SCNTBEQU4AH TEMPEQU4BH ORG00H LJMPSTART ORG0BH LJMPINT_T0 START:MOVSECOND,#00H MOVMINITE,#00H MOVHOUR,#12 MOVDISPBIT,#00H MOVT2SCNTA,#00H MOVT2SCNTB,#00H MOVTEMP,#0FEH LCALLDISP MOVTMOD,#01H MOVTH0,#(65536-2000)/256 MOVTL0,#(65536-2000)MOD256 SETBTR0 SETBET0 SETBEA WT:JBSECONDK,NK1 LCALLDELY10MS JBSECONDK,NK1 INCSECOND MOVA,SECOND CJNEA,#60,NS60 MOVSECOND,#00H NS60:LCALLDISP JNBSECONDK,$ NK1:JBMINITEK,NK2 LCALLDELY10MS JBMINITEK,NK2 INCMINITE MOVA,MINITE CJNEA,#60..
单片机C语言实验及实践教程19. “叮咚”门铃
相关内容: 门铃 叮咚 实验 教程 实践 语言 单片机
1.实验任务 当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。 2.电路原理图 图4.19.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上; (2.在“音频放大模块”区域中的SPKOUT端口上接上一个8欧或者是16欧的喇叭; (3.把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上; 4.程序设计方法 (1.我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0,我们取定时250us,因此,700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时。 (2.在设计过程,只有当按下SP1之后,才启动T0开始工作,当T0工作完毕,回到最初状态。 (3.“叮”和“咚”声音各占用0.5秒,因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以。 6.汇编源程序 T5HZEQU30H T7HZEQU31H T05SAEQU32H T05SBEQU33H FLAGBIT00H STOPBIT01H SP1BITP3.7 ORG00H LJMPSTART ORG0BH LJMPINT_T0 START:MOVTMOD,#02H MOVTH0,#06H MOVTL0,#06H SETBET0 SETBEA NSP:JBSP1,NSP LCALLDELY10MS JBSP1,NSP SETBTR0 MOVT5HZ,#00H MOVT7HZ,#00H MOVT05SA,#00H MOVT05SB,#00H CLRFLAG CLRSTOP JNBSTOP,$ LJMPNSP DELY10MS:MOVR6,#20 D1:MOVR7,#248 DJNZR7,$ DJNZR6,D1 RET INT_T0:INCT05SA MOVA,T05SA CJNEA,#100,NEXT MOVT05SA,#00H INCT05SB MOVA,T05SB CJNEA,#20,NEXT MOVT05SB,#00H JBFLAG,STP CPLFLAG LJMPNEXT STP:SETBSTOP..
单片机C语言实验及实践教程18:“嘀、嘀、……”报警声..
相关内容: 报警 实验 教程 实践 语言 单片机
1.实验任务 用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出,产生频率为1KHz,根据上面图可知:1KHZ方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去,就形成我们所需的报警声了。 2.电路原理图 图4.18.1 3.系统板硬件连线 (1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上, (2.在“音频放大模块”区域中的SPKOUT端口上接上一个8欧或者是16欧的喇叭; 4.程序设计方法 (1.生活中我们常常到各种各样的报警声,例如“嘀、嘀、…”就是常见的一种声音报警声,但对于这种报警声,嘀0.2秒钟,然后断0.2秒钟,如此循环下去,假设嘀声的频率为1KHz,则报警声时序图如下图所示: 上述波形信号如何用单片机来产生呢? (2.由于要产生上面的信号,我们把上面的信号分成两部分,一部分为1KHZ方波,占用时间为0.2秒;另一部分为电平,也是占用0.2秒;因此,我们利用单片机的定时/计数器T0作为定时,可以定时0.2秒;同时,也要用单片机产生1KHZ的方波,对于1KHZ的方波信号周期为1ms,高电平占用0.5ms,低电平占用0.5ms,因此也采用定时器T0来完成0.5ms的定时;最后,可以选定定时/计数器T0的定时时间为0.5ms,而要定时0.2秒则是0.5ms的400倍,也就是说以0.5ms定时400次就达到0.2秒的定时时间了。 5.程序框图 主程序框图 中断服务程序框图 图4.18.2 6.汇编源程序 T02SAEQU30H T02SBEQU31H FLAGBIT00H ORG00H LJMPSTART ORG0BH LJMPINT_T0 START:MOVT02SA,#00H MOVT02SB,#00H CLR..
单片机C语言实验及实践教程17--- 99秒马表设计
相关内容: 17--- 实验 设计 教程 实践 语言 单片机
1.实验任务 (1.开始时,显示“00”,第1次按下SP1后就开始计时。 (2.第2次按SP1后,计时停止。 (3.第3次按SP1后,计时归零。 2.电路原理图 图4.17.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。 (3.把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上; 4.程序框 T0中断服务程序框 图4.17.2 5.汇编源程序 TCNTAEQU30H TCNTBEQU31H SECEQU32H KEYCNTEQU33H SP1BITP3.5 ORG00H LJMPSTART ORG0BH LJMPINT_T0 START:MOVKEYCNT,#00H MOVSEC,#00H MOVA,SEC MOVB,#10 DIVAB MOVDPTR,#TABLE MOVCA,@A+DPTR MOVP0,A MOVA,B MOVDPTR,#TABLE MOVCA,@A+DPTR MOVP2,A MOVTMOD,#02H SETBET0 SETBEA WT:JBSP1,WT LCALLDELY10MS JBSP1,WT INCKEYCNT MOVA,KEYCNT CJNEA,#01H,KN1 SETBTR0 MOVTH0,#06H MOVTL0,#06H MOVTCNTA,#00H MOVTCNTB,#00H LJMPDKN KN1:CJNEA,#02H,KN2 CLRTR0 LJMPDKN KN2:CJNEA,#03H,DKN MOVSEC,#00H MOVA,SEC MOVB,#10 DIVAB MOVDPTR,#TABLE MOVCA,@A+DPTR MOVP0,A MOVA,B MOVDPTR,#TABLE MOVCA,@A+DPTR MOVP2,A MOVKEYCNT,#00H DKN:JNBSP1,$ LJMPWT DELY10MS..
单片机C语言实验及实践教程15. 定时计数器T0作定时应用技术(二)..
相关内容: 应用技术 实验 定时 教程 计数器 实践 语言 单片机
1.实验任务 用AT89S51的定时/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,如此循环下去。0.2秒的闪烁速率也由定时/计数器T0来完成。 2.电路原理图 图4.16.1 3.系统板硬件连线 (1.把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4上 4.程序设计内容 (1.由于采用中断方式来完成,因此,对于中断源必须它的中断入口地址,对于定时/计数器T0来说,中断入口地址为000BH,因此在中断入口地方加入长跳转指令来执行中断服务程序。书写汇编源程序格式如下所示: ORG00H LJMPSTART ORG0BH;定时/计数器T0中断入口地址 LJMPINT_T0 START:NOP;主程序开始 . . INT_T0:PUSHACC;定时/计数器T0中断服务程序 PUSHPSW . . POPPSW POPACC RETI;中断服务程序返回 END (2.定时2秒,采用16位定时50ms,共定时40次才可达到2秒,每50ms产生一中断,定时的40次数在中断服务程序中完成,同样0.2秒的定时,需要4次才可达到0.2秒。对于中断程序,在主程序中要对中断开中断。 (3.由于每次2秒定时到时,L1-L4要交替闪烁。采用ID来号来识别。当ID=0时,L1在闪烁,当ID=1时,L2在闪烁;当ID=2时,L3在闪烁;当ID=3时,L4在闪烁 5.程序框图 T0中断服务程序框图 主程序框图 图4.16.2 6.汇编源程序 TCOUNT2SEQU30H TCNT02SEQU31H IDEQU32H ORG00H LJMPSTART ..
单片机C语言实验及实践教程15. 定时计数器T0作定时(一)..
相关内容: 实验 定时 教程 计数器 实践 语言 单片机
定时计数器T0作定时应用技术(一)1.实验任务用AT89S51单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1,秒计数到60时,自动从0开始。硬件电路如下图所示2.电路原理图图4.15.13.系统板上硬件连线(1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。(2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。4.程序设计内容AT89S51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。现在我们选择16位定时工作方式,对于T0来说,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,我们必须通过软件来处理这个问题,假设我们取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。对于这20次我们就可以采用软件的方法来统计了。因此,我们设定TMOD=00000001B,即TMOD=01H下面我们要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算出TH0=(216-50000)/256TL0=(216-50000)MOD256当T0在工作的时候,我们如何得知50ms的定时时间已..
单片机C语言实验及实践教程14---4×4矩阵式键盘识别技术..
相关内容: 14---4 矩阵式 识别 实验 键盘 技术 教程 实践 语言 单片机
4×4矩阵式键盘识别技术 1.实验任务如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。对应的按键的序号排列如图4.14.1所示3.系统板上硬件连线 (1.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上; (2.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 4.程序设计内容 (1.4×4矩阵键盘识别处理 (2.每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 5.程序框图 6.汇编源程序 KEYBUFEQU30H ORG00H START:MOVKEYBUF,#2 WAIT: MOVP3,#0FFH CLRP3.4 MOVA,P3 ANLA,#0FH XRLA,#0FH JZNOKEY1 LCALLDELY10MS MOVA,P3 ANLA,#0FH XRLA,#0FH JZNOKEY1 MOVA,P3 ANLA,#0FH CJNEA,#0EH,NK1 MOVKEYBUF,#0 LJMPDK1 NK1:CJNEA,#0DH,NK..
单片机C语言实验及实践教程13. 动态数码显示技术
相关内容: 数码 动态 实验 技术 教程 实践 语言 单片机 显示
1.实验任务 如图4.13.1所示,P0端口接动态数码管的字形码笔段,P2端口接动态数码管的数位选择端,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。 2.电路原理图 图4.13.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2.把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3.把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘”区域中的SP1端口上; 4.程序设计内容 (1.动态扫描方法 动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。 (2.在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。 (3.对于显示的字形码数据我们采用查表方法来完成。 5.程序框图 图4.13.2 6.汇编源程序 ORG00H START:JBP1.7,DIR1 MOVDPTR,#TABLE1 SJMPDIR DIR1:MOVDPTR,#TABLE2 DIR:MOVR0,#00H MOVR1,#01H NEXT:MOVA,R0 MOVCA,@A+DPTR MOVP0,A MOVA,R1 MOVP2,A LCALLDAY INCR0 RLA MOVR1,A CJNER1,#0DFH,NEXT SJMPSTART DAY:MOVR6,#4 D1:MOVR7,#248 DJNZR7,$ DJNZR6,D1 RET TABLE1:DB06H,5BH,4FH,66H,6DH TABLE2:DB78H,79H,38H,38H,3FH END 7.C语言源程序 #include<AT89X51.H> unsignedcharcode..
单片机C语言实验及实践教程12:可预置可逆4位计数器
相关内容: 可逆 预置 实验 教程 计数器 实践 语言 单片机
1.实验任务 利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用来指示当前计数的数据;用P1.4-P1.7作为预置数据的输入端,接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接两个轻触开关,用来作加计数和减计数开关。具体的电路原理图如下图所示 2.电路原理图 图4.12.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P1.0-P1.3端口用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L4上;要求:P1.0对应着L1,P1.1对应着L2,P1.2对应着L3,P1.3对应着L4; (2.把“单片机系统”区域中的P3.0/RXD,P3.1/TXD,P3.2/INT0,P3.3/INT1用导线连接到“四路拨动开关”区域中的K1-K4上; (3.把“单片机系统”区域中的P3.6/WR,P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2上; 4.程序设计内容 (1.两个独立式按键识别的处理过程; (2.预置初值读取的问题 (3.LED输出指示 5.程序框图 图4.12.2 6.汇编源程序 COUNTEQU30H ORG00H START:MOVA,P3 ANLA,#0FH MOVCOUNT,A MOVP1,A SK2:JBP3.6,SK1 LCALLDELY10MS JBP3.6,SK1 INCCOUNT MOVA,COUNT CJNEA,#16,NEXT MOVA,P3 ANLA,#0FH MOVCOUNT,A NEXT:MOVP1,A WAIT:JNBP3.6,WAIT LJMPSK2 SK1:JBP3.7,SK2 LCALLDELY10MS JBP3.7,SK2 DECCOUNT MOVA,COUNT CJNEA,#0FFH,NEX MOVA,P3 ANLA,#0FH MOVCOUNT,A NEX:MOVP1,A WAIT2:JNBP3.7,WAIT2 LJMPSK2 DELY10MS:MOVR6,#20 MOVR7,#248 D1:DJNZR7,$ DJNZR6,D1 RET END 7.C语言源程序 #include<AT89X51.H> unsignedcharcurcount; voiddelay10ms(void) { un..
单片机C语言实验及实践教程11. 00-59秒计时器(软件延时)..
相关内容: 延时 计时器 实验 教程 软件 实践 语言 单片机
1.实验任务 如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。 2.电路原理图 图4.11.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。 4.程序设计内容 (1.在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,从新秒计数。 (2.对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余。 (3.在数码上显示,仍通过查表的方式完成。 (4.一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。 DELY1S:MOVR5,#100 D2:MOVR6,#20 D1:MOVR7,#248 DJNZR7,$ DJNZR6,D1 DJNZR5,D2 RET 5.程序框图 图4.11.2 6.汇编源程序 SecondEQU30H ORG0 START:MOVSecond,#00H NEXT:MOVA,Second MOVB,#10 DIVAB MOVDPTR,#TABLE MOVCA,@A+DPTR MOVP0,A MOVA,B MOVCA,@A+DPTR MOVP2,A LCALLDELY1S INCSecond MOVA,Second CJNEA,#60,NEXT LJMPSTART DELY1S:MOVR5,#100 D2:MOVR6,#20 D1:MOVR7,#248 DJNZR7,$ DJNZR6,D1 DJNZR5..
单片机C语言实验及实践教程10-----00-99计数器
相关内容: 10-----00 实验 教程 计数器 实践 语言 单片机
1.实验任务 利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图19所示。 2.电路原理图 图4.10.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2.把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上; (3.把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上; 4.程序设计内容 (1.单片机对按键的识别的过程处理 (2.单片机对正确识别的按键进行计数,计数满时,又从零开始计数; (3.单片机对计的数值要进行数码显示,计得的数是十进数,含有十位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示。如何拆开十位和个位我们可以把所计得的数值对10求余,即可个位数字,对10整除,即可得到十位数字了。 (4.通过查表方式,分别显示出个位和十位数字。 5.程序框图 图4.10.2 6.汇编源程序 CountEQU30H SP1BITP3.7 ORG0 START:MOVCount,#00H NEXT:MOVA,Count MOVB,#10 DIVAB MOVDPTR,#TABLE MOVCA,@A+DPTR MOVP0,A MOVA,B MOVCA,@A+DPTR MOVP2,A ..
单片机C语言实验及实践教程9. 一键多功能按键识别技术..
相关内容: 多功能 识别 按键 实验 技术 教程 实践 语言 单片机
1.实验任务 如图4.9.1所示,开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。 2.电路原理图 图4.9.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上; (2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4.程序设计方法 (1.设计思想由来 在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID的值是不相同的,所以单片机就很容易识别不同功能的身份了。 (2.设计方法 从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时间是受开关SP1来控制,我们给L1到L4闪烁的时段定义出不同的ID号,当L1在闪烁时,ID=0;当L2在闪烁时,ID=1;当L3在闪烁时,ID=2;当L4在闪烁时,ID=3;很显然,只要每次按下开关K1时,分别给出不同的ID号我们就能够完成上面的任务了。下..
单片机C语言实验及实践教程8:
相关内容: 实验 教程 实践 语言 单片机
1.实验任务I/O并行口直接驱动LED显示 每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。 2.电路原理图 图4.8.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上; (2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4.程序设计方法 (1.其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说,当我们按下一个按键时,总希望某个命令只执行一次,而在按键按下的过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。因此在按键按下的时候,图4.8.2 要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况下,我们可以采用电容来滤除掉这些干扰信号,但实际上,会增加硬件成本及硬件电路的体积,这是我们不希望,总得有个办法解决这个问题,因此我们可以采用软件滤波的方法去除这些干扰信号,一般情况下,一个按键按下的时候,总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状态。具体的一个按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,..


正在加载... 正在加载...


正在加载... 正在加载...



正在加载...

正在加载...

相关栏目


正在加载... 正在加载...

单片机C语言实验及实践教程34:
在页编程模式中,如同字节写方式,先将控制字节、访问存储器指令(17H)、字地址发送..

正在加载...

单片机C语言实验及实践教程24----8X8 LED点..


正在加载...

热门

应用 变频器 系统 西门子 控制 三菱 系列 基于 技术 电机 编程 设计 控制器 控制系统 伺服 方案 程序 如何 单片机 方法 电梯 什么 故障 使用 指令 通讯 功能 FX2N 总线 解决方案 触摸屏 问题 教程 连接 分析 模块 高压 实现 传感器 软件 s7-200 数据 详细 原理 S7-200plc 网络 输出 通信 可编程 输入 WeinView 步进 采用 设定 实例 监控系统 无线 智能 机上 解决 维修 ModBus 运行 行业 现场 工业 交流 安全 发展 LINUX 设备 设置 操作 Profibus DEVELOPER 检测 监控 显示 自动 PROFIBUS-DP 台达 参数 电路 可以 远程 S7-300PLC Omron zigbee 进行 改造 接口 安装 WinCC 特点 自动化 信号 方式 处理 及其 CC-link 基本 装置 siemens 电气 定位 一个 节能 原因 选择 VxWorks 嵌入式 视觉 以太网 施耐德 uCos 自动扶梯 放大器 ucLinux 监测 机器 中断 松下 mm440 串口 丹佛斯 案例 工具 变频

热门文章

正在加载...

三菱 | 西门子 | 施耐德 | 欧姆龙 | 松下自动化 | 永宏自动化| 其它自动化 | PLC课件 | 单片机 | 变频器 | 电梯知识 | 电梯维修| 电梯安装 | 电梯论文 | 电梯事故

常用资料| 印刷| 电工| 电子| 工控| 论文| 制冷| 包装| 数控| 菜谱| 短信| 范文| 驾车| 安全| 创业| 笑话| 人生| 故事| 宝宝| 幼儿| 小学| 初中| 高中| 古典文学