东华大学51单片机课程设计硬件实验答案大全6题

时间:2019-05-14 22:00:10下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《东华大学51单片机课程设计硬件实验答案大全6题》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《东华大学51单片机课程设计硬件实验答案大全6题》。

第一篇:东华大学51单片机课程设计硬件实验答案大全6题

东华学子加油

from你们的老学长

说明:哈哈哈哈哈哈,学长造福学弟学妹们啦。有这个在手,还怕51硬件实验吗?哈哈哈哈哈哈(都能直接运行的,下载了别忘记给5分,或者跟我说声:好人一生平安)

实验2

#include

void delay(void)//延时函数

{

unsigned int i;

for(i=0;i<100;i++);

} void main(void)

{

unsigned char num,i=0;

while(1)

{

P1 = 0xff;

num = P1&3;

switch(num)

{

case 0:

P1 = 0xff;

break;//灯全灭

case 1:

if(i<100)P1 = 0xf3;

else P1 = 0xff;

break;//两个灯闪烁

case 2:

if(i<100)P1 = 0xcf;

else P1 = 0xff;//两个灯闪烁

break;

case 3:

if(i<100)P1 = 0x00;

else P1 = 0xff;//四个灯闪烁

break;

}

delay();

i++;

if(i>200)i = 0;

}

}

东华学子加油

from你们的老学长

实验3 #include

#include

#define Out_port XBYTE[0xcfa0] void delay(unsigned int time)

{

char i;

for(;time>0;time--)

for(i=0;i<5;i++);

} void led_out(unsigned char dat)

{

Out_port = ~dat;

} void main(void)

{

char i=0;

led_out(0x11);//两个路口的红灯全亮

delay(30000);

while(1)

{

led_out(0x12);//东西路口的绿灯亮,南北路口的红灯亮

delay(30000);

while(i<5)//东西方向黄灯闪烁5次

{

led_out(0x10);

delay(1000);

led_out(0x14);

delay(1000);

i++;

}

i=0;

while(i<10)//****将黄灯闪烁10

{

led_out(0x00);

delay(1000);

led_out(0x44);

delay(1000);

i++;

东华学子加油

from你们的老学长

}

led_out(0x21);//东西路口红灯亮,而同时南北路口的绿灯亮

delay(30000);

i=0;

while(i<5)//南北方向黄灯闪烁

{

led_out(0x01);

delay(1000);

led_out(0x41);

delay(1000);

i++;

}

/*led_out(0x03);

delay(1000);*/

}

}

实验5 #include

#include

#define Out_port XBYTE[0xcfb0] void delay(unsigned int time)

{

char i;

for(;time>0;time--)

for(i=0;i<5;i++);

} void led_out(unsigned char dat)

{

Out_port = ~dat;

} void urgent(void)interrupt 0//***将闪烁时间改为10秒

{

unsigned int i;

EA = 0;//现在不允许中断 while(i<25){

led_out(0x11);

delay(1000);

led_out(0x00);delay(1000);

i++;}

东华学子加油

from你们的老学长

i=0;

EA = 1;

} void main(void)

{

char i=0;

IT0 = 1;

EX0 = 1;

EA = 1;

led_out(0x11);

delay(30000);

while(1)

{

led_out(0x12);

delay(30000);

while(i<5)

{

led_out(0x10);

delay(1000);

led_out(0x14);

delay(1000);

i++;

}

led_out(0x11);

delay(1000);

led_out(0x21);

delay(30000);

i=0;

while(i<5)

{

led_out(0x01);

delay(1000);

led_out(0x41);

delay(1000);

i++;

}

led_out(0x03);

delay(1000);

}

}

东华学子加油

from你们的老学长

实验六

注意更改为“。Asm“文件不要用。C文件编译

NAME

T6

;定时器实验

CSEG AT 0000H

LJMP START

CSEG AT 001BH

;定时器/计数器1中断程序入口地址

LJMP INT

CSEG AT 4100H START: MOV

A,#01H

;首显示码

CPL

A

MOV

R1,#03H

;03是偏移量,即从基址寄存器到表首的距离

MOV

R0,#05H

;05是计数值

MOV

TMOD,#10H;计数器置为方式1

MOV

TL1,#0AFH;装入时间常数

MOV

TH1,#03CH

ORL

IE,#88H

;CPU中断开放标志位和定时器

;1溢出中断允许位均置位

SETB

TR1

;开始计数 LOOP1: CJNE

R0,#00,DISP

MOV

R0,#05H

;R0计数计完一个周期,重置初值

INC

R1

;表地址偏移量加1

CJNE

R1,#21H,LOOP2

MOV

R1,#03H

;如到表尾,则重置偏移量初值 LOOP2: MOV

A,R1

;从表中取显示码入累加器

MOVC

A,@A+PC

CPL

A

JMP

DISP

DB

01H,03H,07H,0FH,1FH,3FH,7FH,0FFH

DB

0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H

DB

03H,0FH,3FH,0FFH,0FCH,0F0H,0C0H,00H

DISP:

MOV

P1,A

;将取得的显示码从P1口输出显示

JMP

LOOP1 INT:

CLR

TR1

;停止计数

DEC

R0

;计数值减一

东华学子加油

from你们的老学长

MOV

TL1,#0AFH;重置时间常数初值

MOV

TH1,#03CH

SETB

TR1

;开始计数

RETI

;中断返回 END 实验11 #include

#include

#define Led_dat XBYTE[0xcfe8] #define Led_ctl XBYTE[0xcfe9] char g;void Display_byte(unsigned char loc,unsigned char dat)

{

unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

loc &=0xf;

Led_ctl = loc|0x80;

Led_dat = table[0];

/*显示高4位*/

loc++;

Led_ctl = loc|0x80;

g=dat&0xf;

if(g==6)

g=4;

if(g==7)

g=5;

if(g==8)

g=6;

if(g==9)

g=7;

if(g==0xc)

g=8;

if(g==0xd)

g=9;

Led_dat = table[g];

/*显示低4位 */

}

void main(void)

{

Led_ctl = 0xd1;

while((Led_ctl&0x80)==0x80);

Led_ctl = 0x31;

while(1)

{

if((Led_ctl&0xf)==0)continue;

东华学子加油

from你们的老学长

Led_ctl = 0x40;

Display_byte(0,Led_dat);

}

}

/*switch(表达式){

case 常量表达式1:

语句1;

break;

case 常量表达式2:

语句2;

break;

……

case 常量表达式n:

语句n;

break;

default:

语句n+1;

break;}

*/

实验15

#include

#include

#define Led_dat XBYTE[0xcfe8] #define Led_ctl XBYTE[0xcfe9] #define ad_port XBYTE[0xcfa0]

void Display_byte(unsigned char loc,unsigned char dat)//中断结果处理后显示在数码管上

{

unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

loc &=0xf;

Led_ctl = loc|0x80;

Led_dat = table[dat>>4];

/*显示高4位*/

东华学子加油

from你们的老学长

loc++;

Led_ctl = loc|0x80;

Led_dat = table[dat&0xf];

/*显示低4位*/

} void delay(unsigned int t)

{

for(;t>0;t--);

} void main(void)

{ /*中断*/

EA=1;IT0=1;EX0=1;//初始化设置中断 /*中断*/

Led_ctl = 0xd1;

while((Led_ctl&0x80)==0x80);//?

Led_ctl = 0x31;

/* while(1)

{

ad_port = 0;

while(INT0);

while(!INT0);//??

Display_byte(0,ad_port);

delay(10000);

}*/ ad_port = 0;while(1);//让程序停在这儿等待中断

} void vb()

interrupt 0 //中断函数当数值转化完成后将数值显示出来 {

if(ad_port>0xf0)

P1=0xfe;if(ad_port<0x10)

P1=0xfd;if(0x10

Display_byte(0,ad_port);

delay(10000);

ad_port = 0;}

第二篇:单片机课程设计题

电气与信息工程学院

基础教学系

单片机课程设计题基于单片机的简易电子琴的设计

设计(并制作)一个基于单片机的简易电子琴。

基本要求:

(1)能够手动演奏3个八度音的乐音,音长由按键按下的持续时间控制;(2)能够存储并播放乐曲;

(3)由硬件开关或键盘完成手动、自动切换;

(4)输出功率不小于300mW,声音无明显失真。

提高部分:

(1)频谱合成以产生不同音色及和弦;

(2)由程控增益放大器产生音乐节拍;

(3)能够播放MIDI音乐。

说明:

第三篇:湘潭大学单片机课程设计

设计题目:简易频率计数器姓名:学号:

班级:09级电子信息工程一班指导老师:粟建新

一、实验目的1.要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。

2.熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。

二、实验要求

自制一个单片机最小系统,包括串口下载、复位电路,采用外部计数器T0或T1作为外部频率输入,外部频率由信号源提供,计算出来的频率显示在四位一体的数码管上。

三、实验器材

单片机'STC89C54RD+一个,晶振一个,电容3个,电阻3个,排阻一个(由于实验室不提供排阻,实验过程中用了10个10千欧姆的电阻代替),4位一体数码显示管一个,按钮1个。

四、实验原理图

五、硬件连线

1.将P0口与4位一体数码管的ABCDEFG和DP相连;

2.将P2口的2.0,2.1,2.2分别与数码管的S1,S2,S3相连;

3.引出14做激励输入口。

六、程序设计内容

1.定时/计数器T0 和T1 的工作方式设置,由图可知,T0 是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC=12MHz,因此:T0 的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个 数,即为频率值。所以T1 工作在定时状态下,每定时1秒钟到,就停止T0 的计数,而从T0 的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。

2.T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20 次,即可完成1 秒的定时功能。

七、C语言源程序

#include//头文件端口声明

#define uchar unsigned char//变量宏定义

#define uint unsigned int

unsigned char code table2[]={ //共阳极0~f数码管编码

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

uintnumber1[4]={0,0,0,0};

uint count=0;//定义脉冲计数变量

sbit K1=P1^0;

sbit K2=P1^7;

void delay(uchar y)// 延时子程序

{

uchar x;

while(y--)for(x=110;x>0;x--);

}

display(x)// 显示子程序

{uintc,g=0x01;

number1[0]=x/1000;

number1[1]=x%1000/100;

number1[2]=x%1000%100/10;

number1[3]=x%1000%100%10;

for(c=0;c<4;c++)

{

P2=g;//位选

P0=table2[number1[c]];//段选

delay(15);//简短的延时

g=g<<1;//左移为了扫描位选

}}

void main()

{

IE=0x8a;

TMOD=0x51;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

while(1)

{

if(K1==0)

{

delay(10);

if(K1==0)

{count=0;

TR0=TR1=1;

}

}

}

}

void t0()interrupt

1{ uchar K;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;// 开总中断和T0,T1// 设置中断工作方式//当按键按下时启动T0和T1//定时计数器T0子程序

if(++K==20)

{

TR1=TR0=K=0;

count=TH1*256+TL1;

display(count);

TH1=TL1=0;

}

}

//关两个中断//当到一秒后,计下T1收到的脉冲个数 //T1清零

八、实验心得

通过这次课程设计,我熟悉了Keil C51编程与PROTUSE的使用,对单片机的使用有了更深刻的了解,在焊接与测试过程中也懂得了对任何的细节必须分外注意,不能粗心大意。实验由两部分组成,仿真和焊板子,仿真过程用运用了keil c51软件和PROTUSE,这两个软件以前没有用过,通过这次课程设计,我学习了这两种软件的基本上使用,是此次课程设计比较大的收获。焊接过程中,由于从大一开始已经有好几次的焊接经历,我吸取以前的教训,在这次的焊接过程中在排版,接线上都有了很大的改善,而且焊点基本上没有虚焊,只不过焊接复位电路时没认真看仿真图,导致后面数码管没亮,但是我仔细检查后发现了错误所在,通过检查错误这一步,我对我自己做焊接试验有了很大的信心,因为我知道了如何用万用表检查错误。总之,课程设计不仅让我们温习了单片机的设计思路与编程语言,而且锻炼了我们实际动手能力,将理论与实践相结合了。

第四篇:东华大学数字电路课程设计_数字频率计

数 字 电 路 课 程 设 计

第一章设计指标

……………………………………....……...……....P2 设计指标

……………………………………………………………....第二章 系统概述

………………………………………...…..…...…....P3 2.1设计思想

…………………………………………………………..2.2可行性论证

…………………………………………….…...…...2.3各功能的组成……………………………………………………… 2.4总体工作过程

……………………………………………………… 第三章 单元电路设计与分析

………………………………...…...…...P4 3.1各单元电路的选择

……………………………………………… 3.2设计及工作原理分析

……………………………………………… 第四章 电路的组构与调试

…………………………………..…...…...P7 4.1 遇到的主要问题

…………………………………………………..4.2 现象记录及原因分析

…………………………………………….4.3 解决措施及效果

………………………………………………… 4.4 功能的测试方法、步骤、设备、记录的数据

…………………… 第五章 结束语

………………………………………………………...P11 5.1对设计题目的结论性意见及进一步改进的意向说明

…………..5.2 总结设计的收获与体会

………………………………………….附图(电路图、电路总图)………………………………………………P12

第一章设计指标

在生产实践和科学实验中,经常需要测量信号的频率。数字频率计就是用数字方式测量和显示被测信号频率的仪器。实用的数字频率可以测量多种不同的周期波形。

设计要求

要求设计一个测量TTL方波信号频率的数字系统。用按键选择测量信号频率。测量值采用四个LED七段数码管显示,并以发光二极管指示测量对象:测量的单位 HZ khz。频率测量范围有四档量程。

(1)测量结果显示4位有效数字,测量结果显示四位有效数字。测量精度为万分之一。(2)频率测量范围:0.1hz~999.9khz,分四档。

第一档:100.1hz~999.9hz

第二档:1.000khz~9.999khz

第三档:10.00khz~99。99khz

第四档:100.0khz~999.9khz(3)量程切换可以采用两个按键手动切换或由电路控制自动切换。

设计思想

数字频率计的基本原理是测量周期信号在单位时间内的信号周波数。主要电路为计数器需要控制的是计数器的输入脉冲。显然切换被测信号的时基信号的路径就可以实现数字频率记测量功能的转换。

由于测量结果以十进制显示,为了显示译码方便,一般采用十进制计数器级联构成信号测试电路。本设计要求频率测量结果以四位有效数字显示,所以可以采用四个十进制计数器级联构成莫为10000的极术器对被测信号计数,最大值为9999.四个计数器的4组BCD码译码后显示的结果。

第二章 系统概述

2.1设计思想

总体思想可以分为五块:

1.量程选择(包含小数点以及单位控制)2.单稳态触发器 3.计数器和锁存器 4.译码显示 5.分频计

2.2可行性论证

该设计通过单稳态触发器输出的清零信号和锁存信号控制译码的显示

2.3各功能的组成

量程通过操作台上的两个按键组合成2x2种组合,同时控制多个74153M芯片达到同时控制时基信号,档位,小数点,单位指示灯的选择分别反馈到分频器,单稳态触发器等各个模块的控制段,达到时基信号,档位,小数点,单位指示灯一一对应的效果然后通过计数器,锁存器,以及译码显示,最终在操作台的四位七段显示器上显示结果

第三章 单元电路设计与分析

各单元电路的选择以及原理简要分析

1.量程选择(包含小数点以及单位控制)

电路如上图,A,B两个输入端子同时对档位,小数点,以及单位控制端。

2.单稳态触发器

单稳态电路如上,输出锁存端Y,然后Y通过一个D触发器产生一个延时一个周期的清零信号,因为计数器和锁存器的级联,必先锁存有效,再对计数器进行清零,所以清零信号要延时于锁存信号。

3.计数器和锁存器

计数器如下图,用四个74160十进制计数器进位输出端RCO通过一个非门进行级联,构成一个10000进制计数器,其中第一个74160的仿真图也在下面

锁存器:锁存器采用两个74374进行对四个74160输出的16个二进制数字进行锁存

其中引出清零段和锁存端,4.译码显示

采用四位动态扫描:当选着段AB选择不同的值时,分别从四片74153M中选择出同一下标的数据

6.分频器,分频器分为两个模块,一个是DIV8,即把10MHZ的信号依次分频10,最后能够达到0.1HZ的频率。

另一个是通过芯片达到任意进制的分频器(基础要求当中的8分频和四分频)

第四章 电路的组构与调试

4.1 遇到的主要问题

我在这个设计电路当中,设计,调试比较顺利,唯一让我陷入困境的问题是,当输入某一频率时,显示器不能直接显示最终结果。

4.2 现象记录及原因分析

问题现象1:显示器乱码

问题现象1:显示器一直显示0 问题现象2:例如输入为500赫兹频率的信号时,显示器从0000由一递增开始快速跳到500然后瞬间清零,达不到锁存目的。分析:锁存器输出段和显示器的连接端口不对,并且电路当中的锁存器的锁存信号没有在应该有效的时候令锁存器达到锁存目的,故我着重检查计数—锁存电路

4.3 解决措施及效果

对于问题一,在仔细对照大课题前的四位动态扫描小实验当中的引脚接入,发现,一个74160所输出的4为二进制码并不是全部接入显示电路当中的同一片74153M芯片,导致乱码,而是应该分别接入四片74153M芯片。在重新接入对应的引脚后,显示器不再显示乱码,却出现问题现象二

对于问题现象2。在仔细检查电路之后,发现单稳态输出的锁存通过非门接入锁存器锁存段导致显示一直存在于0000,而后去掉了非门,结果照成问题现象3.针对问题现象3 措施1.修改单稳态电路,一共设计了以下的新的单稳态方案

仿真

:虽然是清零信号延时于锁存信号,但理论上会带来一定的误差,不过应该还是能大致正确显示频率数,结果接入新的单稳态芯片后,发现问题没有解决,依旧是显示器从0000由一递增开始快速跳到500然后瞬间清零,达不到锁存目的。

措施二,发现74373的锁存端是高电平有效,于是在高频率的信号输入下,锁存的时间跟清零时间非常接近导致锁存失败。提出新的才想:如果换成74374锁存信号上升沿有效的锁存器。会不会解决问题,于是把原先锁存电路当中的74373换成74373.结果正常实现。问题解决,在全部连接入其他部分的电路后,达到课程设计的基础要求

拓展要求方面

对于拓展要求二当中的实现多种频率信号,开始觉得采用不同分频的分频器就能达到效果,于是利用741690的置位端以及4个按钮达到多分频的目的。结果调试发现,某些频率的第一位有效数字重复,达不到1-9的目的。

于是采用74161 十六进制计数器进行分频,发现能实现1-9当中大部分的情况,唯独“4”不能出现,分析发现,74161进制达不到25分频。于是提出了以下两个解决方案

方案一:采用两片74161进行级联,构成16X16 进制分屏器,然后最高位都置为1,低五位通过5个按键进行组合。能够组合出25进制分频器,达到出现“4”的 效果。但仍旧发现依旧显示不出“4”的效果,失败。

方案二:在原先一片74161的情况下,输出信号通过一个D触发器,在次达到二分频的效果,但在纸上演示的时候,发现,“4”能够输出,但采用这个方案之后,“9”却不能输出了。方案二失败。

4.4 功能的测试方法、步骤、设备、记录的数据

1.四位动态显示器的测试方法:遮住显示屏,采用自己设计的组合的真值表进行组合,达到自己想要的输出字符。

2.对于计数器-锁存器-显示器部分,先输入个低频测试信号,例如1hz,观察显示器是否从0一直跳到9,并在低位由9变0的时候,高位进1成功。3.接入单稳态触发器,让清零段和锁存端接入单稳态的输出信号,并输入500赫兹看能否正确稳定显示0500 4.接入量程控制,切换AB键组合看能否显示0.500 00.50 000.5,并对应的单位指示灯是否正确亮灭。

5.最后电路。通过一个外接的函数信号发生器,调节在四档量程内的频率,查看显示器的显示数值跟信号发生器的显示是否一致 附上基础要求以及拓展要求2的测试表格:

第五章 结束语

5.1对设计题目的结论性意见及进一步改进的意向说明

这次的设计题目其实很有综合性,能够用上我们在数电课上所学的大部分知识,但还有一些知识点也应该涉及到,例如:TTL门的应用,时序逻辑电路的运用,以及ROM的编程引用,这样能加强我们所学知识的联系,运用,实践的能力,并应该整体电路以及设计方案都让学生自己设计,这样我相信能够涌现出更多有新奇创意的设计方案,百花齐放。进一步改进:其实对于拓展要求1,我们可以构思一个时序逻辑电路,通过画状态转换图,状态转换表等一系列基础分析方法,构建出合理电路。对于拓展要求二,其实我们可以运用ROM的编程达到设计要求,这有待我们进一步的思考,学习和实践。

付上各个部分的电路图(详细电路图在第三章)集成该部分的芯片图: 1.div8

2.7seg(七段显示)

3.单稳态触发器

4.计数器(JSQ)

5.七段显示芯片

6.小数点,量程,单位指示灯控制芯片

7.分频器芯片

8.基础要求总电路

9.扩展要求芯片(具体电路图在第四章)

10.拓展要求电路总图

同基础电路图,只不过把基础总图当中的分频器(FENPINQI)芯片换成拓展芯片(kuozhan)

第五篇:江苏大学单片机课程设计

江苏大学

单片机课程设计

姓名:

学号

班级:电气

一、设计任务、原理、步骤

任务:○1从键盘上输入正、反转命令,转速参数(16级)和转动步数显示在LED显示器上。

显示器上显示:第一位为0表示正转,为1表示反转;第二位0~F为转速等级,第三到第六位设定步数。

2单片机依显示器上显示的正、反转命令,转速级数和转动步数进行相应动作,转○动步数减为零时停止转动。

原理:

如图,当有一相绕组被通电激励时,磁通从正相齿,经过软铁芯的转子,并以最短路径流向负相齿,为使磁通路径最短,在磁场力的作用下,转子被迫移动,使最近的一对齿与被激励的一相对准。

那么,通过对它每相线圈中电流的顺序切换可使电机作步进式旋转。相数:产生不同对极N、S磁场的激磁线圈对数。

拍数:指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB或A-B-C-D-A,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.步距角:对应一个脉冲信号电机转子转过的角位移.步距角=360/(转

子齿数*拍数)系统中使用20BY-0型号步进电机,它使用+5V直流电源,步距角为18度,电机线圈由A、B、C、D四相组成。

步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

BA、BB、BC、BD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。

步骤:先设计键盘显示程序,根据书本的键盘扫描程序与数码管显示程序,把二者整合到

一起,成功后,再做驱动电机程序,在键盘显示程序的基础上,进行扩张,实现电

机的正反转与调速控制。

二、硬件原理接线图 键盘显示原理图

连线图

 步进电机模块插头接实验系统J3插座,(顺接) 把P1.0~P1.3分别接到BA~BD插孔。

4.7kX474LS04P1.0P1.18032P1.2J***4523535ABVCCBABBBCBD1359CDP1.34

三、流程图

按键流程图

数码管显示流程图

电机控制程序流程图

四、程序清单

ORG 0000H

AJMP MAIN

ORG 0050H MAIN: MOV SP, #40H

MOV 79H, #00H

MOV 7AH, #00H

MOV 7BH, #00H

MOV 7CH, #00H

MOV 7DH, #00H

MOV 7EH, #00H

MOV R1, #7EH MAIN1: ACALL KEY1

MOV @R1, A

CJNE R1, #78H, KS

CJNE A, #16H, AGAIN

LJMP RUN AGAIN: LJMP MAIN

KS: DEC

R1

LJMP MAIN1

RUN: MOV A,7EH

JZ

ZHEN

JNZ

FAN

SJMP $

ZHEN: MOV

P1, #03H

ACALL DELAY

MOV

P1, #06H

ACALL DELAY

MOV

P1, #0CH

ACALL DELAY

MOV

P1, #09H

ACALL DELAY

ANL

79H, #0FH

ANL

7AH, #0FH

ANL

7BH, #0FH

ANL

7CH, #0FH

LCALL DIR

LCALL DIR

MOV

R5, 79H

CJNE R5, #0,Z1

DEC

79H

MOV R5,7AH

CJNE R5, #0,Z2

DEC

7AH

MOV

R5, 7BH

CJNE R5, #0,Z3

DEC

7BH

MOV

R5, 7CH

CJNE R5, #0,Z4

LJMP MAIN Z1:

DEC

79H

LJMP ZHEN Z2:

DEC

7AH

LJMP ZHEN Z3:

DEC

7BH

LJMP ZHEN Z4:

DEC

7CH

LJMP ZHEN FAN: MOV

P1, #09H

ACALL DELAY

MOV

P1, #0CH

ACALL DELAY

MOV

P1, #06H

ACALL DELAY

MOV

P1, #03H

ACALL DELAY

ANL 79H, #0FH

ANL 7AH, #0FH

ANL 7BH, #0FH

ANL 7CH, #0FH

LCALL DIR

LCALL DIR

MOV R5, 79H

CJNE R5, #0,F1

DEC 79H

MOV R5, 7AH

CJNE R5, #0,F2

DEC 7AH

MOV R5, 7BH

CJNE R5, #0,F3

DEC 7BH

MOV R5, 7CH

CJNE R5, #0,F4

LJMP MAIN F1:

DEC 79H

LJMP FAN F2:

DEC 7AH

LJMP FAN F3:

DEC 7BH

LJMP FAN F4:

DEC 7CH

LJMP FAN

DELAY: MOV R1, 7DH DELAY10: ACALL DIR DELAY13:DJNZ R1, DELAY10

RET DIR: MOV R0,#79H

MOV R3,#01H LD0: MOV DPTR,#SEG

MOV A,@R0

MOVC A,@A+DPTR

CPL

A

MOV

DPTR,#0FFDCH

MOVX @DPTR,A

MOV A,R3

MOV DPTR,#0FFDDH

MOVX @DPTR,A

ACALL DL1

INC

R0

MOV

A,R3

JB

ACC.5,LD1

RL

A

MOV

R3,A

AJMP LD0 LD1: RET SEG: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH

DB 7DH, 07H, 7FH, 6FH, 77H, 7CH

DB 39H, 5EH, 79H, 71H, 00H, 73H DL1: MOV

R7,#02H DL: MOV

R6,#0FFH DLA: DJNZ R6,DLA

DJNZ R7,DL

RET KEY1:ACALL KS1

JNZ

LK1

ACALL DIR

AJMP

KEY1 LK1: ACALL DIR

ACALL T12ms

ACALL KS1

JNZ

LK2

AJMP

KEY1 LK2: MOV

R2, #0FEH

MOV

R4, #00H LK4: MOV

DPTR, #0FFDDH

MOV

A, R2

MOVX

@DPTR, A

INC

DPTR

MOVX

A, @DPTR

JB

ACC.0, LONE

MOV

A, #00H

AJMP

LKP LONE:JB

ACC.1, LTOW

MOV

A, #08H

AJMP

LKP LTOW:JB

ACC.2, LTHR

MOV

A, #10H

AJMP

LKP LTHR:JB

ACC.3, NEXT

MOV

A, #18H LKP: ADD

A, R4

MOV

DPTR, #TAB

MOVC

A, @A+DPTR

PUSH

ACC LK3: ACALL DIR

ACALL KS1

JNZ

LK3

POP

ACC

RET NEXT:INC

R4

MOV

A,R2

JNB

ACC.7,KND

RL

A

MOV

R2,A

AJMP

LK4 KND: AJMP

KEY1 KS1: MOV

DPTR,#0FFDDH

MOV

A,#00H

MOVX

@DPTR,A

INC

DPTR

MOVX

A,@DPTR

CPL

A

ANL

A,#0FH

RET T12ms:MOV R7,#18H TM: MOV

R6,#0FFH TM6: DJNZ

R6,TM6

DJNZ

R7,TM

RET TAB: DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H,02H,0FH,03H,0EH

DB 0CH,0DH,00H,00H,00H,00H,00H,00H,16H

END

五、设计心得体会

为期一周的单片机课程设计,我有很多心得体会,有关于单片机方面的,更多的是人与人之间的。

此次单片机课程设计意义非凡。一开始,我们组出现了很多问题,例如,如何把键盘与显示程序整合到一起,但是在老师的悉心指导和同学的帮助下,各种问题都被解决了。此次课程设计不仅增强了同学们的动手实践能力,而且更加丰富了同学们的理论知识,熟悉了汇编语言的编程方法。除此之外,我还学到了如何与人合作,与人交流。

总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅

下载东华大学51单片机课程设计硬件实验答案大全6题word格式文档
下载东华大学51单片机课程设计硬件实验答案大全6题.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    多功能电子钟设计 单片机课程设计报告东华理工

    单片机原理及应用设计课程设计报告 课题名称:多功能电子钟设计 姓 名: 学 号: 班 级: 指导老师:2017年6月13日 目录 一、设计任务..................................................

    《单片机课程设计结题报告》的内容

    《单片机课程设计结题报告》的内容2012-11-1一、 选题1. 课题的来源2. 所做课题的现有技术水平及应用现状(国、内外研究现状)3. 课题的含义(功能)、目的及意义4. 本次课程设计所......

    单片机课程设计 -可调数字钟 (来自河北大学)

    单片机课程设计 201244xxxx xx 12xx 一、绪论 单片机正朝着高性能和多品种的方向发展,下一步的趋势将是继续向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路......

    东华大学羽毛球理论测试(答案版)

    羽毛球试题库 一、判断题:1. 现代羽毛球运动诞生于英国. 对 2. 现代羽毛球运动起源于1873年的印度. 错 3. 在正式羽毛球比赛中,教练员可以进行场外指导. 错 4. 1934年成立的......

    2007~2009年东华大学染整工艺原理真题(范文模版)

    2007年东华大学染整工艺原理真题 1、(25分)试比较棉纤维经酸和氧化作用的异同点,如何全面的了解纤维在漂白过程中所受到的损伤程度?2、(25分)何谓纺织品的防污整理?易去污整理?试分......

    单片机课程设计:汽车ABS控制器模拟测试系统硬件接口设计与实现

    引言: 汽车行驶在路途中遇到突发状况时进行紧急制动,容易发生侧滑,甚至发生掉头和侧翻。相当多的交通事故由此产生。因此在行车制动中,不能让车轮抱死,进而才不发生侧滑和掉头......

    实验理论题(真题答案)

    实验理论题 一、不定项选择题(共25题,每题1分,共25分) 1.某实验报告中有如下记录,其中实验数据合理的是( AD ) A、定性实验中用滴管滴取20滴溶液作为约1mL进行实验。 B、用托盘天平......

    大连海事大学数字逻辑电路课程设计实验总结报告

    数字逻辑电路课程设计实验总结报告 题目一:用J-K触发器设计13进制加法计数器 一、设计过程:参见设计实验报告(真值表,卡诺图)。 二、逻辑电路图: 三、电路图描述: 4个J-K触发器同......