微机原理及应用课程设计(常用版)_第1页
微机原理及应用课程设计(常用版)_第2页
微机原理及应用课程设计(常用版)_第3页
微机原理及应用课程设计(常用版)_第4页
微机原理及应用课程设计(常用版)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理及应用课程设计(常用版)(可以直接使用,可编辑完整版资料,欢迎下载)

微机原理及应用课程设计(常用版)(可以直接使用,可编辑完整版资料,欢迎下载)课程设计课程名称微机原理及应用课程设计题目名称计算器(1)学生学院专业班级学号学生姓名指导教师2010年1月6

目录TOC\o"1-1"\h\z\u一、 课程设计的目的 -3-二、 课程设计应完成的工作 -3-三、 课程设计进程安排 -3-四、 应收集的资料及主要参考文献 -3-五、实训指导书 -4-六、 显示2F9E(XLAT) -5-七、 键盘程序 -6-八、 键盘控制显示器 -9-九、 计算器 -12-十、 实验心得体会 -17-广东工业大学课程设计任务书

题目名称学生学院专业班级姓名学号课程设计的目的1、巩固和加深对《微机原理及应用》课程内容的认识和理解,提高应用水平;2、掌握汇编语言程序的编程方法;3、熟悉键盘控制和七段数码管的使用。课程设计应完成的工作课程设计完成后,交课程设计报告一份(内容包括:系统设计说明、系统原理图、程序设计流程图、源程序),按规定格式书写。课程设计进程安排序号设计各阶段内容地点起点日期1搜集、整理和研究资料图书馆4日2编制调试程序,实现要求的功能实2-2045-6日3书写课程设计报告书宿舍7日应收集的资料及主要参考文献[1]许立倖等编.微型计算机原理及应用.北京:机械工业出版社,2003[2]许立倖等编.微型计算机原理及应用——习题解答、实验指导及课程设计.北京:机械工业出版社,2004发出任务书日期:2021年1月4日指导教师签名:计划完成日期:2021年1月13日基层教学单位责任人签章:主管院长签章:3-编程在四位LED数码管上显示2F9E(应用XLAT).流程图:开始开始初始化读入输出字符片选显示器校对表首地址并输出延时结束程序:STACK SEGMENT STACK DW64DUP(?)STACK ENDSDATASEGMENT VAR1DB02H,0FH,09H,0EH VAR2DB0F7H,0FBH,0FDH,0FEHTABLEDB0FCH,60H,0DAH,0F2H,066H,0B6H,0BEH,0E4H,0FEH,0F6H,DB0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV AL,82H OUT 63H,ALA1: MOV SI,OFFSETVAR1 MOV DI,OFFSETVAR2 MOV BX,OFFSETTABLE MOV CX,04HA2: MOV AL,[SI]XLATOUT 62H,ALMOV AL,[DI]OUT 60H,ALCALL TIMEINC SIINC DILOOP A2JMP A1TIME: PUSH AXPUSH CXMOV CX,0040HA4: MOV AX,0005HA5: DEC AXJNZ A5LOOP A4POP CXPOP AXRETCODE ENDSEND START键盘程序97EDBA21要求:实现键盘左移显示。

流程图:开始开始8255初始化有无压键显示扫描保存数据有无放键显示扫描NYNY程序:STACKSEGMENTDW64DUP(?)STACKSENDSDATASEGMENTTABLE1DB0F6H,0E4H,9EH,7AH,3EHDB0EEH,0DAH,60HTABLE2DB0F7H,0FBH,0FDH,0FEHVARDB0FCH,0FCH,0FCH,0FCHDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAL,82HOUT63H,ALSTT:MOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZKEYYCALLDISPJMPSTTKEYY:CALLTIMEINAL,61HANDAL,18HCMPAL,18HJNZKEY_9JMPSTTKEY_9:MOVAL,0F7HOUT60H,ALINAL,61HTESTAL,10HJNZKEY_BMOVDL,00HCALLKEY_FUJMPSTTKKEY_B:TESTAL,08HJNZKEY_7MOVDL,04HCALLKEY_FUJMPSTTKKEY_7:MOVAL,0FBHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_AMOVDL,01HCALLKEY_FUJMPSTTKKEY_A:TESTAL,08HJNZKEY_EMOVDL,05HCALLKEY_FUJMPSTTKKEY_E:MOVAL,0FDHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_2MOVDL,02HCALLKEY_FUJMPSTTKKEY_2:TESTAL,08HJNZKEY_DMOVDL,06HCALLKEY_FUJMPSTTKKEY_D:MOVAL,0FEHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_1MOVDL,03HCALLKEY_FUJMPSTTKKEY_1:TESTAL,08HJNZKEY_11MOVDL,07HCALLKEY_FUKEY_11:JMPSTTKKEY_FU:CALLLPMOVAL,DLMOVBX,OFFSETTABLE1XLATTABLE1MOV[DI],ALCALLDISPRETLP:MOVCX,0003HMOVDI,OFFSETVARLP1:MOVAL,[DI+1]MOV[DI],ALINCDILOOPLP1RETDISP:LEASI,TABLE2LEADI,VARMOVCX,0004HDIR:MOVAL,[SI]OUT60H,ALMOVAL,[DI]OUT62H,ALCALLTIMEINCSIINCDILOOPDIRRETTIME:PUSHAXPUSHCXMOVCX,0040HTIME1:MOVAX,0010HTIME2:DECAXJNZTIME2LOOPTIME1POPCXPOPAXRETSTTK:CALLDISPMOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZSTTKJMPSTTCODEENDSENDSTART键盘控制显示器显示器键盘12清零要求:1、按清零键,显示器四位显示零;2、按1号键显示器自右向左移动循环显示79B543213、按2号键显示器自下向上移动循环显示23CF程序流程图:开始开始8255初始化有无压键判断什么键?2键?清零键?执行2号键子程序执行清零子程序执行1号键子程序1键?YYYYNNN显示程序判断有没按键?NY程序:STACKSEGMENTSTACKDW64DUP(?)STACKENDSDATASEGMENTVARDB00H,00H,00H,00HVAR2DB0F7H,0FBH,0FDH,0FEHTABLE3DB10H,10H,10H,08H,18HDB30H,18H,0AH,1H,32H,18H,0EHDB5AH,72H,1CH,0EH,0DAH,0F2HDB9CH,8EHTABLE1DB60H,0DAH,0F2H,66HDB0B6H,3EH,0F6H,0E4HTABLE4DB0FCH,0FCH,0FCH,0FCHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAL,82HOUT63H,ALSTT:MOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZKEYYJMPSTTKEYY:CALLTIMEINAL,61HANDAL,18HCMPAL,18HJNZKEY_20JMPSTTKEY_20:MOVAL,0F7HOUT60H,ALINAL,61HTESTAL,08HJNZKEY_01CALLSTTKJMPDIS2KEY_01:MOVAL,0FBHOUT60H,ALINAL,61HTESTAL,08HJNZKEY_10CALLSTTKJMPDIS0KEY_10:MOVAL,0FEHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_11CALLSTTKJMPDIS1KEY_11:JMPSTTSTTK:MOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZSTTKRETDIS2:LEASI,TABLE3MOVBX,05HA3:LEADI,VARMOVCX,04HA11:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPA11CALLLDISJMPSTT2A4:DECBXJNZA3JMPDIS2STT2:PUSHAXMOVAL,00HOUT62H,ALMOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZSTT3POPAXJMPA4STT3:CALLTIMEINAL,61HANDAL,18HCMPAL,18HJNZA10POPAXJMPA4A10:MOVAL,0FBHOUT60H,ALINAL,61HTESTAL,08HJNZKEY_1110CALLSTTKJMPDIS0KEY_1110:MOVAL,0FEHOUT60H,ALINAL,61HTESTAL,10HJNZA4CALLSTTKJMPDIS1DIS0:LEASI,TABLE4LEADI,VARMOVCX,04HA5:MOVAL,[SI]MOV[DI],ALINCDIINCSILOOPA5CALLDISJMPSTT0STT0:MOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZSTT1JMPDIS0STT3:CALLTIMEINAL,61HANDAL,18HCMPAL,18HJNZA13JMPDIS0A13:MOVAL,0F7HOUT60H,ALINAL,61HTESTAL,08HJNZKEY_111CALLSTTKJMPDIS2KEY_111:MOVAL,0FEHOUT60H,ALINAL,61HTESTAL,10HJNZDIS0CALLSTTKJMPDIS1DIS1:LEASI,TABLE1MOVBX,02HA8:LEADI,VARMOVCX,04HA7:MOVAL,[SI]MOV[DI],ALINCSICALLLDISJMPSTT4A9:CALLLPLOOPA7DECBXJNZA8JMPDIS1STT4:MOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZSTT5JMPA9STT5:CALLTIMEINAL,61HANDAL,18HCMPAL,18HJNZA12JMPA9A12:MOVAL,0F7HOUT60H,ALINAL,61HTESTAL,08HJNZKEY_231CALLSTTKJMPDIS2KEY_231:MOVAL,0FBHOUT60H,ALINAL,61HTESTAL,08HJNZA9CALLSTTKJMPDIS0LP:PUSHDIPUSHSIPUSHAXPUSHCXLEASI,VARMOVAL,[SI+2]MOV[SI+3],ALMOVAL,[SI+1]MOV[SI+2],ALMOVAL,[SI]MOV[SI+1],ALPOPCXPOPAXPOPSIPOPDIRETDIS:PUSHDIPUSHSIPUSHAXPUSHCXLEASI,VARLEADI,VAR2MOVCX,0004HDIR:MOVAL,00HOUT62H,ALMOVAL,[DI]OUT60H,ALMOVAL,[SI]OUT62H,ALCALLTIMEINCSIINCDILOOPDIRPOPCXPOPAXPOPSIPOPDIRETTIME:PUSHAXPUSHCXMOVCX,0040HTIME1:MOVAX,0010HTIME2:DECAXJNZTIME2LOOPTIME1POPCXPOPAXRETLDIS:PUSHCXLAP1:MOVCX,0AHCALLDISLOOPLAP1POPCXRETCODEENDSENDSTART实现计算器:(a)定义键盘按键,5个位数字键:A,E,6,8,4;3个功能键:加号+,除号÷,等号=;(b)可进行三位16进制加法运算;(c)可进行两位16进制除法运算。流程图:开始开始8255初始化有无压键显示扫描是数字键?有标志?加号?除号?设加标志设除标志清零显示器,清标志位保存数据放键?显示扫描清零显示器进行加、乘运算,存结果等号?YYYYYYYNNNNNN程序:DATASEGMENTVAR1DB0F7H,0FBH,0FDH,0FEHVAR2DB00H,00H,00H,00HVAR3DB00H,00H,00H,00HVAR4DB00H,00HTABLE1DB0FCH,60H,0DAH,0F2H,DB066H,0B6H,0BEH,0E4H,0FEH,0F6HDB0EEH,3EH,9CH,7AH,9EH,8EHDATAENDSSTACKSEGMENTDW64DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAL,82HOUT63H,ALMOVBX,0000HSTT:MOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZKEYABCCALLDISPJMPSTTKEYABC:CALLTIMEINAL,61HANDAL,18HCMPAL,18HJNZKEY_AJMPSTT;**************************KEY_A:MOVAL,0F7HOUT60H,ALINAL,61HTESTAL,10HJNZKEY_4CALLKEYAJMPSTTKKEY_4:TESTAL,08HJNZKEY_ECALLKEY4JMPSTTKKEY_E:MOVAL,0FBHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_6CALLKEYEJMPSTTKKEY_6:TESTAL,08HJNZKEY_ADDCALLKEY6JMPSTTKKEY_ADD:MOVAL,0FDHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_8CALLKEYADDJMPSTTKKEY_8:TESTAL,08HJNZKEY_DIVCALLKEY8JMPSTTKKEY_DIV:MOVAL,0FEHOUT60H,ALINAL,61HTESTAL,10HJNZKEY_EQUMOVDH,00HCALLKEYDIVJMPSTTKKEY_EQU:TESTAL,08HJNZKEY_11CMPDH,01HJZCLEARACALLKEYEQUJMPSTTKKEY_11:JMPSTT;***********************CLEARA:MOVSI,OFFSETVAR2;MOVDI,OFFSETVAR3MOVCX,04HCLEAR2:MOVAL,00HMOV[SI],ALMOVAL,00HMOV[DI],ALINCSIINCDILOOPCLEAR2MOVBH,00HMOVSI,OFFSETVAR4MOVCX,02HLOOP1:MOVAL,00HMOV[SI],ALINCSILOOPLOOP1MOVDH,00HJMPSTT;***********************KEYA:CMPBH,00H;数字键处理程序JZKEYA_1CALLCLEARKEYA_1:CALLLP1MOVAL,0EEHMOV[SI],ALMOVAL,0AHMOV[DI],ALCALLDISPRETKEY4:CMPBH,00HJZKEY4_1CALLCLEARKEY4_1:CALLLP1MOVAL,66HMOV[SI],ALMOVAL,04HMOV[DI],ALCALLDISPRETKEYE:CMPBH,00HJZKEYE_1CALLCLEARKEYE_1:CALLLP1MOVAL,9EHMOV[SI],ALMOVAL,0EHMOV[DI],ALCALLDISPRETKEY6:CMPBH,00HJZKEY6_1CALLCLEARKEY6_1:CALLLP1MOVAL,0BEHMOV[SI],ALMOVAL,06HMOV[DI],ALCALLDISPRETKEY8:CMPBH,00HJZKEY8_1CALLCLEARKEY8_1:CALLLP1MOVAL,0FEHMOV[SI],ALMOVAL,08HMOV[DI],ALCALLDISPRET;**********************KEYADD:CMPBH,00H;符号键处理程序JNZKEYADD_1CALLLP3KEYADD_1:MOVBX,0101HRETKEYDIV:CMPBH,00HJNZKEYDIV_1CALLLP3KEYDIV_1:MOVBX,0102HRET;************************KEYEQU:MOVBH,01H;等于号处理程序CMPBL,01HJZK1CMPBL,02HJZK2STTE:RETK1:CALLADD1MOVDH,01HJMPSTTEK2:CALLDIV1MOVDH,01HJMPSTTE;************************CLEAR:MOVSI,OFFSETVAR2;数据清零子程序MOVDI,OFFSETVAR3MOVCX,04HCLEAR1:MOVAL,00HMOV[SI],ALMOVAL,00HMOV[DI],ALINCSIINCDILOOPCLEAR1MOVBH,00HRET;*******************ADD1:MOVDI,OFFSETVAR4MOVSI,OFFSETVAR3MOVAL,[SI]SHLAL,4ORAL,[SI+1]MOVAH,ALMOVDH,[DI]INCDIINCSIINCSIMOVAL,[SI]SHLAL,4ORAL,[SI+1]MOVDL,[DI]ADDAX,DXDECDIMOV[DI],AHMOV[DI+1],ALCALLCHANGECALLDISPRETDIV1:MOVDI,OFFSETVAR4MOVSI,OFFSETVAR3MOVCL,[SI]SHLCL,4ORCL,[SI+1]MOVCH,CLMOVAH,[DI]INCDIINCSIINCSIMOVCL,[SI]SHLCL,4ORCL,[SI+1]MOVAL,[DI]XORDX,DXCMPAX.CX JBELPP2 JMPLPP1LPP2:MOVDX,00H JMPLPP3LPP1:SUBAX,CX INCDX CMPAX,CX JAELPP1LPP3:MOVAX,DXDECDIMOV[DI],AHMOV[DI+1],ALCALLCHANGECALLDISPRET;*********************LP1:MOVCX,0003H;保存数据,保存显示缓存,与数据缓存 MOVSI,OFFSETVAR2MOVDI,OFFSETVAR3LP2:MOVAL,[SI+1]MOV[SI],ALMOVAL,[DI+1] MOV[DI],AL INCSI INCDI LOOPLP2 RET;**********************LP3:MOVCX,0002HMOVSI,OFFSETVAR3MOVDI,OFFSETVAR4LP4:MOVAL,[SI]SHLAL,4ORAL,[SI+1]MOV[DI],ALINCDIINCSIINCSILOOPLP4RET;**********************CHANGE:MOVSI,OFFSETVAR2 MOVDI,OFFSETVAR4MOVBX,OFFSETTABLE1MOVCX,0002HCOMP0:MOVAL,[DI]ANDAL,0F0HSHRAL,4XLATMOV[SI],ALMOVAL,[DI]ANDAL,0FHXLATMOV[SI+1],ALINCSIINCSIINCDILOOPCOMP0RET;*******************DISP:MOVSI,OFFSETVAR1MOVDI,OFFSETVAR2MOVCX,0004HDIR:MOVAL,00HOUT62H,ALMOVAL,[SI]OUT60H,ALMOVAL,[DI]OUT62H,ALCALLTIMEINCSIINCDILOOPDIRRETTIME:PUSHAXPUSHCXMOVCX,0040HTIME1:MOVAX,0010HTIME2:DECAXJNZTIME2LOOPTIME1POPCXPOPAXRETSTTK:MOVAL,00HOUT62H,ALMOVAL,00HOUT60H,ALINAL,61HANDAL,18HCMPAL,18HJNZSTTKJMPSTTCODESENDSENDSTART实验心得体会经过这一周的实训,我获益良多。在这个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在这一次实训中,我学会了如何找到程序中的错误,如何在单步运行时检测程序中的错误。这次实训老师非常和蔼,虽说有时装作发脾气的样子让我们怕他,但是我们都知道老师是个好人,所以我们都不怕他,只是听他话。在实训中得到这样一句话“不要总是去认为好似机器出故障,要做好每到题目,就得认认真真的去思考,去理解程序所代表的含义,才能得知问题是出在哪方面上,从而修改过来”。这次课程设计终于顺利完成了,总的来说,这次实训是比较顺利的,学到的东西也很多,发现需要改正的问题也不少,所以,真的是受益匪浅。这次出的题目难度适中,刚好适合我们这种“初学者”,不过我建议老师增加答辩环节,这有利于那些抄袭别人程序的同学理解程序的功能,让同学们多点思考。最后,深深感谢老师。目录TOC\o"1-3"\u第1章绪论 11.1设计目的 11.2设计要求 1第2章设计原理 22.1总体设计 22.2工作原理分析 2第3章器件选型 43.1AT89C51单片机 43.2A/D转换器 53.2.1A/D工作原理 5AD0809介绍 53.3移位寄存器 63.4LED显示部分 73.5整体仿真电路 8第4章程序设计 9第5章心得体会 12参考文献 13第1章绪论1.1设计目的针对锅炉给水系统,为保证锅炉安全而经济地运行,需对水(补给水或凝结水)进行净化、软化、除盐、除气等处理,再对锅炉给水进行调质,在水中加入适量的酸碱液,使水的pH值在指定数值或设定范围。pH值是考察溶液酸度的一个重要参数,但在线pH值的测量还没有很好地应用于电厂锅炉补给、锅炉给水以及循环冷却水中。通过pH值的在线检测,可及时调节系统中的pH值,使其控制在最佳范围内,从而达到减缓锅炉设备腐蚀、结垢的目的。由于电厂锅炉给水温度的变化直接影响pH值测量的准确性,采用现有的温度补偿方法也只能减小温度的影响,却无法补偿给水本身的温度特性带来的偏差,为提高pH值测量的准确性,采用计算机自动进行补偿,可消除温度的影响,提高pH值测量的准确性。本设计是通过DVCC试验箱实现对检测数据的调整,最后显示其真实值。本设计的主要目的为:1.了解并掌握单片机的原理、结构、指令、输入输出接口及应用。

2.熟悉DVCC实验系统的软、硬件结构,并能利用此系统进行开发设计。

3.掌握汇编语言程序设计和调试。4.掌握PH值传感器的特性及输出信号特点并能实现信号的转换及最终的PH值的显示。1.2设计要求开发型单片单板机DVCC-51是一种简易在线开发系统,它具有开发编程功能,可用于用户8031单片机系统的在线CPU仿真/调试,而且它自身就是一台以8031单片机为CPU的单板机,可直接用于工业过程控制、实时数据采集/处理系统和各种智能仪器仪表。本设计主要通过DVCC-51来实现软件与硬件的调试,以达到设计的目的。本设计的要求如下:设计指标:pH测量范围0-14,精度0.1,具有温度补偿能力。1、基于DVCC实验箱,调通A/D转换器,并能实现对输入的信号进行转换。2、根据PH值传感器输入的信号特点,进行量纲的转换和数据的显示。3、并最终将测出的PH值实现远传(即具有和上位机PC机通讯的能力)。第2章设计原理2.1总体设计本系统主要由单片机,pH传感器,温度补偿电路,信号调理电路及数码管显示模块组成。其流程图如图2-1所示。图2-1系统整体结构PH电极产生与水pH有关的微弱电信号,经过调理电路处理后为0-5V标准电信号,然后送给ADC0809八位高精度模数转换器,将0-5V的标准模拟电信号转换为数字信号。同时温度补偿电路也将信号连入单片机,单片机对信号进行各种处理,通过转换公式再换算成对应的pH值。经过处理的参数信号通过显示电路进行显示,使人们能直观的看到pH显示。2.2工作原理分析本系统主要部分为A/D转换和单片机,由于对精度没做很大要求,我们采用逐次逼近式A/D转换ADC0809。由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89C51单片机ALE信号4分频后的引脚上。因此产生CLK信号的方法就不用软件来产生了,直接由单片机硬件来完成,通过旋钮改变输入电压。ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,通过程序处理的过程就包含了实现了量程变换,本次设计采用C语言编程,然后再由单片机的串行口输出给显示电路。而显示电路则是由74LS164和数码管连接起来的,最后把数据送入数码管显示,选用3个共阴极数码管进行显示当前pH的变化值。ADC0809与单片机8032的连接,所需要的芯片在DVCC面板上都有,查找其模数转换应用原理图如图2-2所示。图2-2A/D转换ADC0809应用原理图第3章器件选型3.1AT89C51单片机图3-1单片机引脚图AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,功能强大,而且价位低。管脚图如图3-140个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。管脚功能说明:1.电源:VCC—芯片电源,接+5V;VSS—接地端。2.时钟:XTAL1、XTAL2—晶体振荡电路反相输入端和输出端。3.I/O线:8031共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。4.P3口第二功能:P30/RXD,串行输入口;P31/TXD,串行输出口;P32/INT0,外部中断0(低电平有效);P33/INT1,外部中断1(低电平有效);P36/WR,外部数据存储器写选通(低电平有效);P37/RD,外部数据存储器读选通(低电平有效)。3.2A3.2.1A常用的A/D转换原理可分为逐次逼近式和双积分式两种。前者转换时间短(几μs到100μs),适用于工业生产过程的控制;后者转换时间长(几ms到100ms),适用于实验室标准测试。A/D转换器选用ADC0809模拟/数字转换器。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。根据A/D转换器的原理,n位A/D转换器输出的二进制数字量B与模拟输入电压VI、正基准电压VREF+、负基准电压VREF-的关系为式(3-1)所示:(3-1)3.2.2AADC0809是8位逐次逼近式AD转换器,包括8位模数转换器、8通道多路转换器和与微处理器兼容的控制逻辑。8通道多路转换器能根据地址锁存译码后的信号,选通8路模拟输入信号中的一个进行AD转换。图3-2ADC0809的内部逻辑结构图如图3-2为ADC0809的内部逻辑结构图。ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809芯片有28条引脚,采用双列直插式封装,如图3-3所示。下面说明各引脚功能。图3-3ADC0809模数转换器的引脚功能IN0~IN7为8路模拟量输入端;D0~D7为8位数字量输出端;ADDA、ADDB、ADDC为3位地址输入线,用于选通8路模拟输入中的一路;ALE为地址锁存允许信号,输入,高电平有效;START为A/D转换启动信号,输入,高电平有效;EOC为A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平);OE为数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量;CLK为时钟脉冲输入端。要求时钟频率不高于640KHZ;REF(+)、REF(-)为基准电压;Vcc为电源,单一+5V;GND为地。3.3移位寄存器74LS164是8位串入并出移位寄存器。是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。74LS164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。74LS164管脚封装图如图3-4所示:图3-474LS164封装图引脚功能:CLOCK:时钟输入端;CLEAR:同步清除输入端(低电平有效);A,B:串行数据输入端;Q0-Q7:输出端;3.4LED显示部分显示部分采用三位共阴极数码管,共阴极数码管是把所有LED的阴极连接到共同接点,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如图3-5所示。图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。图3-5数码管引脚图LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二~十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3.5整体仿真电路图3-6系统仿真图单片机控制ADC0809接收调理电路的输出信号0—5V的电压信号,单片机控制ADC0809将模拟信号转换为0—255的数字信号,数字信号不能直接用于显示,所以单片机需要将数字信号进行处理,转换为需要三位数码管显示的pH值0到14的范围。系统原理图如图3-6所示。第4章程序设计本程序采用ADC0809的转换完成标志位EOC作为转换完成的标志,然后将数据读进来,进行一系列的处理,包括量程变换等后,再送给数码管显示,采用动态显示,每个数码管显示完的标志为TI,以此做为下一个数码管显示的标志。图4-1程序流程图其程序流程是:进入主程序后,先置P1.0口为1,然后将三个数码管显示0,以此点亮数码管,这时候进入主循环,先判断P1.0是否等于1,如果等于1时,则进行A/D转换,并且将上次转换完成的数据提取出来,送给单片机进行数据处理,处理包括标度变换,将数据处理完以后送给数码管进行显示,显示等待一段时间,判断A/D是否转换完成,即P1.0是否等于1,如果没有转换完成,则再等待一段时间继续查询,直到转换完成为止,再进行数据处理显示,依次循环。其程序流程图如图4-1所示。程序代码如下所示:#include"reg51.h"#include"absacc.h"unsignedintwait_ms(unsignedintdelay_val)//延时程序{unsignedinti;unsignedintms_ctr;for(i=0;i<delay_val;i++){ ms_ctr=0x80; while(ms_ctr){ ms_ctr--; }}return(delay_val);}voidmain()//主程序{unsignedchars,y;unsignedinta,b,c,d,z;unsignedcharcodedb[]={0x0fc,0x60,0x0da,0x0f2,0x66,0x0b6,0x0be,0x0e0,0x0fe,0x0f6};unsignedcharcodedb1[]={0x0fd,0x61,0x0db,0x0f3,0x67,0x0b7,0x0bf,0x0e1,0x0ff,0x0f7};SBUF=db[0];SBUF=db[0];SBUF=db[0];P1_0=1;while(1){if(P1_0==1){XBYTE[0X9000]=0X00;s=XBYTE[0X9000];ACC=s;z=s*0.55;a=z/100;//a为百位b=z%100;c=b/10;//c为十位d=b%10;//d为个位TI=0;//送数SBUF=db[d];while(TI==0){}TI=0;SBUF=db1[c];while(TI==0){}TI=0;SBUF=db[a];while(TI==1){}}wait_ms(100);//等待延时}}第5章心得体会微机原理课程设计包括了A/D转换器与单片机的连接,数码管显示。其任务主要是完成数码管的显示和被测量的变换。回顾起此次单片机课程设计,我感慨颇多,主要的困难来自对程序的理解。从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。这次课设让我对实验台有了足够的了解,让我知道了实验台上各个模块的用法;而且它还让我对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我对有关接口的知识将会有一个更广泛的认识,而且它对我以后的学习也会有帮助的。在本次课程设计,我了解并掌握单片机的原理、结构、指令、输入输出接口及应用;熟悉DVCC实验系统的软、硬件结构,并能利用此系统进行开发设计;掌握汇编语言及C语言程序设计和调试;掌握pH检测传感器,并根据信号特点实现信号的转换及最终的显示,并利用仿真软件进行电路的调试。总之,这次课程设计对于我有很大的帮助,通过课程设计,我更加深入地理解了微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。由于一开始对编程环境的不熟悉,导致经常犯了一些常识错误,给整个进程带来了不少麻烦,但在老师的指导帮助下问题得到了解决!在此我感谢老师和同学给予我无私的帮助使我对80C51单片机的掌握又有了提高。参考文献[1]董华.基于MSP430单片机的pH计的研制.吉林大学,2021[2]胡汉才.单片机原理及接口设计.北京:清华大学出版社,2002[3]于海生.微型计算机控制技术.北京:清华大学出版社,1999[4]张迎新.单片机初级教程.北京:北京航天航空大学出版社,2000[5]康华光.模拟电子技术.北京:高等教育出版社,2004[6]胡学林.可编程控制器应用技术.北京:高等教育出版社,2001[7]付家才.单片机控制工程实践技术.北京:化学工业出版社,2003摘要嵌入式系统开始于20世纪80年代单片机的使用。嵌入式技术已经渗透到各个领域,且与人们的日常生活密不可分,给人们生活和工业生产带来极大方便。本文论述了嵌入式系统概念、嵌入式处理器、嵌入操作系统和嵌入软件开发环境,解释了嵌入式系统组成中的各个部分。嵌入式操作系统具有良好的可移植性,能够用在根据应用要求选择的微处理器中。嵌入式系统设计带来了与传统系统设计全然不同的挑战。嵌入式系统已成为计算机领域的一个重要组成部分。广泛讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。嵌入式系统可以通过各种无线形式和有线形式的网络连接方式实现它们之间的相互连接。因此,在网络通信市场上极具生命力。关键词嵌入式系统,嵌入式操作系统,μC/OS-ⅡABSTRACTTheEmbeddedsystemcommencedwiththeuseofSCMin1980’s.Theembeddedtechnologyhaspenetratedineveryfield.It’sinseparablewithourdailylifeanditbringsgreatconveniencetopeople’Thispaperdiscussestheconceptoftheembeddedsystem,theembeddedprocessor,theembeddedoperatingsystemandtheembeddedsoftwaredevelopingenvironment,explainsthecomponentsoftheembeddedsystem.Theembeddedsystemhasgreatcompatibility.ItcanbeusedinMPUselectedaccordingtotheapplication.Thedesignoftheembeddedsystembringsthechallengewitchisdifferentwiththetraditionaldesign.Theembeddedsystemhasbeenanimportantcomponentofthecomputerfield.Universallyspeaking,alltheprivatesoft-hardwaresystemswithMPUcanbenamedwithembeddedsystem.Theembeddedsystemscanconnectwitheachotherthroughwirelessandcableconnectingway.Therefore,itisanimateinthemarketofthecommunicationnetworks.KEYWORDSEmbeddedsystem,Embeddedoperatingsystem,μC/OS-Ⅱ目录第一章嵌入式系统概述 11.1嵌入式系统简介 11.2嵌入式系统的分类 11.3嵌入式系统设计的特点 1第二章嵌入式处理器 12.1嵌入式处理器简介 12.2常用嵌入式处理器 1第三章嵌入式操作系统 13.1嵌入式操作系统简介 13.1.1嵌入式操作系统的机制 1嵌入式操作系统的特点: 13.1.3嵌入式操作系统的分类 13.2μC/OS-Ⅱ嵌入式操作系统 13.2.1μC/OS-Ⅱ实时操作系统结构 13.2.2μC/OS-Ⅱ嵌入式操作系统的特点 1μC/OS-Ⅱ的移植 1第四章嵌入式系统编程语言 14.1嵌入式系统的高级语言特点 14.2嵌入式系统高级语言开发过程 14.3嵌入式系统编程与系统硬件 14.3.1存储器映射 14.3.2I/O映射 1结束语 1参考文献 1第一章嵌入式系统概述1.1嵌入式系统简介何谓嵌入式系统?根据英国电机工程师协会的定义所做的翻译,“嵌入式系统为控制、监视或辅助设备、机器或甚至工厂操作的装置”。它具备了下列四项的特性:1.通常执行特定功能。2.以微电脑与外围构成核心。3.严格的时序与稳定性要求。4.全自动操作循环。嵌入式系统是电脑软件与硬件的综合体,亦可以涵盖机械和其他的附属装置。整个综合体设计的目的在于满足某种特殊功能。嵌入式系统的架构可分成五个部分:处理器,内存,输入与输出,操作系统与应用软件。它们常见于各类实验仪器、办公设备、交通运输设备、电信设备、制造设备、建筑设备、医疗设备及个人电脑等。符合定义的嵌入式系统的第一个产品直到1971年以后才出现,这一年,Intel发布了世界上第一块微处理器4004,主要被日本的Busicom公司用来生产上用计算器。1969年,Busicom请Intel为他们的每一种新式计算分别设计一种定制的集成电路,Intel则拿出了4004。Intel没有为每一种计算器分别进行设计,而是设计了一种可以用在所有型号上的通用电路。这个通用处理器被设计来读取存在外部存储芯片里一系列指令(软件)。Intel的想法是通过软件的设计可以为每一种计算器提供各自的特性。这种微处理器在一夜之间就成功了,并且在以后的十年中获得了广泛的应用。嵌入式系统早期主要应用于军事及航天等领域,以后逐步广泛地应用于工业控制、仪器仪表、汽车电子、通信和家用消费电子类等领域。随着Internet的发展,新型的嵌入式系统正朝着信息家电IA(InformationAppliance)和3C(Computer、Communication、Consumer)产品方向发展。嵌入式系统的数量看起来肯定会继续迅速增长。一机构很多具有巨大市场潜力的嵌入式系统设备了:可以被中央计算机控制的调光器和恒温器。当小孩子或矮个子的人在的时候不会充气的智能智囊,掌上电子记事簿和个人数字助理(PDA)、数码照相机和仪表导航系统。图1.1是由知名的产业分析机构IDC所作的嵌入式系统相关产品的产量趋势图。图1.1全球嵌入式系统相关产品产量趋势图嵌入式系统采用“量体裁衣”的方式把所需的功能嵌入至各种应用系统中。随着应用形式的不同,可有IP(IntellectualProperty)级、芯片级和模块级3级不同体系结构。IP级的构架也就是系统级芯片SOC(SystemonChip)的形式。把不同的IP单元,根据应用的要求集成在一块芯片上,各种嵌入式软件也可以以IP的方式集成在芯片中。芯片级构架是根据各种IT产品(应用系统)的要求,可以选用相应的处理器(MCU、DSP、RISC、MPU等)芯片、RAM、ROM(EPROM/EEPROM/FLASH)及I/O接口芯片等组成相应的嵌入式系统;相应的系统软件/应用软件也可以固件形式固化在ROM中。这是目前嵌入式系统最常见的形式。第3种的构架是以X86处理器构成的计算机系统模块嵌入到应用系统中。这样可以充分利用目前常用PC机的通用性和便利性。不过,此方式不但要缩小体积、增加可靠性;而且,还要把操作系统OS改造为嵌入式操作系统OS,把应用软件固化在固态盘中。此种嵌入式系统较多地出现在工业控制和仪器仪表中。嵌入式系统是由嵌入式处理器、嵌入式系统软件和嵌入式应用软件组成。Intel公司推出的个人互联网用户构架PCA就是嵌入式系统的开发应用平台。在PCA的应用与通信子系统中的嵌入式处理器是基于StrongARM/XScale的处理器;PCA可以配备WindowsCE、嵌入式Linux和VxWorks等各种嵌入式OS;同时,为了便于开发各种应用软件,提供了各种组件及中间件。1.2嵌入式系统的分类按照“嵌入”方式的不同,嵌入式系统可分为以下凡种:整机式嵌入。一个带有专用接口的计算机系统嵌入到一个控制系统中,成为控制系统的核心部分。一般这种计算机系统功能完整而强大,完成系统中的核心的关键工作,也具有较完善的人机界面和外部设备。部件式嵌入。以部件式嵌入到一个控制设备中,完成某一处理功能,与设备的其它硬件偶合紧密、功能更专一。如雷达的数字处理部件,一般选用专用CPU或DSP。芯片式嵌入。一个芯片是一个完整的专用计算机,具有完整的输入输出接口,完成专一的功能。如显示处理器、微波炉控制器等。一般为专门设计的芯片。随着微电子技术的发展,芯片式嵌入应用将越来越广泛。1.3嵌入式系统设计的特点根据英国电机工程师协会的定义,嵌入式系统式控制、监视或辅助设备、机器、甚至工厂运作的装置。他是一种计算机软件与硬件的综合体,并且特别强调量身定做的原则,也就是给予某一种特殊用途,会针对这项用途开发出截然不同的一个系统。可以从以下几个方面说明嵌入式系统设计方面的特点:1.用户界面和控制面板在这个方面不同的系统因功能不同而有很大的差别,有的系统可能只有几个简单的控制按键,而现实只需要几个示意的发光二极管就可以了,有的系统却要求包括多个菜单和许多选项,甚至有的要求精确的图形用户界面,如GPS。2.软件代码高质量、高可靠性尽管半导体技术的发展是处理器速度不但提高,系统存储器容量不断增加,价格也不断下降,但在大多数应用中,存储空间仍然是宝贵的,多数时候还存在实时性的要求。为此要求程序编写的编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。3.制造成本制造成本在很多情况下是十分重要的,尤其对于消费类电子产品,它由许多因素决定,比如处理器的种类,所需存储器的大小及需要哪些I/O设备,当然还有系统软件和应用程序的成本。4.功率嵌入式系统的产品很多都是由电池供电的,因此对于电源的管理可以说到了近乎苛刻的地步。即使是一些直接接入电网的设备,功耗同样是一个重要的指标,大功率意味着很大的散热量,对系统的稳定工作是有很大的影响的。而且,如果是大量使用,用电成本也必须考虑。第二章嵌入式处理器2.1嵌入式处理器简介随着信息技术和互联网技术的发展,嵌入式产品的功能日趋复杂,越来越多的应用系统了高性能的32位微处理器,以满足产品的网络化功能。任何微处理器MPU或微控制器MCU(即常称的单片机)都可以作为嵌入式系统的核。对于新型嵌入式系统的核,要求处理速度快、存储容量大、I/O功能强、功率损耗低及实时响应快等。以X86微处理器架构作为嵌入式系统的核,具有开发方便和移植容易的优点;但是其体积大、功耗高和实时性差等不足也给其带来应用的局限。因此,采用该架构的嵌入式系统较多出现在对体积和功耗要求不高的工业控制和台式设备的应用领域。80186/188是最早使用于嵌入式系统的处理器,至今在网卡、终端设备和工业控制中还可以看到它们的踪影。80386EX则是最早的SOC型的单片机式PC,它以80386微处理器为核,在一块芯片上集成了PC机常用的I/O:实时时钟RTC、中断控制器、DMA控制器、定时/计数器、并行/串行口以及VGA和LCD液晶驱动器等。现仍有很多公司采用486/586微处理器为核,推出了面向DVD、机顶盒和Webpad等应用的SOC芯片。数字信号处理器DSP(DigitalProcessor)也常作为嵌入式系统的核。DSP具有数字信号处理能力强,特别适合于声音、图象等多媒体信息处理系统。但是,其常规处理能力不强、寻址范围有限、I/O功能弱及开发平台差等不足,很少单独作为嵌入式系统的核,而是作为新型嵌入式处理系统的一个组成部分。RISC(ReducedInstructionSetComputer)型处理器具有结构简单、处理速度快和处理处理功能强等优点,新型嵌入式系统大多都采用RISC型处理器作为核。如ARM公司的ARM、Hitachi公司的SH、MIPS/LSILogic/IDT/Aldeny/Toshiba公司的MIPS和Motorola公司的M-Core等都是新型嵌入式系统常用的RISC型处理器。2.2常用嵌入式处理器1.MIPSMIPS(Microprocessorwithoutinterlockedpipedstages),“无内部互锁流水级的微处理器”,其机制是尽量利用软件方法避免流水线中的数据相关问题,它是显著的特点是高速,而且有的还集成了许多内核结构,因此广泛应用与高端市场。2.ARMARM公司是知识产权供应商,涉及的内核耗电少、成本低、功能强,特有16/32位上指令集。ARM已经为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。在所有基于ARM处理器系列中,基于ARM7内核的处理器应用最广泛。3.PowerPCPowerPC体系结构规范由IBM、Apple和Motorola共同提出。PowerPC架构的特点是可伸缩性能好、方便灵活,它在高速和低功耗之间作了很好的妥协,通常在外围集成了丰富的外围接口电路,被Motorola公司大量应用于嵌入式通信市场,国内中兴和华为大量采用在其产品中。4.M68K/ColdFireM68K是最早广泛应用于嵌入式领域的内核,尤其在汽车制造领域。ColdFire在其成了M68K的基础上对其作了改进,并保持了对M68K的兼容性,广泛应用于工业控制,机器人研究和家电控制领域。第三章嵌入式操作系统3.1嵌入式操作系统简介所谓的操作系统(OS,OperatingSystem),是补平硬件差异的接口或是说隐藏硬件,让应用程序可以在上面操作;通过由操作系统统一所提供出来的系统接口来写应用程序,无须考虑到不同硬件所造成的差异,让程序设计人员能够专注在擅长领域的开发,就像图3.1所表示的。用户用户应用程序系统调用命令操作系统计算机硬件图3.1OS作为接口的示意图但是要让不同的硬件组合装置都能够利用操作系统提供一个统一的接口给上层,是一件很辛苦的事情,因为觉得太辛苦,所以许多产品厂商会觉得买一个操作系统回来用比较划算。事实上因为嵌入式系统是将所有程序,包括操作系统、驱动程序、应用程序等等的程序代码全部都烧进一个ROM里面去执行,所以操作系统在这里的角色

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论