单片机-微机原理重点内容_第1页
单片机-微机原理重点内容_第2页
单片机-微机原理重点内容_第3页
单片机-微机原理重点内容_第4页
单片机-微机原理重点内容_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、第一章基础知识 1第二章单片机 1第三章开发工具 2第四章指令与编程 2第五章I/O 端口 5第六章中断 6实验 2-1 :按键控制流水灯移动 7实验 2-2 :按键控制递减运算 7第七章 定时/计数器 9实验3-1 :硬件定时控制 LED闪烁10实验 3-2 :电子钟设计 11第八章 串口 12实验 4-1 :发送问候语 13实验 4-2:接收字符并回发 14第九章 系统扩展 15实验 5-1 :三总线扩展法显示数码管 15实验5-2 : 8255的I/O 控制16实验 6-1 :利用 D/A 转换产生正弦波 17实验 6-2 :测量电压并显示 17第十章 8086 CPU 18第一章 基础

2、知识1 简述微机模型(组成) ;2 简述自己的 PC 机(和手机)性能指标;3教材P23:第3、4、9题。第二章 单片机1 用指令将程序存储器中地址为 200H 单元的内容读取到累加器 A;2 上题中,如何控制从片内 200H 单元读取,还是片外 200H 单元读取?3 说明片内 RAM 划分,及各部分容量及编址;4 将片内数据存储器中地址为30H 单元的内容读取到累加器 A;5 将片外数据存储器中地址为3000H 单元的内容读取到累加器 A;6 将累加器 A 的内容保存到片内数据存储器的 40H 地址单元。7 堆栈工作原则?8 教材 P52,8 和 12。第三章 开发工具1 完成教材中的例子

3、,熟悉操作流程,并简单说明完成情况(遇到的问题,未完成的原因) 和对课程教学的意见,然后上传。 不要 传源程序和设计图。截至日期:已过期 。第四章 指令与编程1 教材 P102: 4-1 ;2 单片机的指令按功能如何分类?3 单片机内部 RAM 的 40H 单元中保存了一个数,范围是 0-9 。用查表的方法将其转换为对 应的 ASCII 码,并保存在片内 50H 单元中。提示: ASCII 编码规则:大写字母从 41H 开始依次排列,小写从 61H 开始,数字 0-9 从30H-39H 。也可用 ' '的方式表示字母和数字编码,如 'W '表示 W 的 ASCI

4、I 编码, '8'表示 8 的编码,等等。4 用加法运算的方法完成第 3 题。5 拆字程序。压缩的 BCD 码保存在 20H 单元,编程将其分解为两个非压缩的 BCD 码,低 位放在 50H 单元,高位放在 51H 单元。6 教材 4-3 ;7检查ROM地址为400H单元的内容,如为W'则将''送到累加器 A,否则送N '8 教材 4-13(要求用 循环调用子程序 的方法完成,子程序实现 查表转换 )。9 将 ROM 中首地址为 900H 的 8 个连续单元中的数据保存到片内首地址为 30H 的连续单元 中。10 比较片内 RAM 的 60H 单

5、元与 25 的大小,在累加器中,分别用 1、2、3 表示大于、等于 和小于 25。11 教材 4-13(要求用 循环调用子程序 的方法完成,子程序用 加法计算 的方法实现 转换)。 12-14 修改重新完成 6-8.参考解答6ORG0HCALLINITLOOP:CALLMOVEINCR0INCDPTRDJNZR7,LOOPCALL INIT2LOOP:CALL INC INCDJNZJMPMOV2R0DPTRR7,LOOP $INIT:MOVR0,#30HMOVDPTR,#100HMOVRETR7,#5MOVE:MOVA,R0MOVXRETDPTR,AINIT2:MOVR0,#40HMOVDP

6、TR,#2000HMOVRETR7,#10MOV2:MOVXA,DPTRMOVRETENDR0,A7ORG0HCLRAMOVDPTR,#400HMOVCA,A+DPTRCJNEA,#'W',NOMOVA,#'Y'JMPOVRNO:MOVA,#'N'OVR:JMPEND$8ORG0HCALLINITLOOP:CALLCHNGINCR0INCR1DJNZR7,LOOPJMP$INIT:MOVR0,#40HMOVR1,#50HMOVR7,#10MOVRETDPTR,#TABCHNG:MOVA,R0MOVCA,A+DPTRMOVRETR1,ATAB:DB

7、END'0','1','2','3','4','9'9ORG0HCALLINITLOOP:CALLMOVEINCDPTRINCR0DJNZJMP $R7,LOOPINIT:MOVR7,#8MOVDPTR,#900HMOVRETR0,#30HMOVE:CLRAMOVCA,A+DPTRMOVRETENDR0,A10ORG0HMOVA,60HCJNEA,#25,NEXTMOVA,#2JMPOVRNEXT:JCLOWMOVA,#1JMPOVRLOW:MOVA,#3OVR:JMPEND$11ORG0HCALL

8、INITLOOP:CALLCHNGINCR0INCR1DJNZ R7,LOOPJMP $INIT: MOV R0,#40HMOV R1,#50HMOV R7,#10RETCHNG: MOV A,R0ADD A,#30HMOV R1,ARETEND第五章 I/O 端口教材 P131:1,4,7, 8;说明: 7,8 题的设计图可参考课件, 8题只要求 2 个按键,用查表的方式静态显示。 补充题:说明数码管动态显示的方法和编程步骤。参考解答7ORG0HMOV30H,#0MOV31H,#2MOV35H,#0 ;6 位学号MOVDPTR,#TABLOOP:CALLDISPLAYJMP LOOPDISP

9、LAY: MOV R0,#0FEHMOVR1,#30HMOVR2,#6LOP:CALLLED7 ;1 位 7 段数码管MOVA,R0RLAMOVR0,AINCR1DJNZR2,LOPRETLED7:MOVP2,R0MOVA,R1MOVCA,A+DPTRMOVP0,ACALLDELAY ;自己完成 200us 延时程序RETTAB:DBEND3FH,06H ;10 个显示码8ORG0HMOV30H,#0MOV31H,#1MOVDPTR,#TABMAIN:CALLKEY1CALLKEY2JMPMAINKEY1:JBP1.1,EXIT;第一个按键MOVA,30HCALLLED7EXIT:RETKEY

10、2:JBP1.2,EXT;第 2 个按键MOVA,31HCALLLED7EXT:RETLED7:MOVCA,A+DPTRMOVP0,ARETTAB:DB3FH,06H ;10 个显示码END第六章中断2 位动态显教材 P151: 2, 4;补充: 1简述子程序和中断服务程序的异同;2单个按键中断,得到加计数,示: 099。画出连接图。参考解答6-4MOVIE,#0B5H;1011 0101BMOVIP,#20H;0010 0000B补充 2ORG0H;P2 口送位码, P0 口送段码,按键接 INT0/P3.2JMPMAINORG03HJMPKEYMAIN:CALLINITLOOP:CALLD

11、ISPLAY;子程序略,见前面程序JMPLOOPINIT:MOV30H,#0MOV31H,#0MOVDPTR,#TABSETBIT0MOVIE,#81H;1000 0001BRETKEY:INC31H;个位加 1MOVA,#10CJNEA,31H,EXITMOV31H,#0;清零INC30H;十位加 1CJNEA,30H,EXITMOV30H,#0;清零EXIT:RETITAB:DB3FH,06H ;10个显示码END实验 2-1 :按键控制流水灯移动任务:每按一次按键, LED 移动一次程序说明:按键用inti。雷电2班李雅婷 传的作业无源程序,下面是我写的。ORG0HJMPMAINORG1

12、3HJMPKEYMAIN: MOVA,#0FEHMOVP0,ASETBIT1MOVIE,#84HJMP$KEY: RLAMOVP0,ARETIEND实验 2-2 :按键控制递减运算任务:每按一次按键,数码管的 4 位学号递减显示(加法见作业)int0程序说明:这是 雷电 2 班谭凯元 上传的,红色是我加的。按键用ORG 0000HJMP MAINORG 0003HJMP KEYMAIN: CALL INITLOOP: CALL DISPLAY JMP LOOPDISPLAY: MOV R0,#30HMOV R1,#08H MOV R2,#4 LOOP1: CLR P1.2;子程序使结构清晰明了

13、CLR P1.3CLR P1.4MOV A,R0MOVC A,A+DPTRCPL AMOV P0,R1SETB P1.2CLR P1.2MOV P0,ASETB P1.3;此三条应放在 INIT 中;宜用子程序调用的方法处理循环体CLR P1.3 LCALL DELAY INC R0MOV A,R1RR AMOV R1,ADJNZ R2,LOOP1SJMP DISPLAY;应为 RETDELAY: MOV R3,#10INIT:DJNZ R3,$RETMOV30H,#4MOV31H,#0MOV32H,#7MOV33H,#0MOVDPTR,#TABSETBIT0MOVIE,#81HRETDEC

14、33HMOVA,#0FFHCJNEA,33H,EXITMOV33H,#9DEC32HCJNEA,32H,EXITMOV32H,#9DEC31HCJNEA,31H,EXITKEY:;应保存 A 的数据,因为主程序使用了,冲突MOVDEC31H,#930HEXIT:RETITAB:DB3FH,06H ,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,76HEND第七章 定时/ 计数器1, AT89C51 单片机有几个定时 /计数器,它们有几种工作方式,各方式有何区别? 2,单片机的定时 /计数器工作在计数方式时,在什么情况下可以定时?教材P179: 4, 6 (要求用定时/计数器

15、TO) , 7。参考解答1 ,要求回答 4 种方式的区别。2,当外部脉冲信号的频率固定时,可定时。7-4,让 TO、T1 轮流交替工作,简单易懂。TO 定时, T1 计数ORGMOVLOOP: CALLCALLJMPTOTMR: MOVMOVSETBJNBCLRCLRRETT1CNTR:MOVMOVSETBJNBOHTMOD,#51HTOTMRT1CNTRLOOPTHO,#HIGH(-2OOO)TLO,#LOW(-2OOO)TROTFO,$TFOTROTH1,#HIGH(-1OOO)TL1,#LOW(-1OOO)TR1TF1,$CLR TF1CLR TR1RETEND7-6,要点是160ms必

16、须用软件计数 结合定时得到,可用中断方法ORG OJMP MAINORG 0BHJMPT0ISRMAIN:CALL INITJMP$INIT:MOVTMOD,#01MOVTH0,#HIGH(-10000)MOVTL0,#LOW(-10000)SETBTR0MOVIE,#82HMOVR0,#0SETBP1.2RETT0ISR:MOVTH0,#HIGH(-10000)MOVTL0,#LOW(-10000)INCR0CJNER0,#5,LOW16CLRP1.2JMPEXITLOW16:CJNER0,#21,EXITSETBP1.2MOVR0,#0EXIT:RETIEND7-7,只能用T1,同课堂例子

17、相似,初始化如下:MOV TMOD, #90HMOV TH1, #0MOV TL1, #0SETB TR1实验3-1 :硬件定时控制LED闪烁任务:硬件定时控制 LED亮180ms,灭1200ms,循环程序说明:这是电科1班唐陈上传的,红色是我加的。P0 口置低时控制LED亮,定时为60ms, 结合软件计数得到长定时,用查询方式判断是否溢出ORG 0000HAjmpmainmain:Loop:mov r0, #0mov p0, #00hmov tmod, #01h;本条指令为初始化,宜放在 Loop 外面mov th0, #high(-60000);初值未按实际频率11.0592 计算,应为

18、55296Loop1:mov tl0, #low(-60000) setb tr0jnb tf0, $clr tf0inc r0cjne r0, #3, LOOP mov p0, #0ffh mov tmod, #01h;已经设定好,无需重复操作;已经启动,无需重复操作mov th0, #high(-60000) mov tl0, #low(-60000) setb tr0 jnb tf0, $ clr tf0 inc r0cjne r0, #23, LOOP1 jmp mainend实验 3-2 :电子钟设计任务: 4 位显示电子钟,表示分和秒只显程序说明: 这是雷电 1 班廖建伟 上传的并

19、带有说明,红色是我加的。定时用中断处理, 示了两位ORG 0000H LJMP mainORG 000BHLJMP timer0*主函数*main: LCALL intinit/ 定时器 T0 中断初始化子程序LCALL disinit/ 数码管显示初始化子程序;清晰有条理dis: LCALL disfunc/ 数码管显示子程序LJMP dis*显示初始化子程序*disinit: MOV R3, #05HMOV R4, #07HMOV DPTR, #TABinitCLR P1.3;这两条可删出CLR P1.2CLR P1.4/ 为了关闭仿真或者开发板上的流水灯的闪烁。可不写RET*中断初始化子

20、程序*intinit: MOV R7, #00HSETB EA / 开总中断SETB ET0/ 开定时器中断MOV TMOD, #01H/ 选定定时器模式 1MOV TH0, #high(-46080)/ 定时 50msMOV TL0, #low(-46080)SETB TR0 / 开启定时器RET;计算认真*数码管显示子程序*disfunc: MOV A, R3MOVC A, A+DPTRCPL A /由于用的是共阳数码管 ,故取反MOV P0, ASETB p1.3CLR P1.3 MOV P0, #02H SETB p1.2MOV P0, #00HCLR P1.2 MOV A, R4 M

21、OVC A, A+DPTR CPL AMOV P0, A SETB p1.3 CLR P1.3MOV P0, #01H SETB p1.2MOV P0, #00HCLR P1.2RET/* 定时器中断服务子程序;宜先送位码后送段码;可删出;宜用 4 位循环方式*timer0: MOV TH0, #high(-46080) MOV TL0, #low(-46080) INC R7CJNE R7, #20, exitMOV R7, #00HINC R4CJNE R4, #10, exitINC R3MOV R4, #00H CJNE R3, #6, exitMOV R3, #00Hexit: RE

22、TI*共阴码表*TABinit: DB0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6fEND第八章 串口10 个字符放在教材 P210: 1, 2,3(补充:如何处理这些标志)和 18(补充:发送后接收 片内 40H 开始的单元中)题。解答提示:1 单片机的 P3 端口,引脚 P3.0/RXD , P3.1/TXD2 SBUF ,写入的数据 不能读取3 识别后要将 RI 和 TI 清 018发送a-z,不必用DB的方法建表,递加就可以了。根据公式,时钟频率为22.1184MHz ,初值为-1,且SMOD为1时,波特率满足要求的

23、115.2Kbps。用查询简单些,不用中断org 0acall initacall sendacall receivejmp $init:mov scon, #52hmov tmod, #20hmov th1, # -1mov tl1, # -1mov pcon, #80hsetb tr1mov a, #'A'mov r7, #26mov r6, #10mov r0,#40hretsend:jnb ti, $mov sbuf, aclr tiinc adjnz r7, sendretreceive: jnb ri, $clr rimov a, sbufmov r0, ainc

24、r0djnz r6, receiveretend实验 4-1 :发送问候语任务:以 9600 的波特率发送 Hello CUIT程序说明:跟上面的作业相似, 只需 修改初值,将字符放在表中, 查表取出发送org0000hacallinitLOOP: JNBTI, $ClraMovc a, a+dptr MOVSBUF, ACLR TIINC dptrJNZ LOOP SJMP $init:MOVSCON, #01010010BORLPCON, #10000000BMOVTMOD, #20HMOVTH1, #-6SETBTR1Movdptr, #tabretTab:DB“Hello CUIT ”

25、,0END实验 4-2 :接收字符并回发任务:以 9600 的波特率接收对方发的字符并回发给对方 程序说明:跟上面的作业相似,接收后不需保存, 只需 发送给对方 org 0 acall initloop: acall receivejmp loopinit:mov scon, #52hmov tmod, #20hmov th1, # -6mov tl1, # -6mov pcon, #80hsetb tr1retreceive: jnb ri, $clr rimov a, sbufmov sbuf, aretend第九章 系统扩展教材 P248:1,2,4,6,8,10,11,16 和 20。

26、解答提示及参考:2 容量由地址信号线的数量决定;4 ALE6 不需要8 1FFFH10 接 Y6 的存储器: 0C000H0DFFFH ,接 Y7 的存储器: 0E000H0FFFFH16org 0MOV DPTR, #7000H CLR AGOUP: MOVX DPTR, A NOP INC A CJNE A, #206, GOUP ;如没到 4V 则继续增加,否则下降DOWN: DEC ANOPMOVX DPTR, AJNZ DOWNJMP GOUP;新的上升周期End20org 0mov dptr, #7fffhloop: movx dptr, a jb P3.2 $ movx a, d

27、ptr cjne a, #154, check; 小于 3V 则继续测量,否则结束check: jc loop jmp $ end实验 5-1 :三总线扩展法显示数码管任务:在 2号卡的数码管上显示 4 位学号 程序说明:动态扫描显示, 注意 送位码和段码的操作与原来不同 org 0 call init loop: call display jmp loopinit: mov 30h, #3 mov 31h, #0 mov 32h, #1 mov 33h, #2 ret display: mov r7,#4 mov r1,#08h ;0000 1000 mov r0,#30h lp: call

28、 led7 mov a,r1 rr a mov r1,a inc r0 djnz r7,lp ret led7: mov a,r1 mov dptr, #0c000h movx dptr, a mov a,r0 mov dptr,#tab movc a,a+dptr cpl a mov dptr, #0d000h movx dptr,a mov r6,#80 djnz r6,$ rettab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end实验 5-2 : 8255的 I/O 控制 任务: B 口分别控制 A 口的 LED 亮灭 程序说明:先初始化

29、,循环结构中输入再输出INIT:ORG 0 CALL INIT LOOP: MOV DPTR, #0E001H MOVX A, DPTR NOP DEC DPL MOVX DPTR, A JMP LOOP MOV A, #8BH ;1000 1011 MOV DPTR, #0E003HMOVX DPTR, ARETEND实验 6-1 :利用 D/A 转换产生正弦波任务:产生周期正弦信号 程序说明:查表取出正弦波电压对应的数值,送到 D/A 端口,循环 dac equ 0xa000*ORG0000Hstart:MOVr7,#00HDA_sin: MOV A,R7MOVDPTR,#sinMOVCA,A+DPTRMOVDPTR,#dacMOVXDPTR,AINCR7cjner7,#101,da_sinAJMPstartSIN: db 127,135,143,151,159,167,174,181,189,196,202,209 db 215,220,226,231,235,239,243,246,249,251,

温馨提示

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

评论

0/150

提交评论