AVR-2313单片机应用(2005).doc

上传人:rrsccc 文档编号:9092282 上传时间:2021-02-02 格式:DOC 页数:13 大小:220.50KB
返回 下载 相关 举报
AVR-2313单片机应用(2005).doc_第1页
第1页 / 共13页
AVR-2313单片机应用(2005).doc_第2页
第2页 / 共13页
AVR-2313单片机应用(2005).doc_第3页
第3页 / 共13页
AVR-2313单片机应用(2005).doc_第4页
第4页 / 共13页
AVR-2313单片机应用(2005).doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《AVR-2313单片机应用(2005).doc》由会员分享,可在线阅读,更多相关《AVR-2313单片机应用(2005).doc(13页珍藏版)》请在三一文库上搜索。

1、AVR-2313单片微机应用(2005版)一、AT90S231310 简介:20脚封装,(8位B口、7位D口、2个振荡引脚、2个电源脚、1个重新启动)B口和D口15位均可用软件单独定义为输入或输出,作为输入时每个脚内部有上拉电阻,可用软件定义接通,即输入电平为1,当外部短路到地时输入电平为0。当作为输出时,灌入电流为20m A,流出电流较小,约几个mA。振荡脚可外接频率最高为10MHZ的晶振,作为工作时钟。AVR90系列单片微机大多数指令只需1个时钟周期即可完成。工作电压为4.06.0V2K字节的在线可编程Flash存储器。(1000次以上寿命)二、BASCOMAVR 软件的安装与使用:该软件

2、用BASIC高级程序设计语言编写程序,经自动编译后,可直接下载到AVR单片微机中运行。软件免费试用版可到WWW.MCSELEC.COM或WWW.QSL.NET/BA1FB/下载。试用版软件可安装程序最长为2K字节。适合AT90S2313的2K字节存储器。安装的PC电脑使用WINDOS98以上系统。双击运行SETUP.EXE安装程序,一路点击NEXT或YES完成安装。编程前须设置以下系统参数:(使用KJ2313实验器时)在Option-Compiler-Chip下打开各选项,选定芯片(90S2313),工作频率8000000HZ,LCD显示屏为16X2模式。在Programmer窗口中选择Sam

3、ple Electronics programmer(采用内部的程序下载器)。OK退出。BASCOM变量的类型及数值范围:位(Bit) 0、1字节(Byte) 0255整型(Integer) -3276832767字(Word) 065535长型(Long) -21474836482147483647字符串(String) 三、KJ2313单片微机实验器介绍: 本实验器采用模块结构,由若干插件组合而成。也可自行设计插件,扩展功能。1、主板: 用AT90S2313-10芯片,8MHZ晶振,5V稳压(外接79V整流电源),有下载插座,用专用下载线和BASCOM-AVR软件从PC电脑打印口下载程序至

4、芯片,不需要开发器。B口用12脚排插引出,D口用9脚排插引出,右边开始第一脚接地,第二脚+5V电源,第三脚开始为各个口,因此插件时必须从插座右边第一脚开始插,左边可空出。B口最左的两个脚从D口引入,用于动态LED数码显示作位选。最下面为16 X 2液晶屏(LCD)专用的2个6脚插座,中间空四个脚的位置,因实际使用时有四根数据线未用(见图)。2、发光二极管(LED)插件:分二排共16个发光二极管作显示。上排1电平点亮,下排0电平点亮,用短接插进行切换。本插件B口、D口均可使用,但插在D口时最左边1位不亮(D口只有7位)。 插件共有10脚,右起第一脚接地,第二脚电源,其余为口线。3、声音插件: 声

5、音输入为B.0或D.6口。经电路放大后,用蜂鸣器发声。并有三个按钮可供选曲。 插件共有6脚,右起第一脚接地,第二脚电源,第三脚为声音输入,其余为按钮输出。4、LED数码显示插件:采用共阴两位8段数码管。插在B口时可动态显示两位数码。 插脚从左到右依次为十位、个位、小数点、a、b、c、d、e、f、g段、电源、地。 动态使用个位或十位选中时该脚应为0电平,这时该位点亮。静态使用时这二脚悬空,并用短路块将插件上方中间的插脚与左右插脚之一短路,只有该方向的一位能显示数码。5、字符型液晶显示屏(LCD)插件:16A2字符型液晶显示屏是一种符合通用标准的液晶显示屏。可显示二行,每行16个字符。其内部有专门

6、的CPU(HD44780U或兼用CPU)和指令系统。内建有192个字的字符库,并可由用户自造8个自定义字符(5x8点阵)。BASCOM-AVR含有与其通讯的专用命令语句,可以很方便地作为字符显示器件应用。16A2显示屏与外部数据通讯以及电源与调整功能由16个引脚进行,详见下表。本插件应插入主板最下方的专用插座(2个6芯插座,中间空四个脚位置)。 16A2字符型液晶显示屏引脚名称及功能表引脚号符号状态功能2313实验器插座1Vss电源地接地2Vdd+5V电源5V电源3Vo液晶驱动电源,可调整屏亮度。接地4RS输入数据/指令寄存器选择:数据=1,指令=0D1口5R/W输入寄存器读/写操作选择:读=

7、1,写=0接地,只写6E输入使能信号D0口7三态数据线0(可不用)空脚8三态数据线1(可不用)空脚9三态数据线2(可不用)空脚10三态数据线3(可不用)空脚11三态数据线4D3口12三态数据线5D4口13三态数据线6D5口14三态数据线7D6口15空脚5V电源(无效)16空脚接地(无效)例一: 移动发光(使用发光二极管插件)根据硬件短路插的设定,发光二极管在1电平或0电平发光,每隔0.5秒左移一位。Config Portb = Output 设置B端口为输出Dim A As Byte 定义变量值的数值范围(0255)A = &B00010001 赋值(前缀二进制&B,十六进制&H,十进制无)D

8、o 循环体开始Portb = A B端口输出A值Waitms 500 等待500毫秒Rotate A , Left , 1 左移一位Loop 循环体结束。运行时在DOLOOP之间不断循环。End 程序结束例二:09随机数显示(使用数码管插件、静态显示要用短路插)Config Portd = Output D口作为输出口(只有7位,没有小数点)Dim X As ByteDim D As ByteDoX = Rnd(10) 设定最大随机数为9(不包括10)If X = 0 Then D = &B00111111 数码管显示用的译码,从右到左为AG,1电平点亮If X = 1 Then D = &B

9、00000110If X = 2 Then D = &B01011011If X = 3 Then D = &B01001111If X = 4 Then D = &B01100110If X = 5 Then D = &B01101101If X = 6 Then D = &B01111101If X = 7 Then D = &B00000111If X = 8 Then D = &B01111111If X = 9 Then D = &B01100111Portd = DWait 1 延时1秒LoopEnd例三:倒计数显示(使用数码管插件、静态显示要用短路插)Config Portb =

10、 Output 选用B口作输出口Config portd = Input B口静态显示,须使D0、D1位选失效Dim Y As ByteDim B As ByteY = 11DoIf Y = 0 Then Y = 11 计数到0时从11重新计数Y = Y - 1Select Case Y 选择Y的变量值Case 0 : B = 126 译码用十进制表示,相当于二进制01111110,从右到左GACase 1 : B = 48 译码用十进制表示,相当于二进制00110000Case 2 : B = 109 译码用十进制表示,相当于二进制01101101Case 3 : B = 121 译码用十进

11、制表示,相当于二进制01111001Case 4 : B = 51 译码用十进制表示,相当于二进制00110011Case 5 : B = 91 译码用十进制表示,相当于二进制01011011Case 6 : B = 95 译码用十进制表示,相当于二进制01011111Case 7 : B = 112 译码用十进制表示,相当于二进制01110000Case 8 : B = 127 译码用十进制表示,相当于二进制01111111Case 9 : B = 115 译码用十进制表示,相当于二进制01110011Case 10 : B = 128 等于10时,点亮小数点,相当于二进制10000000E

12、nd Select 结束选择Portb = B 显示变量B的数码Waitms 1000LoopEnd例四: 099计数(数码管动态显示,不要用短路插)Config Portb = Output B口输出(按主板图接好跨线)Config Pind.1 = Output : Config Pind.0 = Output 设置位选输出脚,d .1十位,d .0个位Dim A As Byte : Dim B As ByteDim S As Byte : Dim G As ByteDim Y As ByteA = 0Portd.1 = 1 : Portd.0 = 1 关闭位选,两位数码管均不亮DoS =

13、 A / 10 除以10,计算十位数的位值,小数部分被自动省略B = S * 10 乘以10,计算十位数的值G = A B 计算个位数的位值For Y = 0 To 49 设定循环次数,显示50次If S = 0 Then Portb =126 二进制为&B01111110If S = 1 Then Portb =48 二进制为&B00110000If S = 2 Then Portb = 109 二进制为&B01101101If S = 3 Then Portb =121 二进制为&B01111001If S = 4 Then Portb = 51 二进制为&B00110011If S =

14、5 Then Portb =91 二进制为&B01011011If S = 6 Then Portb =95 二进制为&B01011111If S = 7 Then Portb=112 二进制为&B01110000If S = 8 Then Portb =127 二进制为&B01111111If S = 9 Then Portb =115 二进制为&B01110011Portd.1 = 0 十位点亮Waitms 10Portd.1 = 1 十位熄灭If G = 0 Then Portb = &B01111110If G = 1 Then Portb = &B00110000If G = 2 T

15、hen Portb = &B01101101If G = 3 Then Portb = &B01111001If G = 4 Then Portb = &B00110011If G = 5 Then Portb = &B01011011If G = 6 Then Portb = &B01011111If G = 7 Then Portb = &B01110000If G = 8 Then Portb = &B01111111If G = 9 Then Portb = &B01110011Portd.0 = 0 个位点亮Waitms 10Portd.0 = 1 个位熄灭Next FOR 50次点

16、亮循环出口A = A + 1 A变量加1计数If A 99 Then Exit Do 计数到99停止LoopEnd例五:音阶(注意相同时值,不同音的数值差异)Config pind.6 = Output 定义D.6为输出,接声音插件的放大器输入Sound Portd.6 ,500 , 2000 前、后两数的乘积决定音的时值(长短)Sound Portd.6 ,560 , 1780 后数决定音的高低,数值大频率低Sound Portd.6 ,630 , 1590 本例的8个音为1 2 3 4 5 6 7 i 时值相同。Sound Portd.6 ,670 , 1500Sound Portd.6

17、,750 , 1335Sound Portd.6 ,840 , 1190Sound Portd.6 ,945 , 1060Sound Portd.6 ,1000 , 1000End结论:1、相同时值,前后两数的乘积相等。前数影响时值,但时值还与后数有关。2、后数半音之间数值为1.0595倍,全音之间为二个1.0595倍(1.1225倍)。3、8度音正好为2倍关系。(12个1. 0595相乘等于2)例六:音阶与乐曲Config pind.6 = Output D.6为输出,接声音插件的放大器输入Dim S As Byte , F As Byte , A As Word , B As Word ,

18、 C As Word Restore Music 该命令可使数据均放在程序末尾DoRead S 读数据Read F 读数据If S = 0 Then Exit Do S数据为0时结束A = 8000 / F 通过运算得到各音的单位长度,改变被除数可调整快慢B = A * S 运算各音的实际长度C = F * 5 运算各音的音高,改变乘数可变调(该运算使数据小,少占内存)Sound Portd.6 , B , CWaitms 10LoopEndMusic: 数据放置开始位置Data 8 , 214 , 8 , 190 ,8 , 170 , 8 , 160 , 8 , 143 , 8 , 127

19、, 8 , 113 , 8 , 107 上行音阶Data 8 , 107, 8 , 113 , 8 , 127 , 8 , 143 , 8 , 160 , 8 , 170 , 8 , 190 , 8 , 214 下行音阶 Data 16 , 252 , 8 , 189 , 8 , 168 , 12 , 150 , 4 , 142 , 8 , 150 , 8 , 189 歌曲开始Data 12 , 168 , 4 , 168 , 8 , 189 , 8 , 224 , 32 , 189Data 16 , 252 , 8 , 189 , 8 , 168 , 12 , 150 , 4 , 142 ,

20、 8 , 126 , 8 , 189Data 12 , 142 , 4 , 150 , 8 , 126 , 4 , 168 , 4 , 150 , 32 , 168 , 0 , 0例七:选曲,随音乐发光Config Portb = Output B口为输出口,接发光二极管插件Config Pind.3 = Input D.3为输入,接声音插件的按钮Config pind.6 = Output D.6为输出,接声音插件的放大器输入Portd.3 = 1 D.3口接上拉电阻Dim S As Byte , F As Byte , A As Word , B As Word , C As Word ,

21、 P As Byte , E As ByteWait 2 等待选曲键入E = Pind And &B00001000 读D.3口,利用“与”运算屏蔽其它位If E = 8 Then Restore Music2 D.3口为1选第二曲If E = 0 Then Restore Music1 D.3口为0选第一曲DoRead S : Read FFor B = 0 To S 将S的值作为循环的次数Select Case F 根据音高值选择不同的数值,点亮不同数量的发光管Case 0 : P = &B00000000Case Is 101 : P = &B11111111Case 101 To 13

22、1 : P = &B11111110Case 132 To 147 : P = &B11111100Case 148 To 155 : P = &B11111000Case 156 To 175 : P = &B11110000Case 176 To 207 : P = &B11100000Case 208 To 220 : P = &B11000000Case 221 To 255 : P = &B10000000End Select 选择内容结束Portb = PWaitus 1If S = 0 Then Exit DoA = 8000 / FC = F * 5Sound Portd.6

23、, A , CNext FOR循环出口Waitms 10LoopEndMusic1:Data 16 , 252 , 8 , 189 , 8 , 168 , 12 , 150 , 4 , 142 , 8 , 150 , 8 , 189Data 12 , 168 , 4 , 168 , 8 , 189 , 8 , 224 , 32 , 189Data 16 , 252 , 8 , 189 , 8 , 168 , 12 , 150 , 4 , 142 , 8 , 126 , 8 , 189Data 12 , 142 , 4 , 150 , 8 , 126 , 4 , 168 , 4 , 150 ,

24、32 , 168 , 0 , 0Music2:Data 16 , 254 , 12 , 214 , 4 , 190 , 12 , 160 , 4 , 143 , 4 , 190 , 4 , 160 , 8 , 214Data 12 , 107 , 4 , 80 , 4 , 95 , 4 , 107 , 4 , 127 , 4 , 107 , 32 , 143Data 12 , 143 , 4 , 127 , 8 , 170 , 8 , 190 , 12 , 214 , 4 , 190 , 8 , 160 , 8 , 143Data 8 , 254 , 8 , 160 , 4 , 190 , 4

25、 , 214 , 4 , 190 , 4 , 160 , 32 , 214 , 0 , 0例八:LCD显示屏应用 0999计数Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portd.5, Db7 = Portd.6Config Lcdpin = Pin , E = Portd.0 , Rs = Portd.1Config Lcd = 16 * 2Dim A As WordFor A = 0 To 999Cls 清屏幕,光标回到第一行首Locate 2 , 5 字符定位在第2行第5位开始Lcd TO ; A ; # 字符

26、串用引号,多个字符或变量中间用分号隔开Waitms 200Next AEnd例九:LCD时钟Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portd.5, Db7 = Portd.6Config Lcdpin = Pin , E = Portd.0 , Rs = Portd.1Config Lcd = 16 * 2Dim S As Byte , M As Byte , H As Byte 定义秒、分、时的变量名ClsCursor Off 光标关闭(不显示)For H = 0 To 23Locate 1 , 5If H 1

27、0 Then Lcd 0Lcd H ; :For M = 0 To 59Locate 1 , 8If M 10 Then Lcd 0Lcd M ; :For S = 00 To 59Locate 1 , 11If S 10 Then Lcd 0Lcd SWaitms 998 调整延时值可使计时准确Next S :Next M :Next HEnd例十:LCD显示屏应用: 造字、移动显示Config Lcdpin = Pin , E = Portd.0 , Rs = Portd.1 , Db4 = Portd.3Config Lcdpin = Pin , Db5 = Portd.4 , Db6

28、= Portd.5 , Db7 = Portd.6Config Lcd = 16 * 2Deflcdchar 0 , 2 , 2 , 3 , 2 , 2 , 2 , 2 , 31 造字命令和字符数据(“上海”二字)Deflcdchar 1 , 2 , 1 , 18 , 1 , 1 , 2 , 2 , 20 可自造字共8个,每个5 X 8 点阵,Deflcdchar 2 , 8 , 31 , 30 , 26 , 31 , 22 , 31 , 2 在工具栏(TOOLS)内有造字工具。ClsDoLocate 1 , 3 Lcd Hello! LCD AT90S2313 Shanghai 显示字符串L

29、cd Chr(0) ; Chr(1) ; Chr(2) 显示上海二字Shiftlcd Left 左移字符Waitms 100LoopEnd补充程序:碰撞Config Portb = OutputDim A As ByteDim B As ByteA = &B00000001B = &B10000000DoPortb = A Or B 利用“或”运算将两数叠加 Waitms 300Rotate A , Left , 1Rotate B , Right , 1LoopEnd打乒乓Config Portb = OutputDim A As ByteDim B As ByteA = &B0000000

30、1DoFor B = 1 To 7Portb = AWaitms 100Rotate A , Left , 1Next BFor B = 1 To 7Portb = AWaitms 100Rotate A , Right , 1Next BLoopEnd简谱音显示与选曲 (选择演奏三段音乐,并显示1-7七个音符)Config Portb = Output B口插数码管插件,静态显示要用短路插Config Pind.6 = Output D6口,音乐输出口Config Pind.0 = Input 使数码管位选失效Config Pind.1 = Input 使数码管位选失效Config Pind

31、.3 = Input 接按钮Config Pind.4 = Input 接按钮Config Pind.5 = Input 接按钮Portd.3 = 1 接上拉电阻Portd.4 = 1 接上拉电阻Portd.5 = 1 接上拉电阻Dim S As Byte , F As ByteDim A As Word , B As Word , C As WordDim P As Byte , E As ByteDo 演奏完毕回到等待选曲状态DoWaitms 200E = Pind And &B00111000 按钮检测Loop Until E 56 按钮未按下为56,56时有按钮按下,退出循环If E

32、= 48 Then Restore Music1 根据数值确定按下的按钮,选出乐曲If E = 40 Then Restore Music2If E = 24 Then Restore Music3DoRead S : Read FSelect Case FCase 0 : P = &B00000000 F=0,不显示Case 160 : P = &B00110000 根据F值,选择简谱各音的数码显示笔划译码Case 80 : P = &B00110000Case 143 : P = &B01101101Case 127 : P = &B01111001Case 254 : P = &B111

33、11001 低音3,左边最高位为1,小数点亮Case 113 To 120 : P = &B00110011 显示4,113为#4音数据,120为4音数据Case 240 : P = &B10110011Case 107 : P = &B01011011Case 214 : P = &B11011011Case 95 : P = &B01011111Case 190 : P = &B11011111Case 85 : P = &B01110000Case 170 : P = &B11110000End SelectPortb = PWaitms 20If S = 0 Then Exit DoA

34、 = 8000 / FB = A * SC = F * 5Sound Portd.6 , B , CLoopWaitms 200LoopEndMusic1: 音阶数据Data 8 , 160 , 8 , 143 , 8 , 127 , 8 , 120 , 8 , 107 , 8 , 95 , 8 , 85 , 8 , 80Data 8 , 80 , 8 , 85 , 8 , 95 , 8 , 107 , 8 , 120 , 8 , 127 , 8 , 143 , 8 , 160Data 8 , 160 , 8 , 127 , 8 , 107 , 8 , 80 , 8 , 107 , 8 , 1

35、27 , 8 , 160 , 0 , 0Music2: 同一首歌歌谱数据Data 16 , 214 , 8 , 160 , 8 , 143 , 12 , 127 , 4 , 120 , 8 , 127 , 8 , 160Data 12 , 143 , 4 , 143 , 8 , 160 , 8 , 190 , 32 , 160Data 16 , 214 , 8 , 160 , 8 , 143 , 12 , 127 , 4 , 120 , 8 , 107 , 8 , 160Data 12 , 120 , 4 , 127 , 8 , 107 , 4 , 143 , 4 , 127 , 32 , 1

36、43Data 16 , 127 , 8 , 107 , 8 , 80 , 12 , 85 , 4 , 95 , 16 , 95Data 8 , 107 , 4 , 107 , 4 , 95 , 8 , 85 , 4 , 95 , 4 , 107 , 32 , 127Data 12 , 120 , 4 , 120 , 8 , 107 , 8 , 95 , 8 , 107 , 4 , 120 , 4 , 127 , 16 , 143Data 8 , 170 , 4 , 170 , 4 , 190 , 8 , 214 , 8 , 190 , 32 , 160Data 16 , 80 , 16 , 9

37、5 , 12 , 120 , 4 , 107 , 16 , 95Data 12 , 85 , 4 , 85 , 8 , 85 , 4 , 95 , 4 , 107 , 32 , 127Data 16 , 80 , 16 , 95 , 12 , 120 , 4 , 107 , 16 , 95Data 8 , 143 , 8 , 143 , 8 , 95 , 4 , 120 , 4 , 127 , 32 , 143Data 16 , 214 , 8 , 160 , 8 , 143 , 12 , 127 , 4 , 120 , 8 , 127 , 8 , 160Data 12 , 143 , 4 ,

38、 143 , 8 , 143 , 4 , 143 , 4 , 160 , 8 , 190 , 24 , 190Data 16 , 170 , 8 , 170 , 8 , 190 , 8 , 214 , 8 , 95 , 8 , 107 , 4 , 143 , 4 , 143Data 12 , 120 , 4 , 120 , 8 , 127 , 4 , 127 , 4 , 143 , 32 , 160 , 0 , 0Music3: 梁祝歌谱数据Data 8 , 107 , 8 , 127 , 8 , 143 , 40 , 160 , 8 , 143 , 8 , 170 , 8 , 190 , 4

39、0 , 214Data 8 , 85 , 8 , 95 , 8 , 85 , 12 , 107 , 4 , 95 , 8 , 113 , 8 , 127Data 4 , 143 , 4 , 127 , 4 , 120 , 4 , 127 , 12 , 107 , 4 , 127Data 4 , 143 , 4 , 127 , 4 , 107 , 4 , 143 , 4 , 127 , 4 , 120 , 4 , 127 , 4 , 143Data 24 , 160 , 4 , 127 , 4 , 107 , 8 , 170 , 8 , 143 , 8 , 190 , 8 , 160 , 32

40、, 214Data 16 , 254 , 12 , 214 , 4 , 190 , 12 , 160 , 4 , 143 , 4 , 190 , 4 , 160 , 8 , 214Data 12 , 107 , 4 , 80 , 4 , 95 , 4 , 107 , 4 , 127 , 4 , 107 , 32 , 143Data 12 , 143 , 4 , 127 , 8 , 170 , 8 , 190 , 12 , 214 , 4 , 190 , 8 , 160 , 8 , 143Data 8 , 254 , 8 , 160 , 4 , 190 , 4 , 214 , 4 , 190 ,

41、 4 , 160 , 32 , 214Data 12 , 127 , 4 , 107 , 8 , 170 , 8 , 143 , 4 , 190 , 4 , 160 , 16 , 214 , 4 , 190 , 4 , 214Data 8 , 254 , 4 , 214 , 4 , 254 , 6 , 214 , 2 , 190 , 4 , 170 , 4 , 143 , 24 , 190 , 4 , 214 , 4 , 190Data 12 , 160 , 4 , 143 , 8 , 107 , 8 , 127 , 8 , 143 , 4 , 127 , 4 , 143 , 6 , 160 , 2 , 143 , 4 , 190 , 4 , 214 , 16 , 254 , 16 , 160Data 6 , 190 , 2 , 160 , 4 , 190 , 4 , 214 , 4 , 254 , 4 , 214 , 4 , 190 , 4 , 160 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1