单片机高级实训项目教程(2)
- 格式:doc
- 大小:206.50 KB
- 文档页数:10
实训项目一让单片机动起来1、实训目的及要求:1)掌握单片机开发板的使用方法(驱动识别,程序下载)2)掌握单片机程序开发软件KEIL的使用3)掌握单片机程序烧录软件STC-ISP下载软件的使用2、实训内容1)根据实训报告内容编写单片机程序2)调试程序并使用ISP下载软件将程序烧录到单片机芯片中3)观察实验现象并记录4)完成实训报告内容3、实训准备硬件:单片机开发板、电脑、杜邦线软件:keil uvision4 、STC-ISP4、实训过程1)流程图2)实训程序一:#include "reg52.h"sbit LED=P1^0;void main(){LED=0;while(1);}实训程序二:#include "reg52.h"#define LED P1;void main(){LED=0xaa;while(1);}3)实训步骤①打开KEIL软件编写LED控制程序。
②程序调试无误后,使用KEIL生产HEX文件。
③将生产的HEX文件烧录到单片机芯片中,并观察实验现象。
3)实验现象记录实训程序一:。
实训程序二:。
4)实训报告要求①将实训程序中的注释补充完整,了解每条语句作用。
实训项目二LED的闪烁1、实训目的及要求:1)掌握单片机控制LED点亮和熄灭的方法。
2)了解单片机延时程序的原理及设计。
3)了解单片机中常用的变量类型及其定义方法。
2、实训内容1)根据实训报告内容编写单片机程序2)调试程序并使用ISP下载软件将程序烧录到单片机芯片中3)观察实验现象并记录4)完成实训报告内容3、实训准备硬件:单片机开发板、电脑、杜邦线软件:keil uvision4 、STC-ISP4、实训过程1)流程图2)实训程序:#include "reg52.h"#define uchar unsigned char //定义uchar为定义字符型变量,范围#define uint unsigned int //定义uint为定义整型变量,范围sbit LED=P1^0;uint i;//定义整型变量ivoid main(){while(1){LED=0;for(i=0;i<20000;i++);LED=1;for(i=0;i<20000;i++);}}3)实训步骤①打开KEIL软件编写LED闪烁控制程序。
佛山市顺德区郑敬诒职业技术学校《PIC单片机原理与应用》实训指导书制定:审核:审批:制定日期:二00七年九月实训项目一 熟悉实验环境及MPLAB 的使用实验目的:熟悉实验软硬件环境,能够对单片机编程并进行调试。
实验内容:了解实验平台软、硬件的构成,熟悉实验环境,掌握MPLAB 的使用方法;建立工程,编程,调试并运行程序。
基本要求:能够在计算机上使用MPLAB 建立一个工程,应用简单指令编写简单的程序进行编译,并在实验板上调试成功。
扩展要求:1、编写一段程序让PORTD 口输出二进制数‘10101010’。
2、编写跑马灯程序。
电路原理:单片机与LED:RD0RD1 RD2: RD7 程序流程:实现D 口小灯四亮四灭的程流程图单片机PORTD实验步骤:1、打开MPLAB。
双击桌面上名为“MPLAB IDE”的图标,打开MPLAB编译环境。
2、进入工程向导。
点击MPLAB上面菜单中的Project(工程),选择ProjectWizard(工程向导),通过工程向导来建立工程。
3、选择单片机。
进入欢迎界面(下图),点击下一步,在Device(设备)中选择PIC16F877A,如果该项为PIC16F877A则直接点下一步。
4、选择编译语言。
选择MPASM汇编语言编译器,如果该项为MicrochipMPASM Toolsuite,则直接点下一步。
5、创建工程文件。
请在D盘下建立一个存放工程的文件夹,文件名可以用英文、数字或英文数字混合,注意:不要用中文或标点符号,文件夹名和工程名长度不要超过8个字符。
下面以建立文件夹名为abcd , 工程名为LED 为例。
此处写入工程名字,可以和实验内容相关,如LED此处写入存放工程的路径,如D:\abcd,建议通过点击右边Browse(浏览)来选择建立好的文件夹6、添好工程名和路径后点击下一步,下图表示可以添加程序文件到工程中,如果是初次编程或没有编好的程序文件,可直接点击下一步。
单片机实践项目课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本结构、工作原理及其在各行各业的应用。
2. 学生掌握单片机编程的基础知识,如指令系统、寄存器、I/O 口控制等。
3. 学生能够描述并分析单片机外围电路的原理及其功能。
技能目标:1. 学生能够运用所学知识,独立完成单片机的编程和调试。
2. 学生能够设计简单的单片机控制系统,解决实际问题。
3. 学生通过实践项目,提高动手能力,培养创新意识和团队协作精神。
情感态度价值观目标:1. 学生培养对单片机及电子技术的兴趣,激发学习热情。
2. 学生在实践过程中,培养耐心、细致的工作态度,提高解决问题的能力。
3. 学生认识到单片机在现代科技发展中的重要作用,树立为国家和民族科技事业作贡献的信念。
课程性质:本课程为实践性较强的学科,强调理论知识与实际操作的相结合。
学生特点:学生处于高年级阶段,已具备一定的电子技术基础和编程能力,具有较强的探究欲望和自主学习能力。
教学要求:教师需注重引导学生将所学知识应用于实践,鼓励学生创新思维,提高解决问题的能力。
通过课程学习,使学生能够达到预定的学习成果。
二、教学内容1. 单片机基础知识:介绍单片机的基本结构、工作原理,重点讲解CPU、内存、I/O 口等组成部分的功能及相互关系。
教材章节:第一章 单片机概述2. 单片机编程语言:讲解单片机编程所需的基础知识,如指令系统、寄存器、汇编语言等。
教材章节:第二章 单片机编程语言3. 单片机外围电路设计:介绍单片机与外围电路的连接方法,讲解常用外围元器件的原理及功能。
教材章节:第三章 单片机外围电路设计4. 单片机实践项目:设计多个实践项目,涵盖灯光控制、温度测量、电机控制等方面,让学生动手实践,巩固所学知识。
教材章节:第四章 单片机实践项目5. 单片机系统设计与调试:讲解单片机系统设计的方法和步骤,培养学生独立设计单片机控制系统及调试的能力。
教材章节:第五章 单片机系统设计与调试教学内容安排和进度:共15课时,其中基础知识3课时,编程语言4课时,外围电路设计3课时,实践项目4课时,系统设计与调试1课时。
单片机综合实训教案一、实训目的与要求1. 目的(1)了解单片机的基本原理和结构。
(2)掌握单片机的编程方法和应用技巧。
(3)培养动手能力和团队协作精神。
2. 要求(1)熟悉单片机的基本硬件组成。
(2)掌握单片机编程语言(如C语言、汇编语言等)。
(3)能够独立完成简单单片机程序的设计与调试。
二、实训内容与课时安排1. 实训内容(1)单片机硬件认识与搭建。
(2)单片机编程基础。
(3)单片机常见外设接口编程。
(4)单片机应用系统设计。
(5)综合实训项目。
2. 课时安排(1)单片机硬件认识与搭建:2课时。
(2)单片机编程基础:4课时。
(3)单片机常见外设接口编程:6课时。
(4)单片机应用系统设计:4课时。
(5)综合实训项目:8课时。
三、实训步骤与方法1. 实训步骤(1)单片机硬件认识与搭建:了解单片机的硬件组成,搭建实验平台。
(2)单片机编程基础:学习单片机编程语言,掌握基本编程技巧。
(3)单片机常见外设接口编程:学习并掌握常见外设接口(如LED、按键、串口等)的编程方法。
(4)单片机应用系统设计:结合实际项目,设计并实现一个完整的单片机应用系统。
(5)综合实训项目:完成一个综合性的实训项目,提高实际应用能力。
2. 实训方法(1)讲解与演示:教师讲解单片机相关知识,并进行现场演示。
(2)实践操作:学生动手进行实验,巩固所学知识。
(3)讨论与提问:学生之间互相讨论,解答疑问。
(4)项目实践:以小组为单位,完成综合性实训项目。
四、实训评价与考核1. 评价方式(1)平时表现:30%。
(2)实验报告:40%。
(3)综合实训项目:30%。
2. 考核标准(1)平时表现:参与课堂讨论、提问、实验操作等。
(2)实验报告:内容完整、分析深入、表达清晰。
(3)综合实训项目:项目完成度高、创新性强、实用性好。
五、教学资源与工具1. 教学资源(1)教材:单片机原理与应用。
(2)课件:单片机相关知识。
(3)实验器材:单片机开发板、编程器、实验器件等。
单片机应用技能实训(C语言)教案—项目8 项目8 数字显示交通灯控制电路制作任务1 项目有关知识学习一、案头二、教学实行过程实行环节教学内容导学办法组织教学1、检查学生出勤状况并做好记录。
2、调节学生注意力,为上课作准备。
互动交流复习提问1、依照前面所学知识,如何进行I/O端口扩展?2、交通灯作用是什么?有什么功能?本项目终极目的是制作一种单片机控制能显示倒计时时间交通灯控制电路。
提问导思导入在项目6中用数码管显示时间,为了不导致资源挥霍,咱们运用串行口方式0进行输出口扩展。
但运用串行口方式0扩展并行输出口,在使用上有一定局限性,因此,咱们在进行项目制作之前,学习MCS-51单片机简朴I/O口扩展办法。
启发学习积极性讲授新课一、并行I/O端口扩展由于简朴I/O端口扩展办法简朴实用,下面对该办法加以简介。
1、简朴I/O端口扩展芯片简介普通采用三态缓冲器(例如74LS244、74LS541)来扩展并行输入,用8D锁存器(例如74LS373、74HC573)来扩展并行输出。
图8-2是74LS541和74HC573逻辑符号图。
74LS541是三态缓冲器,74HC573是8D锁存器,采用20脚双列直插封装。
图8-2 74LS541 74HC573逻辑符号图2、简朴I/O端口扩展举例例8.1 运用两个8D锁存器74HC573扩展两个8位并行输出口。
单片机扩展两个8位并行输出端口硬件电路如图10-3所示,在预解决命令中将p20定义为P2.0,将p21定义为P2.1。
当需要将A中数据从U2输出时,执行如下指令:p20=0;//U2锁存数据用多媒体展示图8-2进行简介。
重点简介引脚使用。
p21=0;//U3锁存数据P0=ACC;//将ACC数据送给P0p20=1;//数据从U2输出p20=0;//U2锁存数据当需要将A中数据从U3输出时,执行如下指令:p20=0;//U2锁存数据p21=0;//U3锁存数据P0=ACC;//将ACC数据送给P0p21=1;//数据从U3输出p21=0;//U3锁存数据图8-3 扩展并行输出采用本例办法,运用P0、P2最多可扩展8个8位并行输出端口。
17.99秒马表设计1.实验任务(1.开始时,显示“00”,第1次按下SP1后就开始计时。
(2.第2次按SP1后,计时停止。
(3.第3次按SP1后,计时归零。
2.电路原理图图4.17.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。
(3.把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;4.程序框图主程序框图T0中断服务程序框图图4.17.25.汇编源程序TCNTA EQU 30HTCNTB EQU 31HSEC EQU 32HKEYCNT EQU 33HSP1 BIT P3.5ORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV KEYCNT,#00H MOV SEC,#00HMOV A,SECMOV B,#10DIV ABMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AMOV A,BMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,AMOV TMOD,#02H SETB ET0SETB EAWT: JB SP1,WTLCALL DELY10MSJB SP1,WTINC KEYCNTMOV A,KEYCNT CJNE A,#01H,KN1 SETB TR0MOV TH0,#06HMOV TL0,#06HMOV TCNTA,#00H MOV TCNTB,#00H LJMP DKNKN1: CJNE A,#02H,KN2 CLR TR0LJMP DKNKN2: CJNE A,#03H,DKN MOV SEC,#00HMOV A,SECMOV B,#10DIV ABMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AMOV A,BMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,AMOV KEYCNT,#00H DKN: JNB SP1,$LJMP WTDELY10MS:MOV R6,#20D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:INC TCNTAMOV A,TCNTACJNE A,#100,NEXTMOV TCNTA,#00HINC TCNTBMOV A,TCNTBCJNE A,#4,NEXTMOV TCNTB,#00HINC SECMOV A,SECCJNE A,#100,DONEMOV SEC,#00HDONE: MOV A,SECMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,AMOV A,BMOV DPTR,#TABLEMOVC A,@A+DPTRMOV P2,ANEXT: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END6.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 second;unsigned char keycnt;unsigned int tcnt;void main(void){unsigned char i,j;TMOD=0x02;ET0=1;EA=1;second=0;P0=dispcode[second/10];P2=dispcode[second%10]; while(1){if(P3_5 0){for(i=20;i>0;i--)for(j=248;j>0;j--);if(P3_5 0){keycnt++;switch(keycnt){case 1:TH0=0x06;TL0=0x06;TR0=1;break;case 2:TR0=0;break;case 3:keycnt=0;second=0;P0=dispcode[second/10];P2=dispcode[second%10]; break;}while(P3_5 0);}}}}void t0(void) interrupt 1 using 0 {tcnt++;if(tcnt 400){tcnt=0;second++;if(second 100){second=0;}P0=dispcode[second/10];P2=dispcode[second%10];}}18.“嘀、嘀、……”报警声1.实验任务用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出,产生频率为1KHz,根据上面图可知:1KHZ方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去,就形成我们所需的报警声了。
2.电路原理图图4.18.13.系统板硬件连线(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上,(2.在“音频放大模块”区域中的SPK OUT端口上接上一个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.26.汇编源程序T02SA EQU 30HT02SB EQU 31HFLAG BIT 00HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV T02SA,#00HMOV T02SB,#00HCLR FLAGMOV TMOD,#01HMOV TH0,#(65536-500) / 256 MOV TL0,#(65536-500) MOD 256 SETB TR0SETB ET0SETB EASJMP $INT_T0:MOV TH0,#(65536-500) / 256 MOV TL0,#(65536-500) MOD 256 INC T02SAMOV A,T02SACJNE A,#100,NEXTINC T02SBMOV A,T02SBCJNE A,#04H,NEXTMOV T02SA,#00HMOV T02SB,#00HCPL FLAGNEXT: JB FLAG,DONECPL P1.0DONE: RETIEND7.C语言源程序#include <AT89X51.H> unsigned int t02s;unsigned char t05ms;bit flag;void main(void){TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1);}void t0(void) interrupt 1 using 0 {TH0=(65536-500)/256;TL0=(65536-500)%256;t02s++;if(t02s 400){t02s=0;flag=~flag;}if(flag 0){P1_0=~P1_0; }}。