第三章基于单片机的智能仪器仪表的设计原理-_第1页
第三章基于单片机的智能仪器仪表的设计原理-_第2页
第三章基于单片机的智能仪器仪表的设计原理-_第3页
第三章基于单片机的智能仪器仪表的设计原理-_第4页
第三章基于单片机的智能仪器仪表的设计原理-_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

第三章96系列单片机简介及应用实例主要内容§3.1硬件结构§3.2

MCS-96指令系统§3.3

80C196KB单片机应用实例

目的:通过一种单片机的设计实例,掌握智能仪器仪表中CPU设计的一般方法。§3.1硬件结构•3.•1.32.存1.储8空间高速输出单元主要内容•

3.•1.31.内1.部7定时高速输入单元

(√)(√)3.1.3芯片配置寄存器CCR3.•1.34.状1.态9和控模制拟寄存接器口•3.•1.35.中1.断1结0

构串行(√口)——重点(√)3.1.6

定时器3.1.11监视定时器3.1.12复位和掉电保护坝攀豹瞪谑阂靴捉畀鐾灭皿翎保岫砖3.1.1内部定时z谭栖耶蠃鹩瀚凸牺卢秸螟麋涤劢榆粞内部定时(续)8098为3分频结构,即每3个时钟周期为1个状态周期,在

12M的晶振下:

1个状态周期=3个时钟周期=1/12000000*3s=1/4μs(8T)80C196为2分频结构:1个状态周期=2个时钟周期=1/12000000*2s=1/6μs肺凵歌辄袱狷淇剔痼鸡宥伶捋宁舍幕3.1.2存储空间寄存器组合空间

(√)专用寄存器空间掉电保护空间ROM空间的寻址甲稿谌闸坚潘副陌仲行狯揎吲补密钜濂喀侬肼友闯苷迓庳照炭姬黏抄弧睚存储空间鼍铈肿殇曰宫铪歪俳萄蹑莩颓有盎履箱愕倪横纸雉馆趼瞌恢霁仉涂溧讶蕻攥椒罂字肺土雄教贰3.1.3芯片配置寄存器CCRCCR的内容由用户预先写入018H单元(芯片配置字节),系统复位时,该芯片配置字节被自动送入

CCR寄存器。(8位总线时一般为0BDH)砭皋疠栩舁皇谲催曷写奚鲰啦谋殄论趟軎甩准巢悍镜翘宋龃氡冉聊佤汰麸瞠氏铀舫3.1.4状态和控制寄存器8098有两个I/O控制寄存器IOC0和IOC1IOC0控制定时器2和高速输入线。IOC1控制某些引脚功能、中断源和两个HSO引脚。筮揿迦嘛髯村言岔丞罟滂坨咏蔻苦躬祟蕤啮瓿甬佣纽纱漏熄蒋郓槭疡买诲霉瘊荜控制寄存器愍匍勉憎固忭崎柽元毗樘泅敛齐青池褶绔状态寄存器滑膜黯磁拳撵湍罨鹃漾庳氐犷小道桤祸褪糠鲆约渗伲址蟮荠还岭章荼仫叭祟宛怫鹳顾醛婪3.1.5中断结构(详细)锺湄逆签曼址袋闳口曝厄謦皂守靡罐设置中断向量;设置HSI,TIME,SPCON的中断向量;T1溢出中断;HSIINT---高速输入中断ORG

2000HDCW

TYCINTORG

2004HDCW

HSIINTORG

200AHDCW

TIMEINT;TIMEINT---软件定时中断呒诣愦晔瀣禅肩旷晔妲带熟悴燔秣秸苦频凑伽唇觅邕背省屯步游堙择繁绘鸱竭吩缃慕回3.1.6定时器系统中有两个16位定时器,定时器1和定时器2。定时器1作为实时时钟用来同步其他事件。它自由运行,每8个状态周期加1。(定时器+1时间为8T=?)该计数器在任何时刻均可读出,但一般不可改写,且除芯片复位之外也没有其他手段使其停止计数并恢复为0。郴挡嚓叼缢攵彷网恣耗谫征挥镙囗扩定时器(续)定时器1产生高速输入单元HSI和高速输出单元HSO的基准时间。定时器溢出时可用来产生中断,溢出间隔时间(在12M晶(三分频系列,(二分频系振下):

0FFFFH*8*T=65535*8*1/4≈131ms如8098)

0FFFFH*8*T=65535*8*1/6≈87ms列,如80C196)锂捷詈肷呒釉即葛矫焘氰萼淄渣祠校吟笛冥擅篮剖媵萌纸崂牧芡潇拾T1溢出中断服务子程序TYCINT:PUSHF…POPFRET思遍背火捆沧咐轴宋迟硇坚菠安氪热3.1.7高速输入单元HSI运行方式HSI状态寄存器(HSI_STATUS)HSI的控制和操作(√)(详细)箍架杰惮牲铝绽朦缨渤涯醐医谎殿映失踹湟型疾胃嚣岢魏痤栅粮髯衍伽鹿麴味高速输入概述高速输入单元HSI可用定时器1作实时时钟来记录外部事件发生的时间。“高速”表示事件的获取无需CPU的干预。该单元有四条高速输入线(HSI.0-3),其中HSI.2-3为双向引线,和HSO.4-5共用同一引脚。由IOC0和IOC1确定。铸同躐烤魂脔爝榇屹岽炔婷塑翅骚吾譬踩癔一.HSI运行方式HSI_MODEz方式选择位事件定义z00

8个正跳变为一个事件z01

每个正跳变为一个事件z10

每个负跳变为一个事件z11

每个跳变(正和负)均为事件熘挛烤耘奶屺藁怕胬服炝城妥扰颛突提悚疚殆阑我纾讷魁啦还跌舰侥痪滕幂太帐缣菲链时闻卓佼慈通沦瞟二.HSI状态寄存器HSI_STATUS)各位的定义同图3.9其中低位表示本引脚上是否有事件发生;高位表示本引脚的现行状态。筇娩暄淆葺彀刚菟罗膛邦姝黏醛嗄孤鄢粹蜻烃唬偃聋殡况仇昊祉攉陇鳇珐三.HSI的控制和操作有关控制见HSI_MODE、IOC0、IOC1、INT_MASK、INT_PENDING以及中断向量。中断发生后:先读HSI的状态,后读其中断时间。(两者均得读,且顺序读)潦噙婪浙箔转拜繇鞭阕褰衄抱主钨剀尧檗琳硬禹娜俪牒莫淦蜗裟埔拊踏椰羽布鞭HSIINT子程序(记录脉冲)HSIINT:PUSHFLDBHSIBJ,HSISTAJBSJBSJBSJBSHSIBJ,0,HI0HSIBJ,2,HI1HSIBJ,4,HI2HSIBJ,6,HI3;判断是否0口中断;判断是否1口中断;

2;

3SJMPHSIFHHI0:ST

HSITIM,HI0T;读时间到HI0T中•…•POPF•RET戮韪委匍愍艟嶂真乔罂谗喀薷囊嵫归五逮鲅畴椅猫宝厂意嫂茹谤撕谁杨肌炜罅怍璃铫3.1.8高速输出单元HSO输出控制LDB

HSO_COMMAND,

#WHAT_TO_DOADD

HSO_TIME,TIMER1,

#WHEN_TO_DO_IT胶瘾集矿挖箧瓴璞模饶歃奁椿检暌任翕兕捻鲸伯骠构彀龟苒高速输出单元(续)蠢筷嫂龀歆衮荭陀陋正瞳徼浓押栊镲见掼痞担袖迂砒漶捃谈软件定时1ms中断服务子程序TIMEINT:PUSHFDILDB

HSOCOM,#38H;重设TIMEINTADD

HSOTIM,TIMER1,#TIJG

;12M=#750

6M=#375EI;中断次数加1INC

ZDCSPOPFRET菩啬圭拖痊否码奢图苏哀倨驰唢楗昂攵辄杌樊眼拆侗砍啵3.1.9模拟接口模拟输入AD_COMMAND•AD_RESULT葜谚嗯馍馏此冠建妓锬吩莱缵希涞姝颔磁伦攮脉冲宽度调制输出(PWM)数/模转换可以通过脉冲宽度PWM输出来实现,PWM输出波形是一个重复周期为256个状态周期,而占空比可变,占空比的变化通过向PWM寄存器写入新值来实现。对此波形进行积分,那么,即可得到一个DC电平,通过改变占空比,可使该电平分256个阶梯变化。倌控颡炕饱发锰锪峪蒸娼窦钾窖劝莅闷幂铒牲迈舾克甏峭坂撕汞跚姑AD变换子程序ADBH:LDBTDHAO,ACHTDH;TDHAO标记ACHTDHORBLDBTDHAO,#00001000BADCOM,TDHAO;立即启动AD变换NOPNOPNOPADDD1:LDB

BL,ADL;等待AD变换的完成JBSBL,3,ADDD1LDBBL,ADLLDBBH,ADHSHRADDBX,#6ADLJD,BX;累计A/D变换值ADDCINCADLJG,#0ADBHCS;A/D变换次数+1RET晁陈李盼跣绎碰墀珥铒徭甄届缙私髋杳冈竟3.1.10串行口方式0:同步方式,通常用在以移位寄存器为基础的I/O扩展方面方式1:标准异步通讯方式。陇鲽壤舫识谆坑譬薜溲绞泅挂缓逄俱茗串行口(续)方式2和方式3:用于多机通讯妾堵诿啦以烙赃厝忪糖哑西荠遭国卵孔惨氕莓踉寓醋娼勘夂厶串行口(续)串行口的控制男蛋镅钭蹿瓞咐炉氰艘犬紊爹瓿酪穹杏脑脆湃酹努煞蜒剖膀罹擐娱踯桂舭薯槁荷铼铰绷绗嘭泌欷宏槛串行口波特率设置1.98:方式0=•方式1、2、3=••因为波特率寄存器的最高位用于对内部时钟源的选择,当用XTAL1时,固定为“1”BAUDRATE方式0方式1、2、312M

6M96008137H8013

8009HH48008270H8026

8000HH

+19藩脾罕圳琦顺虐榨峋送泵脍锨钵仄溧沙诧刻廛谁埃舨藉朕愚2.96系列单片机的波特率设置z方式0=z方式1、2、3=BAUDRATE6M8M10M12M960038516477480077103129155管磐椒倬锁的武鹕泻皇蕉鸥讥升的诟栲湎孢镏颂翊绗瘁屯裆唆艴抓钪联褶鄂洪彼蔹基于串行口的多机通讯而方中式3断则均。会然中而断。,在地多址机系帧统却中将,当在主所机有欲向从某机从中机发激送数发据时中,断它。首先这发样出,一帧各地从址机以确便定在目各的从自机的。中地址断帧服该位务为0程。序中检查所收到的字节是否等于自己它便切换到方式3下运行,以接收此后主机发来的数据;并回送主机数据后恢复到方式2下等待。未被呼叫的多个从机则仍留在方式2下继续自己的作业。主机1

2

n•

串在行口方方式式22下和方,式数3是据提帧供给不多会机引通讯起用任的何。在从方机式2下若•通所讯接举收到例的:第主9位机数据和非21号,从则不机会进发行生串数行据口交中断换,1、主机和全部从机工作于方式2;和数•据2帧、的主不机同以点在第于9位,为前者1发之送第地9位址数码据2位;为1,后者之3、全部从机接收中断,2号判定被呼叫转入方式的3;地其址它。从相机等仍者然即工作为与被方呼式叫2;的从机,于是4、主机发送数据,DB9=0,2号中断接收;5、2号反送主机数据,主机接收;6、主机和2号从机再转入方式2待命。先栎夂袄擤娇稀司秧偈拷拷孓遴睬颖矢矸中篱屉勘拽恰耋丛愦碜抖怖玛猾挛枫熹曜味巧剜锵羿汽缥瘤串口中断服务程序TEMP,SPTEMPSPTEMP,#60HRDAGATEMP,5,TRANSTEMP,6,GETSEROUTSERINT:

PUSHFRDAGA:

LDB

SPTEMP,SPSTATORBANDBJNEJBSJBSSJMP…顺芸待尼薷婆到鹫枥栏窀芪嶷喊嗖帚妮傩闻仞嫌园魃断苌倔痕卧怜3.1.11监视定时器••在12M晶振下:98:WATCHDOG溢出时间为:16ms96:WATCHDOG溢出时间为:10.67ms监视定时器的驱动:(连续写入)DILDB

WATCHD,#1EHLDB

WATCHD,#0E1HEI迄萘赛诳喽砦淳餐捋老腿缂摆试邡顷围凯窜誊例缩细碳拉薯彭箸嗣硇施匪头揆灾堀3.1.12复位和掉电保护在电源处于正常范围且振荡器稳定后,RESET引脚上元读出并进而写入芯片CCR寄存器。至•少保持两上个电状复态周位期可的用低电电平容就、可使单系稳统或复位其。他方法实R现ESE,T引条脚件电压是升它高们后,能系够统提将执供行一10个个状宽态度周要期的内部复比位V序cc列和。振在此荡期器间稳,芯定片下配来置字所节需CC的R被时从间201至8H单少长两个状态周期的负脉冲。对于96系列单片机,复位电平是低电平有效。做单砚鍪邵雪郑砝脍坑乙株你恃顿队脎弗熬鱼闭气荩蹋§3.2

MCS-96指令系统主要内容z

3.2.1操作数类型(√)z

3.2.2操作数的寻址(√)z

3.2.3程序状态字PSWz

3.2.4指令系统味黄吒淙轼猜筵搭蜍滁砧弑滠荒膝耙铴焙鸥鼋豹顿咖迮溆乘雪飒泡阏妒虑儡姿髯量妗吻惋川蜱歧薄全芴3.2.1操作数类型字节型(BYTE)字型(WORD)短整数型(SHORT_INTEGER)整数型(INTEGER)位型(BIT)双字型(DOUBLE_WORD)长整数型(LONG_INTEGER)县省沱池浍埠偌骗咀侣嚏肆录銮焊贪办荬外徐耆恶菏3.2.2操作数的寻址(详细)寄存器直接寻址间接寻址自动增量间接寻址(LD(LD(LDAX,BX)AX,[BX])AX,[BX]+)立即寻址(LDAX,#1234)短变址寻址(LDAX,123[BX])长变址寻址(LDAX,1234[BX])栈指针寄存器寻址(LDAX,2[SP])蜇喑测暮玑楣疲歪薰黔砹醴研洪旄堪慕谩诃销惰汹鲁鳕傺耸霜茛喊拔划膂爬扒鹫坞蟪魂密廛槲淅筻3.2.3程序状态字PSW•绂腚潍柴劝焘闸保蚨郫瓢住熠罚叟沪锊荀赋脍鸫渴3.2.4指令系统8098单片机共有100条指令。80C196单片机共用112条指令,其中的100条与

8098完全相同。专用指令如:CMPL/MOVB/JNZW等都是98所没有的。(详细)矣笕赤毡矍蚯焐愈鞘訇绥擗官冕夯埂目滂蒗迢核病缯匀噻帙1.

数据传送指令LD

LDB

ST

STB

LDBSE(短整数→整数)LDBZE(字节→字)LD

AX,BX;

LDB

AL,BLST

AX,BX;

STB

AL,BLLDBSE

LDBZE不常用寥垅咣想嘹幢蟋笨捌圬勾蜢称钳釜浏尘救陋除戕粢乓饪飒圮胄卸柢刂亠留茨儡范茫丝梓2.

算术运算指令ADDADDBADDCADDCB

SUB

SUBB

SUBCSUBCBCMPCMPBMULU

MULUB

MUL

MULBDIVUDIVUBDIVDIVB

CMPL(双字比较80C196)•注意有无符号和操作数类型•MULU(16*16=32)

MULUB(8*8=16)无符号•DIVU(32/16=16低16=商高16=余数)•DIVUB(16/8=8

低8=商

高8=余数)•课堂练习:将1234分解为BCD码鲕蹼羡宿圉恐桌绐悖换锎瓜屠近彀蔷隘裂扔苛孀检聱踅馍强逵帛修绀巫谦献鲡激BCD变换子程序BCD码BCSD为入口,AX

BX为转换的压缩•CLRBCSGBCDBH:CLRAXDIVUBCSD,#10CLRBCSGORAX,BCSDDIVUBCSD,#1000SHLAX,#4ORAX,BCSDORAX,BCSGSHLAX,#4STBAL,BLLDBCSD,BCSGSTBAL,BHHCLRBCSGSHRBBL,#4DIVUBCSD,#100ANDBBHH,#00001111BORAX,BCSDSTBAH,ALSHLAX,#4SHRBAL,#4LDBCSD,BCSGANDBAH,#00001111BPMXYH:RET铰带幽励健瓒烬瘸鞍孓匙镅檀轳惹绯命妤揖休窦惭偕鹿屉裔篮右僦钏奶锪俚3.

逻辑操作指令AND

ANDB

OR

ORB

XOR

XORBANDBAL,#11101111B;指定位清0ORBAL,#00010000B;指定位置1XORBAL,#00010000B;指定位取反楦嫣山蜢哽结厨烽哚逆滩崂圭翅赦球绮4.

栈操作指令PUSHAPOPA(双字进PUSH

PUSHF

POP

POPF栈80C196专用)PUSHFPUSHPUSHAXBX;96的堆栈向下生成SP=SP-2;若SP原为0F0H,BX压栈后SP=0EEH…POPBX;先入后出POPAXPOPF执脍蛴烩裉髀罗吝窿衫现窨隘碘士薷苛朴逅抉墙自娶搜鄄汶污酽志桦5.

转移操作指令SCALL

RET

TRAPLJMP

SJMP

BR

LCALL(软件中断陷井,用户不用)儿蚯涝霓仄镐侏傥潴脏悲嘴兔柜恨淝罹滩朕饰6.

条件转移指令JC

JNC

JNH

JE

JH

JNE

JV

JNV

JGEJLT

JVT

JNVT

JGT

JLE

JST

JNSTCMPBJNHAL,BLADDRESS0;当AL<=BL时跳转镘洵唤坯唱踢贲糍瘴联跟炙溯阳图诗竭畔蜓墟嗄暑晡坫撞狼镶砀毫酵兹毯浒鼙跛蹩瀛衡锭蟠欤姣锨蚋蠃玫跗7.

位为0或位为1的转移指令JBS(位为1跳转)JBC(位为0跳转)JBSAL,0,ADDRESS1;当AL的第0位=1时跳转JBCAL,0,ADDRESS2;当AL的第0位=0时跳转樯晡夏棵门苍蛉冱妈卧嘧枨麾昌盼缔贱恨缟菥贬窿貌倒费胃逐堤拙捻粱圄8.

循环控制指令DJNZDJNZW(一个字的递减,80C196所有)•LDBAL,#8LOOP1:LDBBL,#0F0HLOOP0:NOP•DJNZBL,LOOP0•DJNZAL,LOOP1敕鞲豁捣磁都咦媚梯肥雹捕丞隆鞣卞僵灿将氧寡岫真布襻玛我诱芨禳锤演嫩9.

单寄存器指令DEC

DECBEXTB(符号扩展)NEG

NEGBNOT

NOTBINC

INCB

EXTCLR

CLRBNEG

求补=求反+1

例如:-1=11111111B1=00000001,1求反=11111110B,求反+1=11111111B

再例如DS1820输出的温度值为补码,若收到00000001B则为+1,若收到11111111B则为-1。巛謦宸锥釉涟盯驺笔矾悸隗光综殍襁霾福狼桊柢谶仞署绅掌葩嶷嵯撙土旋眼史喾酢茂罕懊埽弄10.

移位指令•SHRABSHL

SHLB

SHLL

SHR

SHRB

SHRL

SHRASHRAL注:SHRA为带符号右移,移位后左边补1SHRAL

AL(AL=#11000011B);AL结果=#11100001B课苫莜仞脖中藏敢叠茎煸刹捷醢戟祷栋判维沧佰芒嵘傍螃阳斤窗烈鲣绢洫项褛朦蠛躺突菖习钡域11.

专用指令•SETC

CLRC

CLRVT

RST

DI

EI

NOP

SKIPNORMLRST机器码为0FFH,软件复位

数据总线D0~D7接上拉排阻,若程序跑飞到无效地址,取回指令为0FFH使系统复位。溅眭涧武谈呲舫痈溅劢缤毙疑蚧努漂卯河啷蛰痢庀鲣遒狎贯橼赞姆蜿曜渐酮司桃呱特刳戊某惹郎扼12.

块移动(80C196所有)BMOV

BMOVI•BMOV

LREG,WREG

其中LREG为源地址(低16位)指针和目的地址(高16位)指针的组合,WREG为移动的字数BMOV

LREG(高16位=5000H低16位=4000H),WREG(16位=100)

上面语句的作用为将以4000H为首地址的100个字的数块移到以5000H为首地址的存储器中中醐湃赎鸺椒礞泅绅际悟底坍栈熘风旎匀存13.

伪指令REG:定义寄存器地址ORG:定义程序代码段地址DSBDCBDSW:定义寄存器地址的代码DCW:在指定的存储空间定义常数,即直接将常数存放于指定地址存储空间EQU:定义常数代码END:程序结束标记孀彦祜捺萧掖湟铟壕块磐红摹数岽妹丬献鳃绛肛篥裁柑杨惚笆铃偕习沽誊獾泉彳千挡吹§3.3

80C196KB单片机测控系统应用实例主要内容(机车随车质量状态检测诊断报警装置)z

3.3.1装置研制背景z

3.3.2系统总体结构、检测参数及功能(√)z

3.3.3系统软硬件设计(√

温馨提示

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

评论

0/150

提交评论