单片机高级实训项目教程(I)

合集下载

高级电工单片机实操教程

高级电工单片机实操教程

高级电工单片机实操教程1. 简介本文档是一份高级电工单片机实操教程,旨在帮助读者掌握单片机的高级电工实操技巧。

单片机是现代电子技术中最常用的控制器之一,广泛应用于各种电子设备和嵌入式系统中。

本教程将深入介绍单片机的高级电工应用,包括使用不同传感器、执行器和通信接口等进行实际操作。

2. 前提条件在阅读本文档之前,读者需要具备基本的单片机知识,包括单片机的结构、寄存器的基本概念、基本编程语法等。

同时,读者需要具备一定的电工基础,包括电路图的阅读、电路元件的连接等。

3. 实验目的本教程旨在通过实操操作,帮助读者达到以下目标:•掌握单片机与常见传感器的连接和使用方法;•熟悉单片机与执行器的接口和驱动方式;•理解单片机与其他设备之间的通信接口,并能进行相应的通信操作;•学会使用单片机进行数据采集、处理和控制。

4. 实验准备在开始实操之前,读者需要准备以下设备和材料:•单片机开发板(如Arduino、树莓派等)•适配器或电池供电器•USB数据线•传感器模块(如温湿度传感器、光敏传感器等)•执行器模块(如电机驱动模块、LED模块等)•面包板、杜邦线等基本电路连接材料5. 实操流程步骤1:搭建实验环境1.将单片机开发板连接到电脑上,使用USB数据线进行连接。

2.将传感器模块和执行器模块插入到开发板上的相应接口。

3.将适配器或电池供电器连接到开发板上,并确保供电正常。

步骤2:传感器实验1.根据传感器的接线图,将传感器模块与单片机开发板进行连接。

这通常包括连接传感器的电源、地线和数据线。

2.在开发环境中编写相应的代码,通过读取传感器数据,并将其显示在开发板上的显示屏上。

步骤3:执行器实验1.根据执行器的接线图,将执行器模块与单片机开发板进行连接。

这通常包括连接执行器的电源和数据线。

2.在开发环境中编写相应的代码,通过控制单片机的输出引脚,实现对执行器的驱动控制。

1.根据通信接口的要求,将相应的设备与单片机开发板进行连接。

单片机应用技术项目式教程

单片机应用技术项目式教程

单片机应用技术项目式教程
前言:
单片机是一种集成了中央处理器、存储器和输入/输出端口等功能于一体的微型计算机系统。

它广泛应用于各种嵌入式系统中,如家用电器、工业控制、汽车电子等领域。

本教程采用项目式教学方法,通过一系列实际项目案例,帮助读者掌握单片机应用技术的基础知识和实践技能。

项目1:LED闪烁控制
介绍单片机的基本概念和工作原理,教授如何使用单片机控制LED闪烁。

项目2:按键控制
学习如何使用按键作为输入设备,控制LED的点亮和熄灭。

项目3:数码管显示
掌握数码管的工作原理,编写程序实现动态数码管显示。

项目4:电机控制
介绍电机的工作原理,学习如何通过单片机控制电机的启动、停止和反转。

项目5:温度监测系统
使用温度传感器采集环境温度数据,并通过数码管显示温度值。

项目6:红外遥控器
学习红外遥控器的工作原理,编写程序实现对家用电器的遥控操作。

项目7:液晶显示模块
掌握液晶显示模块的接口和控制方法,实现文本和图形的显示。

项目8:步进电机控制
介绍步进电机的工作原理,编写程序实现步进电机的位置控制。

项目9:定时器应用
学习单片机定时器的工作原理和编程方法,实现定时控制和计数功能。

项目10:串口通信
掌握串口通信的基本概念和编程技巧,实现单片机与PC机之间的数据传输。

每个项目都包含理论知识介绍、硬件连接、程序代码和调试方法等内容,循序渐进地帮助读者掌握单片机应用技术。

此外,本教程还提供了大量实践练习和拓展项目,以便读者巩固所学知识,并激发创新思维。

内容扩展_单片机入门与提高实训教程_[共2页]

内容扩展_单片机入门与提高实训教程_[共2页]

71 三、硬件连接
连接好串口下载线与电源线,用排线连接JP7与JP3;用杜邦线连接好P20与JP1的6口,P21与JP1的7口,P22与JP1的8口,然后用跳线冒分别接JP2、JP4、JP5、JP6;用排线连接JP28与JP8,用杜邦线连接JP20的CS 与P35,JP20的P37,JP20的RW 与P36,用跳线冒短接JP25的1与2,JP19的1与2。

四、实验内容
程序的运行结果为:拧动电位器,在数码管显示0~255的数值。

程序流程图如图2-13-4所示。

图2-13-4 程序流程图
1.仿真部分
打开仿真电路图后,将DA/AD (二)实验的.hex 文件下载到单片机里面,查看实验结果。

仿真原理图如图2-13-5所示。

2.实物部分
按照“三、硬件连接”连接好电路,打开STC-ISP 烧录工具,将生成的.hex 文件下载到单片机里面,查看实验结果。

五、内容扩展
利用RFID 实验箱上的AD 芯片做一个5 V 电压表,具体代码与仿真见光盘。

单片机高级实训项目教程(I)

单片机高级实训项目教程(I)

如有你有帮助,请购买下载,谢谢!26.点阵式LED简单图形显示技术1.实验任务在8X8点阵式LED显示“★”、“●”和心形图,通过按键来选择要显示的图形。

2.电路原理图图4.26.13.硬件系统连线(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;(3).把“单片机系统”区域中的P2.0/A8端子用导线连接到“独立式键盘”区域中的SP1端子上;4.程序设计内容(1).“★”在8X8LED点阵上显示图如下图所示12H,14H,3CH,48H,3CH,14H,12H,00H(2).“●”在8X8LED点阵上显示图如下图所示00H,00H,38H,44H,44H,44H,38H,00H(3).心形图在8X8LED点阵上显示图如下图所示30H,48H,44H,22H,44H,48H,30H,00H5.汇编源程序CNTA EQU 30HCOUNT EQU 31H如有你有帮助,请购买下载,谢谢!ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART: MOV CNTA,#00HMOV COUNT,#00HMOV TMOD,#01HMOV TH0,#(65536-4000) / 256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EAWT: JB P2.0,WTMOV R6,#5MOV R7,#248D1: DJNZ R7,$DJNZ R6,D1JB P2.0,WTINC COUNTMOV A,COUNTCJNE A,#03H,NEXTMOV COUNT,#00HNEXT: JNB P2.0,$SJMP WTT0X: NOPMOV TH0,#(65536-4000) / 256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#TABMOV A,CNTAMOVC A,@A+DPTRMOV P3,AMOV DPTR,#GRAPHMOV A,COUNTMOV B,#8MUL ABADD A,CNTAMOVC A,@A+DPTRMOV P1,AINC CNTAMOV A,CNTACJNE A,#8,NEXMOV CNTA,#00HNEX: RETI如有你有帮助,请购买下载,谢谢!TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHGRAPH: DB 12H,14H,3CH,48H,3CH,14H,12H,00HDB 00H,00H,38H,44H,44H,44H,38H,00HDB 30H,48H,44H,22H,44H,48H,30H,00HEND6.C语言源程序#include <AT89X52.H>unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char codegraph[3][8]={{0x12,0x14,0x3c,0x48,0x3c,0x14,0x12,0x00},{0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00},{0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00}};unsigned char count;unsigned char cnta;void main(void){unsigned char i,j;TMOD=0x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;TR0=1;ET0=1;EA=1;while(1){if(P2_0 0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P2_0 0){count++;if(count 3){count=0;}while(P2_0 0);}}}}void t0(void) interrupt 1 using 0{。

高级电工单片机实操教程

高级电工单片机实操教程

试题编号3301控制要求:在内部RAM中20H开始的区域中存有二十个无符号数,找出其中最大和最小数, 分别送34H和35H单元。

(注:目标程序于0800H单元开始)ORG 0000HLJMP MAINORG 0800HMAIN : MOV R0, #20H ;从内部20H 单元开始查找MOV R7, #19 ;20 个数需要比较19 次MOV 34H , @R0 ;将20H 单元的内容同时送34H 和35HMOV 35H, @R0LOOP : INC R0 ;指向下一个单元MOV A , @R0 ;读取到ACCCJNE A , 34H , B1 ;将读取的内容与34H 的内容进行比较,不相等跳B1 处SJMP EXIT ;相等则不作其它比较跳EXIT 处B1 : JC XIAO ;若A的内容小于34H的内容则C为1,跳XIAO处MOV 34H , A ;C为0表明A大于34H的内容则替换掉34H的内容SJMP EXIT ;替换后退出不作最小数比较XIAO : CJNE A , 35H , B2 ;作最小数比较,不相等跳B2 处SJMP EXIT ;相等退出到EXIT 处B2 : JNC EXIT ;若A 的内容大于35H 的内容跳EXIT 处MOV 35H , A ;若A 的内容小于35H 的内容则替换掉35H 的内容EXIT : DJNZ R7 , LOOP ;判断比较次数是否完毕SJMP $ ;比较完毕原地等待ENDH g co f (<) ▲H寸co f (<)AJ老(H寸co )人(< __ wbz H 寸io co co f f /―、 X ―、 /―、 X―、 O O、 * 、 * 、 * 、 *0占—“(0占)呻rF0X202+ 5V3102控制要求:利用8031定时器与中断功能控制一个“航标灯”,黑夜时发光二极管按指定频率闪烁(如:亮2S ,灭2S ,循环);白天时发光二极管不亮。

单片机教程单片机IO的使用

单片机教程单片机IO的使用

IO口的位操作
位设置
通过将某一位设置为1或0,可以 控制该位对应的硬件设备的工作
状态。
位清除
将某一位清零,通常用于关闭某个 硬件设备。
位反转
将某一位取反,实现硬件设备的状 态切换。
IO口的配置寄存器
1 2
配置寄存器的功能
配置寄存器用于设置IO口的模式、输出类型、输 出速度等参数,以满足不同的硬件设备控制需求。
按键输入
01
```c
02
void main() {
03
unsigned char keyState = 0; // 按键初始状态为未 按下
按键输入
while (1) {
if
(GPIO_ReadInputDataBit(GPIOx,
GPIO_Pin_x) == 0) { // 检测按键是否被按下
if (keyState == 0) { // 如果之前未按下,则进 入处理函数
特性。
02
LED灯的连接方式
LED灯通常与单片机的一个GPIO(通用输入输出)端口连接,通过控
制该GPIO端口的电平高低来控制LED灯的亮灭。
03
LED灯的控制代码
在单片机程序中,可以通过设置GPIO端口的寄存器值来控制LED灯的
亮灭,例如在C语言中,可以使用以下代码实现LED灯的闪烁
LED灯控制
• delay(1000);
LED灯控制
} } ```
按键输入
按键输入的原理
按键输入通常通过单片机的中断或轮询方式实现,当按键被按下时,会触发一个电平变化 或中断事件。
按键输入的连接方式
按键通常与单片机的一个GPIO端口连接,当按键被按下时,该GPIO端口的电平会发生跳 变。

《单片机实训项目》课件

《单片机实训项目》课件

总结与反思
项目总结
总结了各个项目的实现过程、遇到的问题及解决方法,以及项目所涉及的知识点和技能 。
个人反思
分享了参与单片机实训项目的体会和收获,反思了自己在项目中的表现和不足之处,为 今后的学习和实践提供了借鉴和改进方向。
05 单片机实训项目经验总结
遇到的问题和解决方法
问题1
程序调试困难
解决方法
系统测试
对整个单片机系统进行测试,包括功能测试、性 能测试和稳定性测试等,确保系统满足项目要求 。
04 单片机实训项目成果展示
成果介绍
单片机控制LED闪

该项目实现了通过单片机控制 LED灯的闪烁,展示了单片机的 输入输出功能和控制能力。
温度监测系统
利用单片机实现对环境温度的实 时监测,并通过LCD显示屏显示 温度值,具有温度报警功能。
编程、测试与调试等。
收获2:提高解决问题能力
在遇到问题时,学会了独立思考和团 队协作,提高了解决问题的能力。
收获3:增强实践能力
通过实际操作,增强了动手能力和实 践经验,对理论知识有了更深入的理 解。
对未来学习的建议
在此添加您的文本17字
建议1:加强基础知识学习
在此添加您的文本16字
建议在学习单片机之前,先掌握数字电路、微机原理等基 础知识,为单片机学习打下基础。
程序架构设计
根据项目需求,设计程序架构,包括主程序、中断服 务程序、函数库等。
代码编写与调试
按照程序架构,编写程序代码,并通过调试确保程序 逻辑正确。
调试与测试
1 2 3
仿真器与调试工具选择
根据单片机型号,选择合适的仿真器和调试工具 ,如JTAG仿真器、串口调试工具等。

[单片机实训] 项目1:熟悉单片机的开发环境与烧录软件

[单片机实训] 项目1:熟悉单片机的开发环境与烧录软件

项目1:熟悉单片机的开发环境与烧录软件(1)桌面新建一个空文件夹,例如名称为“2003”,如下图所示:(2)鼠标左键双击下图图标,打开软件:(3)如果打开软件后出现如下图对话框,点击“X”将其关闭,如下图所示:(4)然后新建一个工程,鼠标左击菜单栏上的“Project”,如下图所示:(5)接着鼠标左击“New uVision Project”,如下图所示:(6)出现如下图所示对话框,必须注意的是一定要选择你一开始新建文件夹的位置:(7)输入你想创建的文件名,这里我输入“First_project”,然后鼠标左击“确定”:(8)选择MCU—— 第1步:在“Search”框输入本次实训课所用的单片机“AT89C52”;第2步:鼠标左击选择具体的单片机“AT89C52”,查看描述信息;第3步:鼠标左击“OK”。

(没有STC的选项可以选择相应兼容的产品)(9)出现下列对话框后,直接忽略,鼠标左击“否”:(10)新建一个文本文档,鼠标左击下图所示快捷图标:(11)出现黄色圈内文本文档后,鼠标左击红色圈内“保存快捷图标”进行保存:(12)输入文件名,如“XXX.ASM”或者“XXX.C”(“.ASM”为汇编语言文件格式,“.C”为文件格式),这里我输入了“LED.ASM”采用汇编语言编程方式;最后鼠标左击“保存”:(13)接着鼠标左击“+”,如下图所示:(14)然后鼠标右击“Source Group 1”,如下图所示:(15)然后鼠标左击如下图所示红色圈内命令:(16)添加程序文件第1步:选择之前创建的程序文件(“XXX.ASM”或者“XXX.C”);第2步:鼠标左击“Add”;第3步:鼠标左击“Close”。

(17)查看“Source Group 1”里是否有添加的文件,有则添加成功,在右边即可编程。

(18)在程序编辑区,键入如下图的程序段。

(19)程序编写完成之后,首先点击下图1处的“”按钮,检查有无语法等错误。

单片机技术与应用项目式教程

单片机技术与应用项目式教程

单片机技术与应用项目式教程1.引言单片机技术是现代电子技术中的重要组成部分,广泛应用于各个领域。

本教程旨在介绍单片机的基础知识,并通过实际应用项目的方式,帮助读者深入理解单片机技术与应用。

2.项目1:L E D闪烁器2.1项目描述本项目通过控制单片机的IO口,使L E D灯以固定模式闪烁。

通过完成该项目,读者将了解到单片机的GP IO口控制以及延时等基础知识。

2.2硬件材料-单片机开发板-L ED灯-连接线2.3硬件连接将L ED的正脚连接到单片机的G PI O口,负脚连接到地。

2.4软件编程使用C语言编写以下代码,并通过烧录软件将程序下载到单片机中:#i nc lu de<r eg51.h>s b it LE D=P1^0;v o id de la y(in tt ime)//延时函数{i n ti,j;f o r(i=0;i<ti me;i++)f o r(j=0;j<1000;j++);}v o id ma in(){w h il e(1){L E D=0;//点亮LE Dd e la y(1000);//延时1秒L E D=1;//熄灭LE Dd e la y(1000);//延时1秒}}2.5测试与调试将单片机上电,观察L ED灯是否按照预期的模式闪烁。

如有问题,请检查硬件连接和代码逻辑。

3.项目2:温度传感器监测系统3.1项目描述本项目利用单片机和温度传感器,实时监测环境温度,并将结果显示在L CD液晶屏上。

通过完成该项目,读者将学习到单片机的模拟输入和数字输出、温度传感器的使用,以及L CD屏幕的驱动等知识。

3.2硬件材料-单片机开发板-温度传感器(例如D S18B20)-L CD液晶屏-连接线3.3硬件连接将温度传感器的信号引脚连接到单片机的A DC输入口,将LC D液晶屏的数据线和使能线连接到单片机的IO口。

3.4软件编程使用C语言编写以下代码,并通过烧录软件将程序下载到单片机中:#i nc lu de<r eg51.h>#i nc lu de<s td io.h>#d ef in eL CD_D AT AP0s b it RS=P2^0;s b it RW=P2^1;s b it EN=P2^2;u n si gn ed in tt em p;v o id de la y(in tt ime)//延时函数{i n ti,j;f o r(i=0;i<ti me;i++)f o r(j=0;j<1000;j++);}v o id di sp la yT em p(u n si gn ed in tt em p)//温度显示函数{c h ar st r[10];s p ri nt f(st r,"T emp:%d C",t em p);L C D_cm d(0x01);//清屏d e la y(5);L C D_cm d(0x80);//将光标移动到第一行第一列d e la y(5);L C D_st r(st r);}v o id ma in(){w h il e(1){t e mp=g et Te mp();//获取温度值d i sp la yT em p(te m p);//显示温度d e la y(1000);//延时1秒}}3.5测试与调试将单片机上电,观察L CD液晶屏上是否显示实时温度值。

单片机实训报告实验步骤

单片机实训报告实验步骤

一、实验目的1. 掌握单片机的基本工作原理和硬件结构。

2. 熟悉单片机的编程方法,提高编程能力。

3. 学习单片机的调试技巧,提高调试效率。

4. 通过实际操作,培养动手能力和团队合作精神。

二、实验仪器与设备1. 单片机实验开发板2. 编译器(如Keil、IAR等)3. 仿真软件(如Proteus、Multisim等)4. 连接线、电源、示波器等辅助设备三、实验步骤1. 熟悉单片机实验开发板(1)观察开发板的硬件结构,了解各个模块的功能和连接方式。

(2)熟悉开发板上的按键、LED、串口、I2C、SPI等接口。

2. 编写程序(1)根据实验要求,设计程序功能。

(2)选择合适的编程语言(如C语言、汇编语言等)。

(3)使用编译器编写程序代码,并进行语法检查。

3. 程序调试(1)使用仿真软件(如Proteus)对程序进行仿真调试。

(2)观察程序运行结果,检查程序是否存在错误。

(3)根据仿真结果,修改程序代码,直至程序正常运行。

4. 硬件连接(1)根据程序功能,连接开发板上的相关硬件模块。

(2)确保连接正确,避免短路或接触不良。

5. 实验运行(1)打开电源,启动单片机。

(2)观察程序运行情况,验证程序功能是否实现。

(3)根据实验要求,调整程序参数或硬件配置,优化程序性能。

6. 数据采集与记录(1)使用示波器等设备,采集实验过程中的数据。

(2)记录实验数据,为后续分析提供依据。

7. 结果分析(1)对实验数据进行整理和分析,评估程序性能。

(2)总结实验过程中的经验教训,提出改进措施。

8. 实验报告撰写(1)整理实验过程,包括实验步骤、实验数据、实验结果等。

(2)分析实验结果,总结实验经验教训。

(3)撰写实验报告,要求格式规范、内容完整。

四、实验注意事项1. 确保实验环境安全,避免触电、短路等事故。

2. 严格遵守实验操作规程,避免损坏实验设备。

3. 注意程序调试过程中的细节,提高调试效率。

4. 实验过程中,积极思考,勇于创新,提高动手能力。

单片机高级实训项目教程

单片机高级实训项目教程

31.6位数显频率计数器1.实验任务利用AT89S51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。

要求能够对0-250KHZ的信号频率进行准确计数,计数误差不超过±1HZ。

2.电路原理图图4.31.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0-P0.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。

(2).把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。

(3).把“单片机系统”区域中的P3.4(T0)端子用导线连接到“频率产生器”区域中的W A VE端子上。

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>unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};unsigned char temp[8];unsigned char dispcount;unsigned char T0count;unsigned char timecount;bit flag;unsigned long x;void main(void){unsigned char i;TMOD=0x15;TH0=0;TL0=0;TH1=(65536-4000)/256;TL1=(65536-4000)%256;TR1=1;TR0=1;ET0=1;ET1=1;EA=1;while(1){if(flag 1){flag=0;x=T0count*65536+TH0*256+TL0;for(i=0;i<8;i++){temp[i]=0;}i=0;while(x/10){temp[i]=x%10;x=x/10;i++;}temp[i]=x;for(i=0;i<6;i++){dispbuf[i]=temp[i];}timecount=0;T0count=0;TH0=0;TL0=0;TR0=1;}}}void t0(void) interrupt 1 using 0{T0count++;}void t1(void) interrupt 3 using 0{TH1=(65536-4000)/256;TL1=(65536-4000)%256;timecount++;if(timecount 250){TR0=0;timecount=0;flag=1;}P0=dispcode[dispbuf[dispcount]];P2=dispbit[dispcount];dispcount++;if(dispcount 8){dispcount=0;}}32.电子密码锁设计1.实验任务根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。

单片机实验教案

单片机实验教案

实验一集成开发环境keil c51的使用与调试Keil C51 u Vision2 是德国Keil公司开发的基于Windows环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强大的集成开发环境。

u Vision2 支持Keil的各种8051工具,包括:C编译器,宏汇编译器、连接/定位器及Object-hex转换程序,可以帮助用户快速有效的实现嵌入式系统的设计与调试。

1.1硬件安装1、连接51CPU板,在实验箱右下角有三个插座:J1、J2、J3,用来连接51CPU板,在51CPU板上有一个小拨码开关:J18,是单片机的EA脚,是用来选择读片内还是片外ROM的,拨向左边为读片内ROM;拨向右边为读片外ROM。

2、KEIL仿真器与实验箱的连接:将KEIL仿真器40芯的排线连到51CPU板的40芯插座上,仿真器的USB连接线连到微机的USB口。

3、八段数码管右上角的两个拨码小开关是用来设置工作模式的,将两个拨码小开关同时拨向右边是选择51单片机工作模式,此时应拨向右边。

1.2新建一个项目文件首先点击Keil uVision2 ,进入uVision2界面。

点击工具栏Project选项中的New Project,准备开始建立自己的项目。

输入工程文件名称,并选择保存工程文件的目录。

为项目文件选择一个目标器件(如ATMEL89C51),如图所示。

用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”如下图所示。

在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。

波特率为38400。

点击“文件/新建”创建源程序文件并输入程序代码。

软件仿真硬件仿真选择串口 选择波特率在文本框中输入原程序,如下图所示点击“文件/保存“对程序进行保存用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组,如下图所示在弹出的添加文件框中,选择需要添加到项目中的文件点击编译连接的图标,对项目文件进行编译点击“调试/启动/停止调试”进入调试界面在调试界面中可以对程序进行单步或者全速运行的调试若要查看内存中的数据,点击“视图/存储器窗口”在此地址框中,输入不同的指令查看内部数据如果需要查看一些内部数据,在菜单栏点击[视图/存储窗口]。

高级电工单片机实操教程

高级电工单片机实操教程

高级电工单片机实操教程本文是一份关于高级电工单片机实操教程的详细说明,内容主要涉及单片机的基础知识、各功能模块的操作方法、程序设计等方面。

希望通过这篇文章,读者能够系统全面地了解单片机的相关知识,提升自身实操技能。

一、单片机基础知识单片机是集成电路的一种,它把CPU、RAM、ROM、输入输出接口等逻辑电路全部集成到一块芯片上,由它控制外部设备的运行、数据的收发、处理等。

单片机有着广泛的应用场景,是世界各个领域中最为常用的微控制器。

学习单片机首先需要掌握其基本构成要素。

单片机的核心是CPU模块,它主要由控制器、运算器、时序控制、总线控制等技术组成。

CPU模块通过总线与其他部件相连,包括存储器、外部设备等。

其中存储器包括ROM和RAM两部分,ROM主要用于储存程序代码,RAM用于临时数据存储。

外部设备则包括输入输出接口、定时器/计数器、中断控制器等,它们负责与外界通信和数据交换。

另外还需要掌握单片机的程序设计技能。

单片机程序主要使用汇编语言或高级编程语言(如C语言、C++语言)编写。

需要注意的是,不同单片机厂商生产的单片机型号可能编程语言不同,需要针对性地选择开发软件和编译器。

二、常见单片机功能模块的操作方法1.输入输出模块输入输出模块主要用于实现与外界设备的数据交换。

常见的使用方式有直接控制I/O引脚、使用外部扩展芯片、使用闪存等方式。

具体操作流程包括:选择需要控制的I/O引脚,根据实际需求设置输入输出方式,编写相应的程序代码实现输入输出功能。

2.定时器/计数器模块定时器/计数器模块主要用于产生精准的时间脉冲,可以应用于计数、频率测量、计时等功能。

运用此模块需要了解相应的时序控制原理、掌握设备寄存器操作方式。

具体操作流程包括:配置定时器的工作模式和计数方式、设定定时器的计数初值、开启定时器、读出计时结果。

3.中断控制器模块中断控制器模块主要负责处理外部中断信号,实现快速响应外部事件。

运用此模块需要学习相关中断处理机制、中断高低优先级、中断时间等知识。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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.13.系统板上硬件连线(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.程序框图主程序框图中断服务程序框图图4.21.26.汇编源程序DISPBUF EQU 30H DISPCNT EQU 38H DISPBIT EQU 39HT1CNTA EQU 3AHT1CNTB EQU 3BHCNT EQU 3CHORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV DISPCNT,#8 MOV A,#10如有帮助,欢迎下载。

MOV R1,#DISPBUFLP: MOV @R1,AINC R1DJNZ DISPCNT,LPMOV DISPBIT,#00HMOV T1CNTA,#00HMOV T1CNTB,#00HMOV CNT,#00HMOV TMOD,#01HMOV TH0,#(65536-1000) / 256MOV TL0,#(65536-1000) MOD 256SETB TR0SETB ET0SETB EASJMP $INT_T0:MOV TH0,#(65536-1000) / 256MOV TL0,#(65536-1000) MOD 256MOV A,DISPBITADD A,#DISPBUFMOV R0,AMOV A,@R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,P1ANL A,#0F8HADD A,DISPBITMOV P1,AINC DISPBITMOV A,DISPBITCJNE A,#08H,NEXTMOV DISPBIT,#00HNEXT: INC T1CNTAMOV A,T1CNTACJNE A,#50,LL1MOV T1CNTA,#00HINC T1CNTBMOV A,T1CNTBCJNE A,#8,LL1MOV T1CNTB,#00HINC CNTMOV A,CNTCJNE A,#9,LLX如有帮助,欢迎下载。

MOV CNT,#00HMOV A,CNTLLX: CJNE A,#01H,NEX1MOV 30H,#8LL1: LJMP DONENEX1: CJNE A,#02H,NEX2MOV 31H,#8MOV 30H,#8LJMP DONENEX2: CJNE A,#03H,NEX3MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX3: CJNE A,#04H,NEX4MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX4: CJNE A,#05H,NEX5MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX5: CJNE A,#06H,NEX6MOV 35H,#8MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX6: CJNE A,#07H,NEX7MOV 36H,#8MOV 35H,#8MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX7: CJNE A,#08H,NEX8MOV 37H,#8MOV 36H,#8MOV 35H,#8MOV 34H,#8MOV 33H,#8MOV 32H,#8MOV 31H,#8MOV 30H,#8LJMP DONENEX8: CJNE A,#00H,DONEMOV 37H,#10MOV 36H,#10MOV 35H,#10MOV 34H,#10MOV 33H,#10MOV 32H,#10MOV 31H,#10MOV 30H,#10LL: LJMP DONEDONE: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H END7.C语言源程序#include <AT89X51.H>unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};unsigned char dispbitcode[]={0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};unsigned char dispbuf[8]={16,16,16,16,16,16,16,16};unsigned char dispbitcnt;unsigned int t02scnt;unsigned char t5mscnt;unsigned char u;unsigned char i;void main(void){TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;ET0=1;EA=1;while(1);}void t0(void) interrupt 1 using 0{t5mscnt++;if(t5mscnt 4){t5mscnt=0;P0=dispcode[dispbuf[dispbitcnt]];P1=dispbitcode[dispbitcnt];dispbitcnt++;if(dispbitcnt 8){dispbitcnt=0;}}t02scnt++;if(t02scnt 1600){t02scnt=0;u++;if(u 9){u=0;}for(i=0;i<8;i++){dispbuf[i]=16;}for(i=0;i<u;i++){dispbuf[i]=8;}}} 22.电子琴1.实验任务(1.由4X4组成16个按钮矩阵,设计成16个音。

(2.可随意弹奏想要表达的音乐。

2.电路原理图图4.22.13.系统板硬件连线(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;(2.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;4.相关程序内容(1.4X4行列式键盘识别;(2.音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中6 LA 880 64968低3 M 330 64021 # 6 932 64994低4 FA 349 64103 中7 SI 988 65030# 4 FA# 370 64185 高1 DO 1046 65058低5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高2 RE 1175 65110低6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高3 M 1318 65157低7 SI 494 64524 高 4 FA 1397 65178中1 DO 523 64580 # 4 FA# 1480 65198# 1 DO# 554 64633 高5 SO 1568 65217中2 RE 587 64684 # 5 SO# 1661 65235# 2 RE# 622 64732 高6 LA 1760 65252中3 M 659 64777 # 6 1865 65268中4 FA 698 64820 高7 SI 1967 65283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音0-19之间,中音在20-39之间,高音在40-59之间TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0DW 0,63731,63928,0,64185,64331,64463,0,0,0DW 0,64580,64684,64777,64820,64898,64968,65030,0,0DW 0,64633,64732,0,64860,64934,64994,0,0,0DW 0,65058,65110,65157,65178,65217,65252,65283,0,0DW 0,65085,65134,0,65198,65235,65268,0,0,0DW 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY 调4/4 125ms 调4/4 62ms调3/4 187ms 调3/4 94ms调2/4 250ms 调2/4 125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

相关文档
最新文档