已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中小学单片机仿真实验室中小学单片机仿真实验室配套使用说明1.使用软件本程序使用BASIC语言编写,采用单片机开发软件BASCOM-AVR开发,PROTEUS ISIS软件制作仿真电路图,能够运行于PROTEUS ISIS软件仿真平台上。在我们的学习过程中,我们将用到2个软件:BASCOM-AVR与PROTEUS ISIS。下面让我们来认识一下这两个软件。1. 1 BASCOM-AVRBASCOMAVR是MCS公司开发的以BASIC高级程序设计语言为平台的AVR单片机开发软件,它为我们学习、使用AVR单片机提供了简洁方便、功能强大的手段。该软件具有可视化图形界面,是与VB/QB高度兼容的结构化BASIC语言,简要清晰,易于初学者理解、掌握。除了有专门为AVR单片机串行和并行接口、外围器件开发的语句,另外还扩充了许多通用的单片机外部设备的专用语句(键盘、LCD显示器),使我们调用各种硬件资源更加得心应手。程序经过编译之后,进入软件仿真窗口作仿真运行,可以非常清楚地观察程序运行反应,从实物图形化的硬件仿真平台上,可以直观地进行实验操作,使我们学习和开发单片机更加容易、方便,更有乐趣,许多设计在电脑仿真中就可得知结果。程序编译产生的hex文件,可以使用廉价的ISP下载电缆烧录到AVR单片机的FLASH程序存储器。BASIC语言有许多优点:1.接近人类语言习惯,易学好用;2.语句功能强,通用性好,易于移植;3.程序的可读性和可维护性好。BASCOM-AVR提供了丰富的数据类型,大量面向通用I/O和专用外设的操作语句,结构化、模块化的程序设计语句,为了增强单片机系统的实时性,还支持硬件中断服务以及汇编语言混合编程。BASCOM-AVR具有程序设计简单易学、用简单的语句可实现较复杂的功能等特点。其开发平台使用简洁方便,并具有实物图形化的仿真平台,可以直观地仿真出程序的运行结果, 是AVR单片机初学者快速入门的最佳工具。1.2 PROTEUS ISISProteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真,分析各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真,数字电路仿真,单片机及其外围电路组成的系统的仿真,RS232动态仿真,I2C调试器,SPI调试器,键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列,8051系列,AVR系列,PIC12系列,PIC16系列,PIC18系列,Z80系列,HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速,单步,设置断点等调试功能,同时可以观察各个变量,寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。2. 程序介绍在程序包中,命名为“程序”,后缀名为.bas的是程序代码,可用BASCOM-AVR打开。程序代码在经过软件仿真后将会生成包括后缀名为.HEX的多个文件。名为“仿真电路图”,后缀名为.dsn的是PROTEUS ISIS中的仿真文件,可用PROTEUS打开,并点击界面下方的按钮开始实物仿真。下面是主程序的流程图:第 7 页 共 7 页开 始设置与初始化键盘输入选择执行程序输入1?程序1:欢迎程序输入2?程序2:广告灯NoYes输入6?程序6:简易游戏机NoNo结束键盘检测中断服务子程序是否退出?Yes继续执行程序No开始执行程序后,LCD显示器上将会显示“Input Sub Number”。可通过在键盘上输入程序号进入对应程序。1号:欢迎程序2号:广告灯3号:计时器4号:音乐播放机5号:简易时钟6号:简易游戏机在图形编辑区的右下角,喇叭旁边有一个单独的按键,此为暂停按钮。当程序运行,需要退出时,按下这个按钮,显示器上会显示“Quit? y:1 n:0”。用键盘选择,输入“0”则继续运行当前程序,输入“1”将返回选择子程序步骤。下面将介绍学习程序内含有的6个小程序。2.1 欢迎程序原理:利用BASCOM-AVR 的专用语句、特殊点阵设计工具,在LCD 液晶显示器上显示字符和特殊字符,并通过不断刷新内容来实现动画效果。目的:在LCD显示器上显示欢迎动画。程序:Sub P1:Deflcdchar 1 , 238 , 255 , 252 , 248 , 252 , 255 , 238 , 224Deflcdchar 2 , 238 , 255 , 255 , 255 , 255 , 255 , 238 , 224ClsDoHomeLcd Welcome!Waitms 100HomeLcd Chr(1)HomeLcd Chr(2)HomeWaitms 40Lcd ; Chr(1)HomeWaitms 40Lcd ; Chr(2)HomeWaitms 40Lcd ; Chr(1)HomeWaitms 40Lcd ; Chr(2)HomeWaitms 40Lcd ; Chr(1)HomeWaitms 40Lcd ; Chr(2)HomeWaitms 40Lcd ; Chr(1)HomeWaitms 40Lcd ; Chr(2)HomeWaitms 40Lcd ; Chr(1);HomeWaitms 40Lcd ; Chr(2);HomeWaitms 40Lcd ; Chr(1);HomeWaitms 40Lcd ; Chr(2);HomeWaitms 40Lcd ; Chr(1);HomeWaitms 40Lcd ; Chr(2);HomeWaitms 40Lcd Waitms 100LoopEnd Sub 2.2 广告灯原理:ATmega16有Porta、Portb、Portc、Portd四个口共32根引脚,每个引脚都可以单独定义为输入或输入使用。本程序将利用AVR 的I/O 口控制LED 发光二极管,当AVR的I/O 口输出为低电平“0”时,点亮LED;发光二极管输出为高电平“1”时,LED发光二极管熄灭。目的:运行程序,LCD显示器显示“Input Light No.”,使用键盘输入广告灯样式号开始运行广告灯。(程序共附有4种广告灯样式)程序:Sub P2:Local A As Byte , B As Byte , Ln As Byte local命令表示定义的是局部变量;定义全局变量应用dim命令Config Portc = OutputLight1:ClsLcd Input Light No.Light2: Ln = Getkbd() If Ln 4 Or Ln = 0 Then Goto Light2 Locate 1 , 16 Lcd Ln Locate 2 , 1 Lcd Press 0 to Stop Select Case Ln Case 1 A = &HFE Case 2 A = &H01 Case 3 A = &HAA Case 4 A = &HF0 End SelectDo Portc = A Rotate A , Right , 1 Waitms 100 Ln = Getkbd() If Ln = 0 Then Goto Light1LoopEnd Sub2.3 计时器原理:当计时启动时开始计时,每过1秒,秒钟变量加1,满60秒则清零进位。目的:当按下“1”键时开始计时,按下“2”键时停止计时。程序:Sub P3:Local H As Byte , M As Byte , S As Byte , I As ByteH = 0 : M = 0 : S = 0Cursor Off NoblinkClsLcd Press 1 to StartJishi: I = Getkbd() If I 1 Then Goto Jishi Cls Lcd Press 2 to Stop Locate 2 , 1 Lcd 00:00:00 Do S1: S = S + 1 Waitms 10 Locate 2 , 0 If S = 60 Then S = 0 : M = M + 1 Else S = S : M = M End If If M = 60 Then M = 0 : H = H + 1 Else M = M : H = H End If If S 9 Then Locate 2 , 7 : Lcd S Else Locate 2 , 7 : Lcd 0 ; S End If If M 9 Then Locate 2 , 4 : Lcd M Else Locate 2 , 4 : Lcd 0 ; M End If If H 9 Then Locate 2 , 1 : Lcd H Else Locate 2 , 1 : Lcd 0 ; H End If I = Getkbd() If I = 2 Then Exit Do LoopEnd Sub2.4 音乐播放机原理:利用BASCOM-AVR 的SOUND 语句可以很方便的产生一定长度和频率的脉冲信号,经I/O 口输出一定长度和频率的脉冲信号,再经过信号放大,由喇叭放出乐曲声。目的:从喇叭放出事先编辑好的乐曲声(由频率不同的蜂鸣声组成)。程序:Sub P4:Local S As Integer , F As IntegerLocal A As ByteClsLcd Input:music1/2:Music:A = Getkbd()If A 2 Then Goto MusicPrint ALcd ADoSelect Case ACase 1:Locate 2 , 4Lcd music 1While A = 1Restore Music_1DoRead S : Read FIf S = 0 And F = 0 Then Exit DoSound Portd.7 , S , FWaitms 50LoopWendWaitms 500Case 2:Locate 2 , 4Lcd music 2While A = 2Restore Music_2DoRead S : Read FIf S = 0 And F = 0 Then Exit DoSound Portd.7 , S , FWaitms 50LoopWendWaitms 500End SelectLoopMusic_1:Data 100% , 956% , 100% , 865% , 100% , 759% , 100% , 956%Data 100% , 956% , 100% , 865% , 100% , 759% , 100% , 956%Data 100% , 759% , 100% , 717% , 200% , 638%Data 100% , 759% , 100% , 717% , 200% , 638%Data 50% , 638% , 50% , 568% , 50% , 638% , 50% , 717%Data 100% , 759% , 100% , 956%Data 50% , 638% , 50% , 568% , 50% , 638% , 50% , 717%Data 100% , 759% , 100% , 956%Data 100% , 865% , 100% , 1276% , 200% , 956%Data 100% , 865% , 100% , 1276% , 200% , 956% , 0% , 0%Music_2:Data 75% , 1276% , 25% , 1276% , 100% , 1137% , 100% , 1276% , 100% , 956%Data 200% , 1012% , 75% , 1276% , 25% , 1276% , 100% , 1137%Data 100% , 1276% , 100% , 865% , 200% , 956%Data 75% , 1276% , 25% , 1276% , 100% , 638% , 100% , 759% , 100% , 956%Data 100% , 1012% , 100% , 1136%Data 75% , 717% , 25% , 717% , 100% , 759% , 100% , 956%Data 100% , 865% , 200% , 956% , 0% , 0%End Sub2.5 简易时钟原理:AVR单片机内有定时器/计数器(可写:T/CTimer/Counter),其本质是一个“计数器”,如果计数脉冲来自单片机的晶振频率(可以预置分频),就是定时器;如果计数脉冲来自单片机的计数输入端子,那就成了计数器。还可利用特殊点阵设计工具来显示中文字符与特殊符号。目的:使用计数器制作简易电子时钟,当按下“0”键时,当前时间增加1分钟;当按下“1”键时,当前时间增加1小时。程序;Sub P3:Local A As Byte : A = 0 Local B As Byte : B = 0Local C As Byte : C = 0Local D As Byte : D = 0Local E As Byte : E = 0Local X As ByteDeflcdchar 1 , 32 , 31 , 4 , 4 , 6 , 5 , 4 , 4 自定义中文字符下Deflcdchar 0 , 4 , 4 , 4 , 6 , 4 , 4 , 4 , 31 自定义中文字符上Deflcdchar 2 , 8 , 15 , 20 , 4 , 31 , 4 , 4 , 4 自定义中文字符午Deflcdchar 4 , 4 , 10 , 17 , 4 , 31 , 2 , 4 , 8 自定义中文字符今Deflcdchar 5 , 31 , 4 , 31 , 4 , 12 , 10 , 18 , 17 自定义中文字符天Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 ClsLcd input:On Timer1 S Do Dh: X = Getkbd() If X = 16 Then Goto Dh X = X + 1 Select Case X Case 1 B = B + 1 Waitms 500 If B = 60 Then B = 0 Case 2 C = C + 1 Waitms 500 If C = 24 Then C = 0 End SelectLoopS: A = A + 1Timer1 = 58336 Waitms 50 If A = 60 Then A = 0 B = B + 1 If B = 60 Then B = 0 C = C + 1 If C = 24 Then C = 0 End If End If If C 12 Then E = C - 12 : Locate 2 , 4 : Lcd Chr(1) ; Chr(2) Else E = C : Locate 2 , 4 : Lcd Chr(0) ; Chr(2) End If D = E : Locate 2 , 7 If D 10 Then Lcd 0 ; D Else Lcd D End If Lcd : : D = B : Locate 2 , 10 If D 10 Then Lcd 0 ; D Else Lcd D End If Lcd : : D = A : Locate 2 , 13 If D 0 Then Goto Xh2 Cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合肥市中医院十二指肠镜技术考核
- 设施农业项目建设方案
- 连云港市中医院数据质量管理考核
- 福州市中医院荧光腹腔镜技术应用考核
- 山区光伏电站绿色施工方案
- 水库水质保护与生态恢复联合方案
- 青岛市人民医院医务人员执业资格注册管理考核试题
- 济南市中医院护理教学资格认证
- 台州市人民医院透析充分性评价与方案调整考核
- 淮安市中医院宫腔镜宫内异物取出术技能考核
- T-EJCCCSE 197-2025 系统窗施工技术规范
- 2025年贵州综合评标专家库评标专家考试综合能力测试题及答案二
- 山西农行笔试题目及答案
- 工厂玩手机管理办法规定
- 2025年福建省国有资产管理有限公司人员招聘笔试备考试题及答案
- 《供配电技术及设备》课件-第四章 低压电气元件及成套设备
- 疼痛护理中医课件
- 《财政支出效益分析》课件
- 骨质疏松症的治疗进展与新型药物研究
- 重庆市交通建设工程危险性较大分部分项工程安全管理实施细则
- 体检报告管理制度
评论
0/150
提交评论