单片机实验1

合集下载

流水灯实践学习心得体会doc

流水灯实践学习心得体会doc

流⽔灯实践学习⼼得体会doc流⽔灯实践学习⼼得体会篇⼀:对LED流⽔灯的学习总结单⽚机的学习总结第⼀个实验:⼀、从点亮⼀个发光⼆极管到实现流⽔灯的操作实验报告实验⽬的:(1)知道单⽚机最⼩系统和典型系统(2)知道如何建⽴⼀个⼯程,完成⼀个点亮发光⼆极管的编译和烧写实验器件以及基础知识描述:(1)LED发光⼆极管是⼀种半导体⼆极管,可以把电能转换成光能,有⼀个PN结构成。

(2)晶振:全称为晶体振荡器,其作⽤是产⽣原始的时钟频率,这个频率晶振经过频率发⽣器的放⼤或缩⼩后就成为了电脑中各种不同的总线频率。

(3)IO端⼝的驱动能⼒:每个I/O端⼝允许的做⼤20mA 的灌电流,可以直接驱动LED和继电器;⾼电平输出时⼀般对负载提供电流其提供的电流叫“拉电流”;低电平输出时⼀般是要吸收负载的电流,其吸收的电流叫“灌电流”。

(4)P1.0---P1.7:准双向接⼝(内置上拉电阻),端⼝P1的数据寄存器⽤P1表⽰,端⼝置⼀表⽰⾼电平,设置为0表⽰输出低电平。

(5)如何进⾏程序烧写:5.1、⽤传统的并⾏烧写器5.2采⽤⽬前流⾏的IAP在线下载程序,STC的单⽚机可以不要编程器,通过USB或串⼝下载程序(6)延时函数:每条指令都占有⼀定的时间,如果让机器什么都不⼲机器就会延时,外加循环此数⼀个完整的点亮LED源代码程序如下:#includeSbit LED=P1^0;void main(){LED=1;LED=0;While(1)}有这⼀个简单的程序实现使p1^0端⼝控制的LED灯点亮,如果要实现多个灯同时点亮呢?可以定义多个端⼝,使之输出低电平即可://实现第1、3、5、7个LED灯点亮#includesbit LED0=P1^0;sbit LED2=P1^2;sbit LED4=P1^4;sbit LED6=P1^6;main(void){LED0=0;LED2=0;LED4=0;LED6=0;while(1){}}实现了控制灯亮暗后,程序中添加⼀段延时程序即可实现灯的闪烁:延时函数分为有参延时和⽆参延时;//⼀个简单的有参延时函数:void delay(unsigned int t){While(--t);}//⽆参延时函数:void delay(){for(int i=1000;i>0;i++)for(int j=1000;j>0;j++);}或者: void delay(){Unsigned int i=300;While(--i);}通过进⼀步的分析可以进⾏流⽔灯的设计:设计⽬的:从实际⼯程出发,在理论和实践上掌握流⽔灯系统的基础组成,⼯作原理。

单片机mcu1

单片机mcu1

单片机应用系统的基本组成
1. 系统硬件基本组成
信号采集 及处理
A/D MCU 开关量输入 显示子系统
键盘子系统
D/A 数据存储 子 系 统 (E2PROM 、 Flash)
信号 放大
开关量输出

显示子系统:负责系统的显示,可用LED发光二极 管、LED数码管、LCD等作为显示器件。 A/D和D/A:分别负责系统的模拟信号采集(可用来测 温、测压等)和模拟信号输出(可用来控制调节阀等执 行机构)功能。 开关量输入和输出:分别负责系统的数字信号采集 和数字信号输出功能。 数据存储子系统:在某些仪表或设备中,经常需要 存储大量的数据(如,温度表可存储1天的历史温度 值,且掉电不丢),则可加上数据存储子系统(使用 Flash、E2PROM芯片)用来存储数据。



一、嵌入式系统

嵌入式系统是以应用为中心,以计算机技术为基础, 并且软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系 统。 它一般由嵌入式微处理器、外围硬件设备、嵌入式 操作系统以及用户的应用程序等四个部分组成,用

于实现对其他设备的控制、监视或管理等功能。
二、复杂指令集和精简指令集
CPU架构:

CISC(Complex Instruction Set Computer,复杂 指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)是当前CPU的 两种架构。 区别在于不同的CPU设计理念和方法。


(4)、其他常用系列单片机

摩托罗拉(motorola)的MC68HC05/11/12/16, 68300等; 德州仪器(TI)的MSP 430系列; ATMEL公司的AVR系列;

TX-1C单片机实验板使用手册V2.0

TX-1C单片机实验板使用手册V2.0
3.1 闪烁灯.............................................................................................................4 3.2 流水灯.............................................................................................................6 3.3 单键识别.........................................................................................................8 3.4 59 秒计数器..................................................................................................10 3.5 矩阵键盘检测...............................................................................................13 3.6 利用定时器和蜂鸣器唱歌 ..........................................................................19 3.7 模数转换ADC0804 的应用.........................................................................23 3.8 数模转换DAC0832 的应用........................................................................26 3.9 DS18B20 温度测量显示实验......................................................................28 3.10 1602 字符液晶显示 ...................................................................................34 3.11 EEPROM AT24C02 实验 .........................................................................37 3.12 串口通讯实验............................................................................................43 联系方式...................................................................................................................45 4. WAVE使用说明 ...............................................................................................46 5. KEIL的使用.....................................................................................................51 6. STC单片机下载软件的安装与使用 ..............................................................58

单片机程序调试步骤(一)

单片机程序调试步骤(一)

单片机程序调试步骤(一)引言概述:单片机程序调试是嵌入式开发中重要的一环,它确保了程序在硬件上的正确运行。

本文将介绍单片机程序调试的一般步骤,以帮助开发人员快速排查和修复程序中的问题。

1. 确认程序问题:- 观察现象:仔细观察单片机的运行状况,是否存在明显的问题,如无反应、死机等。

- 分析代码:检查程序代码,确定是否存在逻辑错误、语法错误、变量定义错误等。

2. 配置开发环境:- 安装软件:确保所需的开发软件已正确安装并配置好相关的开发环境。

- 连接硬件:将单片机与编程器、开发板等硬件设备正确连接,并确保连接稳定。

3. 编译程序:- 检查编译选项:确保编译选项设置正确,包括引用的库文件、头文件路径等。

- 编译代码:使用编译器编译程序,并查看编译输出结果,检查是否存在语法错误、警告等。

4. 下载程序:- 配置下载器:检查下载器的设置,确保下载器与目标单片机的型号、通讯方式等匹配。

- 下载程序:使用下载器将编译好的程序下载到目标单片机,并确保下载完成且成功。

5. 调试程序:- 断点调试:在代码中设置断点,通过单步执行、变量查看等功能逐步调试程序,定位问题所在。

- 调试工具:使用调试工具,如逻辑分析仪、示波器等,对信号进行监测和分析,定位硬件问题。

总结:单片机程序调试是确保程序正确运行的关键步骤,通过确认程序问题、配置开发环境、编译程序、下载程序以及调试程序,开发人员可以有效地排查和修复程序中的问题。

调试过程中需要仔细观察现象、分析代码、设置断点和使用调试工具等,从而找到问题所在,并解决它们。

只有经过充分的调试,单片机程序才能在硬件上稳定运行。

《单片机技术及应用》教学课件 项目1 任务 三 实现声控台灯功能

《单片机技术及应用》教学课件 项目1 任务 三 实现声控台灯功能

声器件
传声器的应用电路
把一导体置于磁场中, 在声波的推动下使其振动, 这时在导体两端便会产生感应电动势。
声音传感器简介
1
2
3
4
5
原理及分类
驻极体电容式 声音传感器
压电驻极体电 动圈式传声器 驻极体式电容
声器件
传声器的应用电路
灵敏度高
电路稳定
第一种
第二种
驻极体式电容传声器,有两种接法
1
声音传感器简介
1.3 实现声控台灯功能
01 职业能力目标 03 任务分析计划 05 任务实施 07 任务小结
02 任务描述与要求 04 知识储备 06 任务检查与评价 08 任务拓展
1
2
3
4
5
硬件连接
建立工程
编写程序
编译下载
查看结果
单片机开发模块、声音 传感模块、继电器模块
和灯座。
单片机开发模块的P1.6 脚与继电器模块的J2脚
驻极体电容式 声音传感器
压电驻极体电 动圈式传声器 驻极体式电容
声器件
传声器的应用电路
压电效应进行声电/电 声变换
转换器为 30~80 μm 厚的多孔聚合物压电
驻极体薄膜
相对电容式/动圈式减 小电声器件的体积
声音传感器简介
1
2
3
4
5
原理及分类
驻极体电容式 声音传感器
压电驻极体电 动圈式传声器 驻极体式电容
电容式
声音传感器按换能原理的 不同,分为 三种类型-电 动式、压电式和电容式
声音传感器简介
1
2
3
4
5
原理及分类
驻极体电容式 声音传感器

用计数器中断实现100以内的按键计数[1]

用计数器中断实现100以内的按键计数[1]

3.33 用计数器中断实现100以内的按键计数一. 单片机系统功能简介:本例利用计数器中断实现按键计数,这与此前的按键计数程序看起来比较相似,但是用方法完全不同。

本例用T0计数器中断实现按键计数,由于计数寄存器初值为1,因此P3.4引脚的每次负跳变都会触发T0中断,实现计数值累加。

二.单片机系统硬件电路设计:2.1 proteus原理图:2.2 原件清单:三.软件设计:3.1 主程序流程图:3.2 程序清单:#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar codeDSY_CODE[]={0X3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00 };uchar Count=100;void main(){P0=0x00;P2=0x00;TMOD=0X06;TH0=TL0=256-1;ET0=1;EX0=1;EA=1;IP=0X02;IT0=1;TR0=1;while (1){P0=DSY_CODE[Count/10];P2=DSY_CODE[Count%10];}}void Clear_Counter()interrupt 0{Count=0;}void Key_Counter() interrupt 1{Count=(Count-1)%100;}四.系统调试4.1 在PROTEUS7.5仿真步骤1将程序在KEIL中编译,直到达到要求的功能为止;2在PROTEUS中绘制硬件图(在PROTEUS仿真时可以不添加最小系统电路;实际电路中需要);3将KEIL C中编译好的HEX文档加载到PROTEUS中;4按下K1开始计数,按下K2可以清零。

仿真效果:按下K1可以看到数码管开始计数,按一次记一次,从0-99,按下K2按键,可以看到数码管变0。

实验四(一) 串并转换实验(2学时)

实验四(一)  串并转换实验(2学时)
ZW=table2[0]; //再送字位
delay(10); //延时一小段时间
ZX=0xff; //
数码管消影
ZX=table[buffer[1]]; //显示ASCII的十位
ZW=table2[1];
delay(10);
ZX=0xff;
ZX=table[buffer[2]]; //显示ASCII值的个位
num++;
if(num==10) //定时1S时间到
{Hale Waihona Puke num=0;i++;
if(i==10) i=0; //数码管反复扫描
SBUF=~Table[i]; //取反,送数码管显示数字
}
}
实验四(二) 单片机与PC机串行通信实验(2学时)
一、实验目的
⑴掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。
0x49,0x41,0x1F,0x01,0x09}; //共阳数码管字段
void main()
{ TMOD=0x01; //定时器T0方式1
TH0=(65536-50000)/256;//定时器赋初值,定时100ms,(12MHz晶振)
TL0=(65536-50000)%256;
EA=1; //总中断打开
湖北民族学院科技学院
信息工程学院
单片机原理实验报告
实验名称:单片机串口应用
专业班级
学号
姓名
指导教师
实验四(一) 串并转换实验(2学时)
一、实验目的
⑴掌握8031串行口方式0工作方式及编程方法。
⑵掌握利用串行口扩展并行I/O通道的方法。
二、实验内容
(1)在实验箱上完成:

51单片机实验-实验二 P1口输入、输出实验

51单片机实验-实验二 P1口输入、输出实验

实验二 P1口输入、输出实验一、实验目的学习Pl口的使用方法。

学习延时子程序的编写和使用。

进一步熟悉星研Star16L仿真器系统的操作,和EL-Ⅱ型通用接口板实验电路结构,学习使用PROTEUS仿真软件实现单片机的虚拟仿真。

掌握虚拟仿真与实际系统仿真的有机衔接。

二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。

三、实验内容1)P1口做输出口,经过74LS04反相器接八只发光二极管,编写程序,使发光二极管循环点亮。

2)(选作)P1口既做输入又做输出,在P1.0~P1.3口接四个平推开关,通过开关的不同位置向P1.0~P1.3输入不同的状态,然后利用输入指令读取所设开关状态,为验证输入结果的正确与否,将它们输出到P1.4~P1.7,经过74LS04反相器驱动发光二极管。

四、实验结果1)循环点亮八只发光二极管。

取P1.0口接出第一个二极管,以此类推,第八个接P1.7口。

Proteus 仿真图①循环左移,即从第一个二极管开始点亮到第八个二极管实验程序:ORG 0000HSTART:MOV R2,#8MOV A,#01H ;先让第一个发光二极管点亮LOOP: MOV P1,A ;从P1口输出到发光二极管LCALL DELAYRL A ;循环左移(从第一个发光二极管开始一直往下一个二极管)DJNZ R2,LOOP ;判断移动是否超过8位,未超过则继续循环LJMP START ;循环发光DELAY:MOV R5,#5 ;延时0.5秒子程序DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3DJNZ R6,DEL2DJNZ R5,DEL1RETEND仿真结果:发光二极管从D1开始发光,依次往下到D8,然后循环这一过程。

实验结果:发光二极管从第一个开始发光,依次往左到第八个,然后循环这一过程。

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

单片机实验1
实验一、MCS51单片机基本开发环境
1.实验目的:
1) 熟悉软件的集成开发环境
2) 掌握单片机软件设计流程
3) 掌握单片机存贮器结构及各窗口之间的联系
2.实验内容:
1) 用三种方法实现将累加器A内容改为20H
方法1--MOV A,#20H
方法2—MOV R0,#20H
MOV A,R0
方法3—MOV R0,#20H
XCH A,R0
2) 将58H位单元置为1,观察内部RAM中2BH内容的变化
代码:
SETB 2BH.0
JMP $
END
这是关于内部存储中对单元和字节了解,不理解很容易做错.比如开始写的指令为
MOV R0,#58H;MOV @R0,#1
这是错误的指令。

这就需要认真去了解单片机中的字节地址与位地址的关系。

80C51中有位寻址区和字节寻址区。

题目中58H为位地址,2BH为字节地址,且58H为2B字节的最低位。

由于58H属于位寻址区,可用位操作指令SETB进行置位,SETB 2BH.0执行后,2BH中内容变为01
3) 如果当前状态为有进位、工作寄存器使用区2,请用3种方法设置这种状态
代码:
ANL PSW,#01H
MOV A,PSW
CJNE A,#01,LAB2
LAB1:JMP LAB1
LAB2: SETB PSW.4 MOV P0,#01H MOV R0,#18H
CLR PSW.3 MOV C,P0.0 MOV PSW,R0
MOV PSW.4,C
CPL C
MOV PSW.3,C
END
以上LAB2写了三段代码,可分别完成题目要求。

不过实验时只是对代码进行了错误调试,没有对结果进行检验。

其中值得注意的是对于布尔(位)操作指令的用法,比如传送指令必须经累加器C,如第二段中MOV P0,#01H ; MOV C,P0.0 ,以及对于位寻址的方式(如需用到“.”隔开)的应用。

4) 编一个小程序将内部RAM中的20H单元的内容送到21H单元并调试(分组完成)
代码:
5) 用程序将堆栈指针指向60H,然后在堆栈中依次压入01,02,03,04,05五个数,观察哪些单元内容发生了变化,各变为多少?从哪些窗口可以发现这些变化?顺序将堆栈中的五个数放入30H~34H 五个单元中,编程实现之。

代码:(分组完成)
3.选做实验内容:数据传送
目的:
1) 掌握8051单片机内部数据存贮器、外部数据存贮器的数据传送特点和应用
2) 掌握MOV,MOVX和MOVC类指令的用法及区别
内容:
1)将片内RAM数据区20H为首地址的十六个字节传送到30H为
首地址的数据
区,即:20H~2FH送30H~3FH
代码:
2) 将外部数据存储器2000H~200FH单元的十六个数传送至内部数据存储器
的30H~3FH
代码:
第一次做实验主要是熟悉了解了下单片机编程软件的使用,开始接触时在对其软件不是太了解的情况下实验编程做的确实很乱,不清楚该怎样进行,比如不知如何进行对指令的调试,也不清楚该如何观察结果,没有一个整体的概念,所以在了解其开发环境上花了不少时间。

经过一段时间的摸索后也终于了解了其具体的使用,也能够顺利的对指令的编程运用。

运行指令时遇到的一些问题需要注意的也在上面各题中做了说明。

还有需要注意的是:进入软件仿真时需要对存储空间进行查看的方法是在Address窗口中输入:d:00h 显示内部数据存储器从00h开始的单元;x:1000h 显示外部数据存储器从1000h开始的单元;c:0000H 显示程序存储器内容。

还有由于伪指令END定义的原因,在程序末需加一条死循环调转指令(如 JMP $ )使程序不会进入其他未知空间执行其他指令。

相关文档
最新文档