1 / 105

AVR 单片机应用实习 电子教案

AVR 单片机应用实习 电子教案. 实习准备:微机软硬件检查. 硬件配置是否齐全与完好: 主机、显示器、键盘、鼠标 单片机实训板、微机电源、扁馈线 软件配置是否齐全与完好: 仿真软件、下载软件、 avr 目录 清除垃圾文件(游戏及其它文本文件). 机位规范性检查与认定. 硬件规范性: 1 完整性与完好性 主机、显示器、键盘、鼠标 实训板、电源、通 信线、终端桌椅。 2 布局摆放位置 软件规范性:显示器界面统一,硬盘 D/E/F 文件应 全部清除;只有 zdh0501/ 文件夹。 3 各设备卫生整洁(含抽屉内) 每天早晨对照表格进行检查记录.

aileen
Download Presentation

AVR 单片机应用实习 电子教案

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AVR单片机应用实习 电子教案

  2. 实习准备:微机软硬件检查 硬件配置是否齐全与完好: 主机、显示器、键盘、鼠标 单片机实训板、微机电源、扁馈线 软件配置是否齐全与完好: 仿真软件、下载软件、avr目录 清除垃圾文件(游戏及其它文本文件)

  3. 机位规范性检查与认定 硬件规范性: 1 完整性与完好性 主机、显示器、键盘、鼠标 实训板、电源、通信线、终端桌椅。 2 布局摆放位置 软件规范性:显示器界面统一,硬盘D/E/F文件应 全部清除;只有zdh0501/文件夹。 3 各设备卫生整洁(含抽屉内) 每天早晨对照表格进行检查记录

  4. 常用软件的安装与使用 • AVRC编译器安装与设置(实际操作)。 • SLISP下载软件安装与设置(实际操作)。 • AVRC编译器使用(用代码生成器)。 • SLISP下载软件使用(实际操作)。

  5. AVR C 编译软件使用步骤: 1)先用编译器的代码生成向导建立新的工程文件框架(lx1.prj) 2)进行编译界面文件字形、字号、颜色设置 3)为便于解读可根据程序内容精简源文件 (只保留口地址的默认设置) 4)进行工程文件的编译可形成调试码(默认)或目标码 5)成功后全选转成文本文件进行备份(最好中文标题) 6)根据命题编辑文件框架 7)对编辑好的文件再次进行编译。(操作练习)

  6. 实习讲课:一、实训电路板简介 1. 实训电路板外观:见图1 2. 电路原理框图:见图2 3. M16引脚连接图:见图3 4. 系统接线图:见图4

  7. 二、电路板测试 1.运行并设置C软件 2.编制测试程序 1)用PC口访问LED:使八个LED指示全亮。 方法:程序初始化 DDRC=0XFF; //设置PC口为输出 PORTC =0X00;//使PC口锁存器为低电平。 while (1) //主程序 步骤:1硬件及连线图,2软件编辑、编译, 3调试-下载-运行后检查结果。

  8. 电路板测试续1 2) 用PA、PB口访问数码管,使数码管全亮(显示8.)。 方法:程序初始化 DDRA=0XFF;//设置PA口为输出 PORTA =0XFF;//使PA口锁存器为高电平。 DDRB=0XFF;//设置PB口为输出 PORTB =0X00;//使PB口锁存器为低电平。 while (1)//主程序 步骤:1硬件及连线图,2软件编辑、编译, 3调试-下载-运行后检查结果。

  9. 电路板测试续2 3) 用PA、PC口访问点阵管:使点阵管全亮,部分亮及不同数字。 方法:程序初始化 DDRA=0XFF;//设置PA口为输出 DDRC=0XFF;//设置PC口为输出 PORTA =0XFF;//使PA口锁存器为高电平。 PORTC =0XFF;//使PC口锁存器为高电平。 while (1)//主程序 步骤:1硬件及连线,2软件编辑、编译, 3调试-下载-运行后检查结果。

  10. 电路板测试续3 4) 用PD口访问按钮:分别检查8个按钮好坏 即:分别按动8个按钮使相应的指示灯亮 a.运行并设置C软件;(循环程序) b.编制测试程序 方法:DDRD=0X00;//设置PD口为输入图 PORTD=0XFF;//使PD口锁存器为高电平(上拉)。图 DDRC=0XFF;//设置PC口为输出 PORTC =0Xff;//使PC口锁存器为高电平(灯灭)。 while (1)//主程序 { PORTC=PIND;} //检测D口,将D口状态送到C口。 编辑-编译-调试-下载-运行后检查结果。

  11. 电路板综合测试 作业:编写整合程序。 要求: 1)上电后数码管、发光管均灭。 2)当8个拨动开关“ON”后其对应的数码管、发光管亮。(或当按动按键时其对应的数码管、发光管亮。)

  12. 下载线

  13. 接C口

  14. 接D口 PD2(INT0) PD3(INT1)

  15. 三、知识点命题练习 • 第一阶段主要内容: • 1延时显示与移位(延时及<<符号) • 2键控分支(按键控制) • 3自动计数(数组代码) • 4键控计数(消抖程序) • 5逻辑控制 (列逻辑式) • 6动态显示与转换(原理使用)

  16. 1延时显示与移位 M01.试编程序,使8个发光管和8个数码管全部按0.5秒间隔闪光。 M02.试编程序,使单个发光管亮按0.2秒时间间隔向左循环移动(单灯移)。 M03.试编程序,使发光管按0.5秒向左逐位循环全部点亮(流水灯)。 M04.试编程序,使单个数码管显示台号尾数并按0.3秒时间间隔向左循环移动。 (延时提示) (移位提示)

  17. 延时提示: 延时函数 (微秒级): 文件头: #include <delay.h> 格式: delay_us(1~65535) delay_ms(1~65535) 例:delay_us(100); //100微妙 delay_ms(100); //100毫秒

  18. 发光管移位提示: char i; for (i=0;i<=8;i++) { PORTC =0xFF>>i; delay_ms(500);}

  19. 数码管移位提示: char i; for (i=0;i<8;i++) {PORTD = ~(0X80>>i); delay_ms(500);}

  20. 应用题: Y01:试设计一交通灯:发光管最左边三 个灯为绿黄红。上电后,绿灯亮7秒,然后绿灯灭,黄灯闪3秒,红灯亮7秒,绿灯亮,重复上述过程。 Y02:试设计一节日彩灯:上电后,红灯单灯0.2秒左右循环一次;然后,绿灯0.2秒左右循环一次;红绿灯左右流水。重复上述过程。

  21. 2键控分支 提示1 M05.试编程序,上电后,显示台标尾数,发光管全灭。按左1键后使八个发光管向左逐个全部点亮,循环进行。按右1键后使八个发光管向右逐个全部点亮,循环进行。(0.5秒)。 M06.试编程序,上电后, 0.3秒闪光显示台号尾数,按右1键发光管由中间向 两边依次全亮,按右2键由两边向中间全亮。按左1键后返回显示台号尾数。(提示2:建两个数组,然后用for循环程序调用。)

  22. 按键控制提示1: 1.按下时执行一次预定程序:if(PIND.0==0) { …程序… } 2.按下时重复执行预定程序:while(PIND.0==0) {…程序… }; 3.按下时锁定执行预定程序If(PIND.0==0) while(1){…程序… }

  23. 程序参考框架: If(PIND.7= =0) while(PIND.0==1) {左移} If(PIND.0= =0) while(PIND.7==1) {右移}

  24. 3自动计数 M07.试编程序,使右1数码管间隔0.3秒 显示0~F不断循环。 M08.试编程序,使两头数码管0~9不断循环中小于5时发光管低四位亮,等于5时全亮,大于5时高四位亮。(以上间隔0.5S) 思路:建一个全局型单维数组变量table[]并给出0 ~ F对应的数码管代码,然后将数组值通过循环语句按顺序延时赋给P口。

  25. 4键控计数 M09.试编程序,上电后使八个发光管全灭,每按右1键一次使八个发光管以亮1灭零方式记一个数。 M10.试编程序,每按一次左1键数码管加一个数,数码管到9后归0继续不断循环计数。 说明

  26. 键控参考图: 返回

  27. 键控计数程序1: if (PIND.0==0) //等待键按下 { while (PIND.0==0) //等待键松开 delay_ms(2); //前沿延时消抖 // delay_ms(2);//后沿延时消抖 PORTC--; //上升沿有效 }

  28. 键控计数程序2(见教材) bit p1; p1=PIND.0; if(PIND.0==0&p1==1) PORTC--; p1=PIND.0; delay_ms(20);

  29. 5逻辑控制 提示 如果用拨动开关左1和右1二位代表逻辑输入A、B,发光管最高位左1位代表逻辑输出Y,试编程序实现下述逻辑关系: 11.与非逻辑。 12.异或逻辑。 A & Y B A =1 Y B

  30. 逻辑控制2 提示 如果用拨码开关左1、左2、左3代表逻辑输入A、B、C,发光管左1、左2、左3位指示其状态,用数码管1和0指示输出状态试编程序实现下述逻辑关系: 13模拟少数服从多数表决器(三取二)。 14模拟举重电子表决器(加权三取二)。 说明:三个举重裁判:一个主裁判两个副裁判 ; 1):主裁具有否决权,即当主裁不同意时则此举无效。 2):只有主裁再加上至少一个副裁同意则此举有效。

  31. 解逻辑命题步骤: 1.按命题定义变量并建真值表; 2.由真值表直接列逻辑式并简化逻辑式;或由真值表建卡诺图由卡诺图列简化逻辑式; 3.根据逻辑式编写程序;

  32. 16题题解

  33. 应用题: 课外作业 Y03:水箱水位监测(M10B) Y04:电力负荷逻辑控制(M10C)

  34. 模拟电源负荷智能分配(三对二变量)。 如果用拨码开关左1、左2、左3代表逻辑输入A、B、C,发光管最高位(左1位)和最低位(右1位)分别代表逻辑输出YA、YB,试编程序实现下述逻辑关系:

  35. 38题文字说明 如图所示有3个用电户:A1、B1、C 2,其中A与B用电量相同,C2则是2倍A1的用电量。这些用电户分别由2台发电机Y1、Y3供电,发电机Y1的最大功率等于B1的功率消耗,发电机Y3的最大功率是Y1的3倍。试用拨码开关分别代表A1、B1、C2用电户,用发光管代表发电机Y1、Y3运行状态。编写控制程序,能根据各用电户的启动与关闭情况,以最节约电能的方式自动启停发电机。

  36. 命题38图示 Y1 10MW用户 ~ A1 10MW发电机 10MW用户 B1 Y3 ~ 20MW用户 30MW发电机 C2

  37. 命题38题解1

  38. 命题38题解2

  39. 命题38题解3

  40. 5动态显示与转换 M15.试编程序,使数码管显示: “12345678”。按右2键则显示07-05-30。 M16.试编程序,使数码管循环高速只显示:“000~999”当数字小于500时发光管低四位亮否则发光管高四位亮。 M17.试编程序,使数码管循环显示000~FFF,方式为“--P数字--”,当数字小于800时发光管单灯循环右移否则循环左移。 显示提示 转换提示

  41. 显示原理 返回 PORTA.7-PRTDA.0 (高电平有效) + 1 2 3 4 - 1 1 1 0 PORTB.3-PORTB.0 (低电平有效)

  42. - 1 1 1 0 显示原理1 PORTA=ledbuff[0]//=table(4)=0x66 PORTA= 0X66 + 4 4 4 4 - PORTB=11111110 00000001<<0 1<<0 00000001 PORTB= ~(1<<0)=11111110

  43. 显示原理2 PORTA=ledbuff[1]//=table(3)=0x4F PORTB= 0X4F + 3 3 3 3 - 1 1 0 1 PORTB=11111110 1<<1 00000001<<1 00000010 PORTB= ~(1<<1)=111111101

  44. 1 0 1 1 显示原理3 PORTA=ledbuff[2]//=table(2)=0x5B PORTB= 0X5B + 2 2 2 2 - PORTB=10111111 00000001<<2 1<<2 00000100 PORTB= ~(1<<2)=11111011 返回

  45. 0 1 1 1 PORTA=ledbuff[3]//=table(1)=0x06 PORTB= 0X06 + 1 1 1 1 - PORTB=11110111 1<<3 00000001<<3 00001000 PORTB= ~(1<<3)=11110111

  46. 显示原理 返回 ledbuff[3] ledbuff[1] ledbuff[2] ledbuff[0] PORTA=ledbuff[i]; (高电平有效) 1 2 3 4 PORTB=~(1<<i); (低电平有效)

More Related