河北工业大学单片机课程设计

合集下载

河北工业大学 单片机实验 第四次试验 实验八 查表程序设计

河北工业大学 单片机实验  第四次试验  实验八 查表程序设计

实验八查表程序设计一、实验目的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(表首地址)即可查的对应温度值。

单片机 简易计算器 课程设计4

单片机 简易计算器 课程设计4

河北工业大学计算机硬件技术基础(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.实验设备:准备单片机开发板、传感器、执行器等实验设备,让学生动手实践。

7微波炉的加热时间的设置

7微波炉的加热时间的设置

河北工业大学计算机硬件技术基础(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、描述设计方案。

单片机 低频脉冲信号发生器 设计报告2

单片机 低频脉冲信号发生器 设计报告2

河北工业大学计算机硬件技术基础(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北工业大学
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日。

相关文档
最新文档