河北工业大学单片机课程设计
- 格式:doc
- 大小:472.50 KB
- 文档页数:7
实验八查表程序设计一、实验目的1.进一步熟悉MCS-51指令系统和汇编语言程序设计。
2.学会用MOVC指令编写查表程序。
二、实验内容1.设计并调试一个查平方表的程序,其功能为应用查表指令MOVC A,@A+PC,求累加器A中数的平方值,结果平方值送A。
要求待查的(A)≤15。
2.设计并调试一个根据电压值查与其对应的温度值的查表程序,其功能为应用查表指令MOVC A,@A+DPTR,求(A)中电压值对应的温度值,将温度值送R2R3(温度值为二字节的压缩BCD码),电压值的范围为(A)≤0FFH。
实验程序参考框图如3-8所示。
三、实验步骤1.键入程序和预定表后;2.通过修改自变量参数启动并调试程序,直至正确为止。
3.边调试边体会用PC或DPTR作指针查表的区别。
四、实验报告要求根据实验内容和程序参考流程,编出所需查表程序,列出实验程序清单。
五、思考题1.当表的长度〉255个字节时应选哪一条指令查表?答:当表的长度〉255个字节时应选“MOVC A,@A+DPTR”指令查表,并且需要对DPH、DPL进行运算处理,求出表目地址,再用“MOVC A,@A+DPTR”指令查表。
2.用PC指针查表编程时应注意什么?答:应先用传送指令把所查数据的项数送入累加器A,并用“ADD A,#data”对A进行修正data值等于查表指令和数据表格之间的字节数,然后用“MOVC A,@A+PC”查表,同时用PC指针查表的表的范围不能大于255个字节。
六、参考程序清单1.求平方值查表程序:ORG 0000HADD A,#02HMOVC A,@A+PCSJMP $DB 0,1,4,9,16,25 36,49DB 64,81,100,121,144,169,196,225END本程序实现通过查表得A累加器中数的平方值并将结果送A,根据A中数值采用基址加变址方法找到所查数的地址得所对应的平方数。
例:当(A)=5时,执行过程如下:D:0XE0(A)PC指针 ORG 0000H 05HC:0X0000 ADD A,#02H 07HC:0X0002 MOVC A,@A+PC 19H ;A+PC=A(10),查表的19H(25) C:0X0003 SJMP $C:0X0005 DB 0,1,4,9,16,25 36,49DB 64,81,100,121,144,169,196,225END2.测量温度查表程序:双字节查表程序刘程序如图3-8所示:双字节查表参考程序清单:ORG 0000HMOV DPTR,#TABMOV R0,AADD A,R0MOV F0,CADD A,DPLMOV DPL,ACLR AADDC A,DPHMOV C,F0ADDC A,#0MOV DPH,ACLR AMOVC A,@A+DPTR ;查第一个字节MOV R2,ACLR AINC DPTRMOVC A,@A+DPTR ;查第二个字节MOV R3,ASJMP $TAB:DW 0100H,0110H,0120H,0130H,0140H,0150H,0160H ;温度表END本程序实现根据A中电压查表中与之对应的温度值,表中温度均为2字节故(A)*2+DPTR(表首地址)即可查的对应温度值。
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计报告一、题目:简易计算器二、目的:培养学生综合利用汇编语言进行程序设计的能力,主要是培养学生利用DICE-598H+综合实验台的扩展部件进行应用程序设计的技能。
三、基本要求:(1)能够完成整数常数的四则运算,不要求支持运算符的优先级。
(2)计算规则为十进制,输入数字情况及计算结果均应在上方的显示部件上进行显示,输入的运算符不要求显示。
(3)用ABCD键分别代表加减乘除四则运算符。
(4)E键进行初始化,清除内存中的数(相当于计算器的ON键),F键清除当前输入的数据(相当于普通计算器的CE键)。
(5)出错处理:操作数如果不符合数学上的定义,应该给出错误信息。
例:0做除数等情况。
四、主要问题:设计键盘输入部分并转换为相应的数值,在显示的同时进行保存,碰到运算符要马上进行运算处理并将结果送显示缓冲区。
从而完成简单的数值四则运算效果。
五、总体设计:利用单片机理论设计科学的简易计算器,来完成基本的初级四则运算过程。
六、软件系统的应用:主程序流程图见下页。
主程序流程图:七、程序源代码:org 0000hop equ 20hop1 equ 21hop2 equ 22h start: mov sp,#60hmov dptr,#0ff20hmov a,#03hmovx @dptr,amov 70h,#00mov op, #00mov op1, #00mov op2, #00key1: acall ks1jnz lk1n1: acall dirajmp key1lk1: acall diracall diracall ks1jnz lk2acall dirajmp key1lk2: mov r2,#0fehmov r4,#0lk4: mov dptr,#0ff21hmov a,r2movx @dptr,ainc dptrinc dptrmovx a,@dptrjb acc.0,lonemov a,#07hajmp lkplone: jb acc.2,nextmov a,#01hajmp key1lkp: add a,r4mov 51h,acjne a,#0ah,l1mov op,aajmp key1l1: jc qqmov op,aajmp key1qq: mov a,opjnz m2m1: mov a,#10mov b,op1mul abadd a,70hmov op1,apush accajmp ppm2: mov a,#10mov b,op2mul abadd a,70hmov op2,app: mov 70h,apush acclk3: acall diracall ks1jnz lk3pop accajmp key1next: inc r4mov a,r2jnb acc.7,kndrl amov r2,aajmp lk4knd: ajmp key1ks1: mov dptr,#0ef21hmov a,#0movx @dptr,ainc dptrinc dptrmovx a,@dptrcpl aanl a,#1fhretdir: cpl p1.0mov r0,#70hmov a,@r0anl a,#0fhmov 30h,amov a,@r0swap aanl a,#0fhmov 31h,amov r0,#30hmov r3,#01hdo1: mov a,r3mov dptr,#0ef21hmovx @dptr,ainc dptrmov a,@r0add a,#0dhmovc a,@a+pcdir1: movx @dptr,aacall dlmov a,r3rl ajb acc.2,ld1mov r3,ainc r0ajmp do1ld1: retdseh: db 0f8h,99h,80h,92h,90h,82h,88h,83hdb 0f9h,0c0h,0a4h,081h,0b0h,086h,0c6h,0a1h dl: mov r7,#2dl1: mov r6,#0ffhdl2: djnz r6,dl2djnz r7,dl1retcalc: mov r7,opcjne r7,#0ah,notaddclr cmov a,op1add a,op2sjmp fcalcnotadd: cjne r7,#0bh,notsubclr cmov a,op1subb a,op2sjmp fcalcnotsub: cjne r7,#0ch,notmulclr cmov a,op1mov b,op2mul absjmp fcalcnotmul: clr cmov a,op1mov b,op2div absjmp fcalcfcalc: mov 50h,aanl a,#0fhmov 72h,amov a,50hswap aanl a,#0fhmov 73h,adisp: mov r3,#01hmov r0,#70hmov a,r3mov dptr,#0ff21hmovx @dptr,amov dptr,#0ff22hmov a,@r0add a,#03hmovc a,@a+pcmovx @dptr,aacall dlaydb 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,db 80h,90h,88h,83h,0c6h,0a1h,86h,8ehdlay: mov r7,#02hdlay1: mov r6,#0ffhdlay2: djnz r6,dlay2djnz r7,dlay1rete n d八、硬件系统应用:利用以上的键盘来完成数据的输入,用“A .B.C.D.E.F”分别代表“+.-.*./”运算符.来完成数据的四则运算过程。
工业设计单片机课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握工业设计单片机的基本原理、硬件结构和编程方法;技能目标要求学生能够运用单片机进行简单的工业设计实践,如控制电机转速、读取传感器数据等;情感态度价值观目标要求学生培养对工业设计的兴趣和热情,提高创新意识和团队协作能力。
通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。
学生将能够:1.描述单片机的基本原理和硬件结构;2.编写简单的单片机程序,实现基本功能;3.结合传感器和执行器,完成简单的工业设计项目;4.表达自己的设计思路,与团队成员协作完成项目。
二、教学内容根据课程目标,我们选择和了以下教学内容:1.单片机的基本原理和硬件结构:介绍单片机的工作原理、主要组成部分及其功能;2.单片机编程:学习单片机的编程语言,掌握基本指令和编程技巧;3.工业设计实践:通过案例分析,学习如何将单片机应用于工业设计,如电机控制、传感器读取等;4.团队协作与创新:培养学生团队合作意识和创新精神,鼓励学生表达自己的设计思路,完成项目。
教学大纲如下:第1周:单片机的基本原理和硬件结构;第2周:单片机编程基础;第3周:工业设计实践(一);第4周:工业设计实践(二);第5周:团队协作与创新。
三、教学方法我们将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解单片机的基本原理和硬件结构、编程方法等基础知识;2.讨论法:通过小组讨论,引导学生思考和解决问题;3.案例分析法:分析实际工业设计案例,让学生了解单片机的应用场景;4.实验法:动手实践,让学生在实际操作中掌握单片机编程和应用技巧。
四、教学资源我们将准备以下教学资源,以支持教学内容和教学方法的实施,丰富学生的学习体验:1.教材:选用权威、实用的教材,如《单片机原理与应用》;2.参考书:提供相关领域的参考书籍,供学生拓展阅读;3.多媒体资料:制作精美的PPT、教学视频等,帮助学生更好地理解知识;4.实验设备:准备单片机开发板、传感器、执行器等实验设备,让学生动手实践。
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计任务书学院班级设计人成绩一、题目:微波炉的加热时间的设置二、要求:1.基本要求:(1)利用汇编语言编制出实现其功能的程序;(2)利用现有的实验设备将程序调试通过。
2.创新要求:在基本要求达到后,进行创新设计,比如:如果炉门没有关闭,用一个灯闪烁来提示用户;在设置加热时间时,加热时间增1,可以减1等。
三、问题描述和设计方法:1.问题描述:微波炉可以加热食物。
当用户将食物放入微波炉中后,首先关闭炉门,然后设置加热时间(0-255)。
假定设定的加热时间的默认值为0。
若关闭炉门,Led显示器显示“OK”;这时可以设置加热时间,每按下一次“设置”按钮,加热时间增1,超出100,不再增加;Led显示器以十进制数显示设定的加热时间。
若没关闭炉门,小灯闪烁,以示提醒。
fosc=6MHz2.问题的解决方案:(1)将一个拨动开关与P3.0相连,用拨动开关来模拟炉的关闭;将P1.0接一个发光二极管,利用该发光二极管的亮灭来模拟炉的状态;将P1.1接一个发光二极管,利用该发光二极管的闪烁来提醒用户未关闭炉门。
(2)将按钮开关与一个外部中断的输入端相接,通过外部中断来模拟开始“设置”按钮。
四、主要技术问题的描述:本题主要技术点有如下几个:(1)主程序可以采用循环的办法,不断检测炉门是否关闭,即检测P3.0; P3.0=0为炉门关闭,P1.0所接一个发光二极管亮,开外部中断; P3.0=1,则表示炉门没关闭,P1.0所接一个发光二极管灭,P1.1接一个发光二极管闪烁,关外部中断;调用显示子程序。
(2)设置加热时间时,每按一次按钮开关,时间就增1,并与255相比较,超出255,保持时间不变。
(3)编制一个将加热时间转化为三位十进制数的子程序和显示子程序,供加热时来调用。
五、书写设计报告的要求设计报告中包含以下几个方面:1、设计题目2、描述所实现的功能。
3、描述设计方案。
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计报告书一、题目:低频脉冲信号发生器二、设计思路:该程序不用连线,或检查脉冲时可用P1.0口连个小灯即可。
四、程序清单和注释:ORG 0000HJB P1.6 ZZ ;P1.6=1转移到ZZMOV 31H,#3CH ;给定时器0赋初值MOV 30H,#0B0HMOV 79H,#10H ;给数码管赋值5MOV 7AH,#10HMOV 7BH,#10HMOV 7CH,#10HMOV 7DH,#01HMOV 7EH,#00HAJMP MAIN ;转移到主程序ORG 002BHAJMP TOS ;转移到T/C0的中断服务程序TOSZZ: MOV 31H,#9EHMOV 30H,#58HMOV 79H,#10HMOV 7AH,#10HMOV 7BH,#10HMOV 7CH,#10HMOV 7DH,#02HMOV 7EH,#00HAJMP MAINORG 002BHAJMP TOS;产生低频定时脉冲MAIN: MOV SP,#4FHMOV TMOD,#01H ;置T/C0为方式1,定时MOV TH0,#31HMOV TL0,#30HMOV IE,#82H ;CPU开中断,T/C0允许中断SETB P1.0SETB TR0 ;启动T/C0定时LOOP: SJMP LOOP ;等待中断TOS: MOV TH0,#31HMOV TL0,#30HCPL P1.0 ;输出方波SJMP DISP ;转到数码管显示RETI;显示子程序DISP: MOV A,#03H ;方式控制字03H送AMOV DPTR,#0FF20HMOVX @DPTR,A ;方式控制字送8155命令口DISP4: MOV R5,#01H ;位选端指向最左一位显示器 MOV R0,#79HMOV A,R5LD0: MOV DPTR,#0FF21H ;位码送位选端MOVX @DPTR,AMOV DPTR,#0FF22HMOV A,@R0 ;待显字符地址偏移量送A ADD A,#0EHMOVC A,@A+PC ;查段码表MOVX @DPTR,AACALL DLAY ;延时1MSINC R0MOV A,R5JB ACC.5,LD1 ;显示一遍则返回RL A ;位码左移一位MOV R5,AAJMP LD0 ;显示下一个数码LD1: SJMP DISP4DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;字码表DB 82H,0F8H,80H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89HDB 0C8H,0C1H,7FH,0BFHDLAY: MOV R7,#02H ;延时子程序DL1: MOV R6,#0FFHDL2: DJNZ R6,DL2DJNZ R7,DL1RETEND五、更完善方案和创新:该程序采用的是P1.0连接的开关设定的频率,同样,也可以采用键盘设定,采用键盘设定是比较麻烦些,但设定的范围可大大的提高,设定也更加方便,功能更加强大。
河北⼯业⼤学单⽚机习题答案第⼀章思考题及习题1-1请写出下列各⼗进制数在⼋位微型机中的原码、反码和补码形式:(1)X=⼗48 (2)X=+123 (3)X=-34 (4)X=-1151-2将下列数看作⼋位微型机中带符号数的原码、反码和补码时,写出相应的真值:(1)10110110B (2)01000101B (3)11110010B (4)10101101B1-3 写出下列各数的BCD码:(1)47 ---47H 0100 0111B (2)78 --78H 0111 1000B(3)1996 --1996H 0001 1001 1001 0110B (4)115 --115H 0001 0001 0101B 1-4 ⽤⼗六进制形式写出下列字符的ASCll 码:1-5将下列数据进⾏加法和减法运算,写在前⾯的数为被加数或被减数(写出竖式)。
(1)97H和OFH (2)0A6H和33H (3)0F3H和0F4H (4)0B6H和0EDH⼀、加法(1)97H和OFH被加数 1 0 0 1 0 1 1 1 B =97H加数0 0 0 0 1 1 1 1 B =0FH+和 1 0 1 0 0 1 1 0 B =A6HC8=0 ,C7=0 0V =0 ,CY =0分析:⽆符号数: CY=0, 97H+0FH=0A6H=166 ∵151+15=166带符号数: OV=0, 97H+0FH=0A6H 真值=-5AH=-90 ∵-69H+15=-105+15=-90被加数 1 0 1 0 0 1 1 0 B =A6H加数0 0 1 1 0 0 1 1 B =33H+和 1 1 0 1 1 0 0 1 B =D9HC8=0 ,C7=0 0V =0 ,CY =0分析:⽆符号数: CY=0, A6H+33H=0D9H=217 ∵166+51=217带符号数: OV=0, A6H+33H=0D9H 真值=-27H=-39 ∵-5AH+51=-90+51=-39(3)0F3H和0F4H被加数 1 1 1 1 0 0 1 1 B =F3H加数 1 1 1 1 0 1 0 0 B =F4H+和 1 1 1 1 0 0 1 1 1 B =E7HC8=1 ,C7=1 0V =0 ,CY =1分析:⽆符号数: CY=1, F3H+F4H=100H+0E7H=1E7H=487 ∵243+244=487带符号数: OV=0, F3H+F4H=0E7H 真值=-19H=-25 ∵-13+(-12)= -25(4)0B6H和0EDH被加数 1 0 1 1 0 1 1 0 B =B6H加数 1 1 1 0 1 1 0 1 B =EDH+和 1 1 0 1 0 0 0 1 1 B =A3HC8=1,C7=1 0V =0 ,CY =1分析:⽆符号数: CY=1,B6H+EDH=100H+0A3H=1A3H ∵182+237=419带符号数: OV=0, B6H+EDH=0A3H 真值=-5DH=-93 ∵-4AH-13H=-74-19=-93⼆、减法:(1)97H和OFH被减数 10010111B求补进位 111110111差10001000B分析:⽆:CY=/C8=/1=0,∵97H-0FH=88H, 151-15=136带:C8=1,C7=1 OV=0, ∵97H-0FH=88H, 真值=-78H=-120 ∴ -105-15=-120(2)0A6H 和33H差 101100011B分析:⽆:CY=/C8=/1=0,∵0A6H-33H=73H, 166-51=115带:C8=1,C7=0,OV=1, ∵0A6H-33H=63H, OVER ∴ -90-51=-141<-128(3)0F3H 和0F4H差 11111111B分析:⽆:CY=/C8=/0=1,∵0F3H-0F4H=-100H+0FFH=-1带:C8=0,C7=0,OV=0, ∵0F3H-0F4H=0FFH, 真值=-(00H-0FFH )=-1(4)0B6H 和0EDH差 11001001B分析:⽆:CY=/C8=/0=1,∵0B6H-0EDH=-100H+0C9H=-37H=-55带:C8=0,C7=0,OV=0, ∵0B6H-0EDH=0C9H, 真值=-(00H-0C9H )=-37H=-551-6 完成下列数据的乘除运算,写在前⾯的数为被乘数或被除数(写出竖式)。
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计任务书学院:化工学院班级:制药061 设计人:李鹏学号:061170 同组人:杨建课题:汽车信号灯控制系统设计一.目的与要求(1)培养学生综合利用MCS-51单片机的软硬件知识进行程序设计的能力,解决一些实际问题。
(2)进一步加深对MCS-51单片机内部结构和程序设计方法的理解。
(3)提高学生建立程序文档、归纳总结的能力。
二.总体设计(1)车辆转弯时,相应一侧之前灯、尾灯及仪表板指示灯均应闪烁。
即左转时,左头灯、左尾灯、仪表板左转弯灯闪烁,右转时则右头灯、右尾灯和仪表板右转弯灯闪烁;(2)紧急开关闭合时要求前述6个信号灯全部高频闪烁;(3)刹车时2个尾灯亮,若转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁;(4)一般闪烁时频率时1HZ,快速闪烁时频率为3HZ。
通过6个发光二级管模拟两个头灯、两个尾灯和仪表盘上的两个指示灯。
利用开关模拟左转、右转、应急、刹车的状态,使信号灯相应闪烁。
通过定时/计数器控制灯的闪烁频率。
三.硬件系统设计本课题中将要使用的硬件资源和相应的资源分配如下:①定时器/计数器TC/0和定时器/计数器TC/0,都采用方式1定时,与软件计数器相结合; ②四个开关(k1,k2,k3,k4)的开合来表示汽车当前的状态; ③用六个二极管来代替六个显示灯。
四.软件系统设计↓↓↓↓↓↓↓五.程序清单ORG 0000HLJMP MAIN ;转到主程序ORG 000BHLJMP T0ISR ;转到T/C0的中断服务程序T0ISRORG 001BHLJMP T1ISR ;转到T/C1的中断服务程序T1ISRORG 0030H主程序:MAIN: MOV SP,#30HMOV TMOD,#11H ;置 T/C0 方式1,定时;T/C1方式1,定时MOV TH0,#9EHMOV TL0,#58H ;装入T/C0定时初值MOV TH1,#0DFHMOV TL1,#73H ;装入T/C1定时初值SETB ET0 ;T/C0允许中断SETB ET1 ;T/C1允许中断SETB EA ;CPU开中断MOV P1,#0FFH ;灯全灭MOV R7,#00HMOV R6,#00H开关控制程序:LOOP: SETB P3.0JB P3.0,EMER ;刹车开关闭合继续执行,否则跳转CLR P1.4 ;点亮p1.4,左尾灯亮CLR P1.5 ;点亮p1.5,右尾灯亮EMER: SETB P3.1JB P3.1,LEFTT ;应急开关闭合继续执行,否则跳转CLR TR0SETB TR1 ;启动TR1LEFTT: SETB P3.2JB P3.2,RIGHTT ;左转开关闭合继续执行,否则跳转CLR PSW.5 ;设左转状态标志位CLR TR1SETB TR0 ;启动TR0RIGHTT: SETB P3.3JB P3.3,NONE ;右转开关闭合继续执行,否则跳转SETB PSW.5 ;设右转状态标志位CLR TR1SETB TR0 ;启动TR0NONE: MOV A,P3ANL A,#0FHCJNE A,#0FH,LOOP ;所有开关都打开,继续执行;否则跳转MOV P1,#0FFH ;所有灯全灭LJMP LOOP中断服务程序:T0ISR: CJNE R6,#00H,T0ISR1JB PSW.5,T0ISRRE1 ;左转开关闭合,继续;否则跳转CLR P1.0 ;点亮P1.0;左前灯亮CLR P1.2 ;点亮P1.2;左仪板显示灯亮CLR P1.4 ;点亮P1.4;左尾灯亮AJMP T0ISR1T0ISRRE1: CLR P1.1 ;点亮P1.1;右前灯亮CLR P1.3 ;点亮P1.3;右仪板显示灯亮CLR P1.5 ;点亮P1.5;右尾灯亮T0ISR1: MOV TH0,#9EHMOV TL0,#58HINC R6CJNE R6,#10D,T0ISR2 ;灯亮半秒JB PSW.5,T0ISRRE2SETB P1.0SETB P1.2SETB P1.4 ;所有左灯全灭AJMP T0ISR2T0ISRRE2: SETB P1.1SETB P1.3SETB P1.5 ;所有右灯全灭T0ISR2: CJNE R6,#20D,T0ISRRET ;灯灭半秒后,一秒延时到MOV R6,#00HCLR TR0T0ISRRET: RETI ;中断返回T1ISR: CJNE R7,#00H,T1ISR1MOV P1,#00H ;点亮所有灯T1ISR1: MOV TH1,#0DFHMOV TL1,#73HINC R7CJNE R7,#10D,T1ISR2MOV P1,#0FFHT1ISR2: CJNE R7,#20D,T1ISRRETMOV R7,#00HCLR TR1T1ISRRET: RETIEND六.调试程序的基本方法1)、首先从实验书上查出与p3.0、p3.1、p3.2、p3.3对应的接口,然后拿四根电线分别于四个开关相连。
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计报告学院土木班级交通工程C021班设计人田立全学号 026885一、设计题目:利用单片机取得随机数二、问题的提出:利用单片机的中断和定时器/计数器相结合产生一个6位的二进制随机数(即产生一个0-63之间的一个随机数)。
每当按下按钮之后,在LED显示器上显示这个二进制的随机数。
三、总体设计:1.所设计题目的功能:可以利用定时器/计数器进行自动重装载的计数,当触发中断的时候读出定时器/计数器的计数值作为产生的随机数。
整个程序分为两个部分,主程序部分负责定时器/计数器的初始化、中断系统初始化和LED显示三部分功能。
外部中断处理部分的程序负责取定时器/计数器中的随机数,然后取该数的低六位,然后将这个数转化为六个字节的二进制数(例如:将25h转变为:01h,00h,01h,00h,00h,01h)。
然后利用LED显示器显示这6个字节的数据。
2.总体方案设计:(1)断源的选择因为定时器/计数器只是在外部中断被触发的时候负责提供数据,所以虽然我们用到了定时器/计数器,但是它并不是一个中断源,即本系统的中断源只有一个外部中断。
(2)二进制转换的实现进制转换可以利用除二取余法。
四、 硬件系统设计 硬件电路:五、软件系统设计 1. 程序清单ORG 0000HAJMP MAIN;INT0 ENTERENCEORG 0003H AJMP INTER0ORG 0200HMAIN: MOV SP, #6FH;SET TIMMERMOV TMOD, #20HMOV TH1, #00HMOV TL1, #00HSETB TR1;ENABLE INTERRUPTSETB EX0SETB PX0SETB IT0SETB EAAJMP DSPLY;DISPLAY AND W AIT FOR INTERRUPTORG 0300HDSPL Y: MOV A, #03HMOV DPTR, #0FF20HMOVX @DPTR, ADSPL Y1: MOV R3, #01HMOV R0, #30H ;RESULT ENTRANCEMOV A, R3LD0: MOV DPTR, #0FF21HMOVX @DPTR, AMOV A, @R0MOV DPTR, #DTABMOVC A, @A+DPTRMOV DPTR, #0FF22HMOVX @DPTR, AACALL DELAYINC R0MOV A, R3JB ACC.5, LD1RL AMOV R3, AAJMP LD0LD1: SJMP DSPLY;DELAY FOR 1MSDELAY: MOV R7,#02HDL1: MOV R6,#0FFHDL2: DJNZ R6, DL2DJNZ R7, DL1RETORG 0400HINTER0: MOV A, TL1 ;READ COUNTERANL A, #00111111B;REQUIRE LAST 6 BITS AND 00111111BMOV R1, #30H;RESULT MEM ADDRESS STARTMOV R0, #06H ;LOOP FOR 6 TIMES ;CLEAR MEMMOV 0030H,#00HMOV 0031H,#00HMOV 0032H,#00HMOV 0033H,#00HMOV 0034H,#00HMOV 0035H,#00H;DIV LOOPLOOPED1: MOV B, #02HDIV ABMOV @R1, BINC R1DJNZ R0, LOOPED1RETIDTAB: DB 0C0H, 0F9HEND2.流程图。
计算机硬件技术基础(单片机)课程设计教学大纲适用专业:工科类(非计算机专业)适用课时数:1周课程设计学分:1学分一、性质和目的“计算机硬件技术基础”课程设计是完成教学计划达到工科大学本科生培养目标的重要环节,是教学计划中进行综合训练的重要实践环节,它将使学生在综合运用所学知识,解决本专业方向的和生活实际问题方面得到系统性的训练。
它对提高学生的创新能力及实践能力和进一步优化学生的知识结构和能力结构有重要意义。
本课程设计的任务是在学完“计算机硬件技术基础(MCS-51单片机)”课程之后,要求学生综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,使学生加深对单片机软硬件知识的理解,获得初步的应用开发能力和经验,为后续课或毕业设计或走出校门从事相关工作打下基础。
课程设计的目的是在学生进行课程设计的同时提高学生的独立获取知识的能力、实践能力和创新能力、分析问题和解决问题的能力、书面表达能力;培养学生探索精神和科学素质,增强自信心和克服困难的勇气和决心,以及培养学生的团队精神和协作学习。
二、设计组织与实施1、设计任务书由指导教师提供,由学生选择,可以一到两人一组,每班不能选重题;为了充分发挥学生的主动性、兴趣性、创新性、探索性,也可以在指导教师的指导下,由学生自己拟定题目和任务书。
2、对能力较强的同学可以直接按设计任务的要求进行设计,其他同学可给出部分参考程序和方案,指导同学先读懂程序、理解设计方案后再自己动手修改补充程序,并正确连线、构成硬件电路,通过独立调试实现设计方案。
三、内容和基本要求1、设计内容设计题目内容主要涵盖所学知识,具有较强的综合性、系统性、趣味性、实用性,对能力较强的学生可以拓展知识,采用课上没有讲授的知识。
2、设计和调试要求要求学生按设计任务书中的要求制订方案,在现有的开发装置上配置相关硬件,独立地正确地进行连线,在计算机上编辑汇编语言源程序、编译(汇编)、联机调试、直至正确地实现系统功能。
3.3汇编语言程序设计实验实验六 分支程序设计一、 实验目的1. 进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
2. 掌握分支结构程序设计的方法。
3. 学会用条件转移指令、CJNE 、JMP 及其配合使用来编写二分支、三分支和多分支程序。
二、 实验内容1. 二分支的条件转移程序设变量X 存放于R0,函数值Y 存放在R1,其中X 、Y 均为二进制数。
试按照下式的要求给Y 赋值:程序框图如图3-5所示:Y= 1 X>0 0 X=0 -1 X<0:三、实验步骤1.根据实验内容和参考程序流程图,编出相应的分支结构程序。
2.输入程序,汇编成功;3.用F4(执行到光标处)、F7(跟踪执行)、F8(单步执行)或断点运行等方式调试程序;4.观察程序的流程,记录运行结果。
四、思考题1.CJNE指令对CY 有影响吗?用CJNE 和JC/JNC指令配合应注意什么?在用JMP 指令前,若变址 255怎么办?答:1)CJNE指令对CY 有影响。
CJNE (目的字节),(源字节),rel 功能:目的字节与源字节比较,相等则继续执行,不相等则转移,同时,若目的字节>=源字节,(C)=0若目的字节<源字节,(C)=12)选取好正确的direct值以便确定Cy的值3)提前设好变址,使变址<2552.用什么指令可以实现多分支之间的隔离?答:控制、条件转移指令,包括JMP、CJNE、DJNZ、JC、JB等,可以转移到$或其他。
五、实验报告要求写出题目运行结果。
六、参考程序清单1、二分支的条件转移程序1)用二分支结构程序实现:ORG 0000HMOV A, R0JZ LOAD ;等于零转LOADJNB ACC.7,GO ;大于零转GOMOV A, #0FFHSJMP LOADGO: MOV A, #01HLOAD: MOV R1, ASJMP $END运行结果:(R1)=0X002)赋值(R0)=15H运行结果: (R1)=0X013)赋值(R0)=0F2H2)用三分支结构程序实现:ORG 0000HMOV A, R0JNZ COMP ;不等于零转COMPMOV R1,#00H ;等于零,则0 →(R1)SJMP MP3COMP: CJNE R0,#80H,MP1 ;(R0)中数与80H比较,不相等则转移到MP1 MOV R1,#0FFH ;若比较相等,则-1 →(R1)LJMP MP3MP1: JC MP2 ;两数不相等,(R0)> 0转MP2MOV R1,#0FFH ;(R0) < 0,-1 →(R1)LJMP MP3MP2: MOV R1,#01H ;(R0)>0,1 →(R1)MP3: SJMP $END运行结果:(R1)=0X00 2)赋值(R0)=15H3)赋值(R0)=0F2H实验七循环程序设计一、实验目的1.进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
大一单片机课程设计一、课程目标知识目标:1. 理解单片机的基本原理与结构,掌握单片机的工作流程;2. 学会使用单片机编程语言,掌握基本的编程技巧;3. 掌握单片机外围设备的连接与控制方法,能够实现简单的硬件系统设计。
技能目标:1. 能够运用所学知识,设计并实现具有实际应用价值的单片机控制系统;2. 培养学生动手实践能力,学会使用相关开发工具与仪器设备;3. 提高学生的编程能力,培养良好的编程习惯。
情感态度价值观目标:1. 培养学生对单片机技术与应用的兴趣,激发学生学习热情;2. 培养学生的团队协作意识,学会与他人共同解决问题;3. 引导学生关注单片机技术在现实生活中的应用,认识到科技对社会发展的作用。
课程性质:本课程为大一单片机课程的实践环节,强调理论与实践相结合,注重培养学生的动手实践能力和创新能力。
学生特点:大一学生具备一定的电子技术基础,但单片机知识尚浅,需要通过实践操作加深理解。
教学要求:结合单片机课程特点,注重理论与实践相结合,提高学生的实际操作能力。
在教学过程中,注重启发式教学,引导学生主动探究问题,培养学生的创新思维。
同时,关注学生的个体差异,因材施教,使学生在课程学习中取得最佳效果。
通过本课程的学习,使学生能够具备初步的单片机系统设计能力,为后续相关课程打下坚实基础。
二、教学内容1. 单片机原理与结构:介绍单片机的基本组成、工作原理及性能特点,对应教材第一章内容。
- 单片机的基本概念与分类- 单片机的内部结构及功能- 单片机性能参数及选型2. 单片机编程语言:学习单片机编程基础,掌握汇编语言和C语言编程方法,对应教材第二章内容。
- 汇编语言基本语法与指令- C语言基本语法与编程技巧- 单片机程序结构与编程规范3. 单片机外围设备与接口技术:学习单片机与外围设备的连接与控制方法,对应教材第三章内容。
- 并行I/O口的应用- 定时器/计数器的使用- 中断系统的设计与实现- 串行通信接口技术4. 单片机系统设计与实践:结合实际案例,培养学生的单片机系统设计能力,对应教材第四章内容。
河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计任务书学院班级设计人成绩设计题目利用单片机滚动显示字符“0123456789AbCdEF”二.问题的提出:在单片机的LED显示器上面滚动显示题目要求的字符串。
并且可以利用外部中断进行滚动的启停。
三.目的与要求1.目的:培养学生综合利用单片机进行程序和硬件设计的能力,主要是培养学生根据要求正确编写程序和进行外部连线。
2.基本要求:(1)能够正确掌握中断和定时器/计数器的使用;(2)能够正确掌握LED显示器的使用方法;(3)能够掌握面对硬件的编程思想四.总体设计所设计题目的功能因为单片机的LED显示器只有六位,所以要显示的字符串的长度超过六位的时候就要滚动显示。
所谓的滚动显示就是指在t1这个时刻显示“012345”,在t1+Δt这个时刻显示“123456”,在t1+2Δt这个时刻显示“234567”,以此类推。
总体方案设计程序功能可以分为以下几个部分:主程序负责定时器/计数器的初始化、中断的初始化和LED显示,外部中断的数理程序用来启动或停止滚动显示,定时器/计数器中断服务程序用来负责读取下一显示周期要显示的字符串。
(1)中断源的选择系统一共用到了两个中断源,即一个定时器/计数器中断和一个外部中断(2)字符串截取实现其实就是一个对指定地址开始将连续的6个字节的数据传送到显示缓冲区中的操作。
四.硬件系统设计硬件电路《中断电路》五.软件系统设计软件模块设计和流程《流程图》程序清单ORG 0000HSETB P3.2 ; p3.2口置1输出高电平MAIN: JNB P3.2,MAIN3MOV A,#03H 方式控制字03H送AMOV DPTR,#0FF20H ;给DPTR开辟存储空间MOVX @DPTR,A 方式控制字送8155命令TT: MOV R2,#04HTT1: MOV R4,#05H ;R4循环表示循环次数TT2: DJNZ R4, ;DJNZ R2,TT1MOV 5FH,5EHMOV 5EH,5DHMOV 5DH,5CHMOV 5CH,5BHMOV 5BH,5AHMOV 5AH,59HMOV 59H,58HMOV 58H,57HMOV 57H,56HMOV 56H,55HMOV 55H,54HMOV 54H,53HMOV 53H,52HMOV 52H,51HMOV 51H,50HMOV 50H,5FHAJMP MAINDISP4: MOV R5,#01H ;位码给R5MOV R0,#59H ;显示缓冲区地址给R0MOV A,R5 ; 位码送ALD0: MOV DPTR,#0FF21H ; c口给DPTRMOVX @DPTR,A ;0ff21H中值为01HMOV DPTR,#0FF22H ;B口给DPTRMOV A,@R0 ;待显示字符地址偏移量送AADD A,#0EH ;对A进行地址修正MOVC A,@A+PC ;查表MOVX @DPTR,A ;查表结果给0FF22H ACALL DLAY ; 延时INC R0MOV A,R5JB ACC.5,LD1 ; 累加器的第6为1,执行LD1RL A ;A左移一位,选通第二个数码管MOV R5,A ; 送回R5AJMP LD0LD1:SJMP TT2DB 0C0h,0F9H,0A4H,0B0H,99H,92HDB 82H,0F8H,80H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89HDB 0C8H,0C1H,7FH,0BFHDLAY:MOV R7,#04HDL1: MOV R6,#0FFHDL2: DJNZ R6,DL2DJNZ R7,DL1RETMAIN3:CLR C ;中断MOV C,P3.2 ;Cy=1JNC FF ;若Cy=0,执行FF,若Cy=1,则顺序执行MOV A,#03HMOV DPTR,#0FF20HMOVX @DPTR,ATT3: MOV R2,#02HTT13: MOV R4,#05HTT23: DJNZ R4,DISP43DJNZ R2,TT13AJMP MAIN3DISP43: MOV R5,#01HMOV R0,#59HMOV A,R5LD03: MOV DPTR,#0FF21HMOVX @DPTR,AMOV DPTR,#0FF22HMOV A,@R0ADD A,#0EHMOVC A,@A+PCMOVX @DPTR,AACALL DLAY3INC R0MOV A,R5JB ACC.5,LD13RL AMOV R5,AAJMP LD03LD13:SJMP TT23DB 0C0h,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0C6H DB 0A1H,86H,8EH,0FFH,0CH,89HDB 0C8H,0C1H,7FH,0BFHDLAY3:MOV R7,#04HDL13: MOV R6,#0FFHDL23: DJNZ R6,DL23DJNZ R7,DL13RETFF: AJMP MAINEND六.调试方案硬件调试方案连线X15口到LED接口,然后运行,在显示器上可以显示滚动字符串,按下去即可中断。
河北工业大学
MCS-51单片机原理及应用
课程设计报告
专业:土木工程
班级:土木班
组别:11
姓名:
MCS--51单片机课程设计
汽车信号灯控制系统
组别:11 设计人:
一、题目:汽车信号灯控制系统
二、实验目的和最终完成的功能
1)功能:
(1)车辆转弯时,相应一侧之前灯、尾灯及仪表板指示灯均应闪烁。
即左转时,左头灯、左尾灯、仪表板左转弯灯闪烁,右转时则右头灯、右尾灯和仪表板右转弯灯闪烁;
(2)紧急开关闭合时要求前述6个信号灯全部闪烁;
(3)刹车时2个尾灯亮,若转弯时刹车,则转弯时原应闪烁的信号灯仍应闪烁;
(4)转向闪烁频率1Hz,应急闪烁频率2.5Hz。
2)按照以前所学实验方法,将程序输入,编译无误,按照硬件系统设计图并对照实验书后的对照表进行接线,然后运行,通过开关控制灯的亮灭。
三、线路原理:
硬件系统设计流程图
软件系统设计流程图
↓
↓
↓
↓
↓
↓
四、源程序及注释:
ORG 8000H
LJMP MAIN ;;转到主程序
ORG 800BH
LJMP TC0LEFTON ;;转到T/C0的中断服务程序T0ISR
ORG 801BH
LJMP TC1SET ; ;转到T/C1的中断服务程序T1ISR
ORG 8030H
MAIN: MOV SP,#30H
MOV TMOD,#11H ; ;置T/C0 方式1,定时;T/C1方式1,定时
MOV TH0,#0DCH
MOV TL0,#0DH ; ;装入T/C0定时初值
MOV TH1,#0E8H
MOV TL0,#0DH ;;装入T/C1定时初值
SETB ET0 ; ;T/C0允许中断
SETB ET1 ; ;T/C1允许中断
SETB EA ; ;CPU开中断
MOV P1,#0FFH ; ;灯全灭
MOV R7,#00H
MOV R6,#00H
BREAK: SETB P3.2
JB P3.2,YINGJI ; ;刹车开关闭合继续执行,否则跳转
CLR P1.4 ; ;点亮p1.4,左尾灯亮
CLR P1.5 ; ;点亮p1.5,右尾灯亮
YINGJI: SETB P3.3
JB P3.3,LEFT ; ;应急开关闭合继续执行,否则跳转
CLR TR0
SETB TR1 ; ;启动TR1
LEFT: SETB P3.4
JB P3.4,RIGHT ; ;左转开关闭合继续执行,否则跳转
CLR PSW.5 ; ;设左转状态标志位
CLR T R1
SETB TR0 ;;启动TR0
RIGHT: SETB P3.5
JB P3.5,NO ; ;右转开关闭合继续执行,否则跳转
SETB PSW.5 ; ;设右转状态标志位
CLR T R1
SETB TR0 ; ;启动TR0
NO: MOV A,P3
ANL A,#3CH
CJNE A,#3CH,BREAK ;;所有开关都打开,继续执行;否则跳转
MOV P1,#0FFH ; ;所有灯全灭
LJMP BREAK
TC0LEFTON: CJNE R6,#00H,TC0ON
JB PSW.5,TC0RIGHTON ; ;左转开关闭合,继续;否则跳转
CLR P1.0 ; ;点亮P1.0;左前灯亮
CLR P1.2 ; ;点亮P1.2;左仪板显示灯亮
CLR P1.4 ; ;点亮P1.4;左尾灯亮
AJMP TC0ON
TC0RIGHTON: CLR P1.1 ;;点亮P1.1;右前灯亮
CLR P1.3 ; ;点亮P1.3;右仪板显示灯亮
CLR P1.5 ; ;点亮P1.5;右尾灯亮
TC0ON: MOV TH0,#0DCH
MOV TL0,#0DH
INC R6
CJNE R6,#50D,TC0OFF ; ;灯亮半秒
JB PSW.5,TC0RIGHTOFF
SETB P1.0
SETB P1.2
SETB P1.4 ; ;所有左灯全灭
AJMP TC0OFF
TC0RIGHTOFF: SETB P1.1
SETB P1.3
SETB P1.5 ; ;所有右灯全灭
TC0OFF: CJNE R6,#100D,TC0FANHUI ;;灯灭半秒后,一秒延时到
MOV R6,#00H
CLR T R0
TC0FANHUI: RETI ; ;中断返回
TC1SET: CJNE R7,#00H,TC1ON
MOV P1,#0C0H ; ;点亮所有灯
TC1ON: MOV TH1,#0E8H
MOV TL1,#0DH
INC R7
CJNE R7,#30D,TC1OFF
MOV P1,#0FFH
TC1OFF: CJNE R7,#60D,TC1FANHUI
MOV R7,#00H
CLR TR1
TC1FANHUI: RETI
END
五、调试程序的方法
按照以前所学实验方法,将程序输入,编译无误,按照硬件系统设计图并对照实验书后的对照表进行接线,然后运行,通过开关控制灯的亮灭。
六、对该设计题目的更完善的方案
在满足原有基本动能的基础上,此方案又增加了一项:汽车停靠而停靠开关合上时(如在高速公上,车辆因故障停靠时)左头灯、右头灯、左尾灯、右尾灯应高频闪烁;及增加倒车灯,应再加两盏灯比较好。
七、实验设计分工
本实验线路原理和源程序由组员两人共同查阅资料、互相探讨设计完成,实验操作时由王新进行调试、刘少伟连接线路,完成实验,整理实验报告由两人共同整理、修改完成。
八、收获及心得体会
在这次的课程设计过程中我锻炼了自己的思考能力和动手能力,也让我觉察出所学知识的漏洞,深刻体会到实践的重要性,在今后的学习中,我一定要扎扎实实,真正的把知识学到手,做到融会贯通,运用自如。
在题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计的选择上,培养了我们综合应用单片机的能力,对单片机的各个功能也有了进一步的认识,还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力,并且使我们熟练掌握了有关器件的性能及测试方法。
感谢老师的辅导和同学的帮助,是他们让我有了一个更好的认识,在编程过程中我和同伴相互帮助,配合默契,对设计的成功起了很大的推动最用,让我深刻的认识到合作的重要性。
课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深,在今后的学习生活中我将更扎实的提高自己的实践能力和学习能力。
日期:2012年12月25日。