矿大单片机实验
⑴ 51单片机的实验一般都有哪些
12864液晶显示器,AD(电压表),LED渐亮渐灭(PWM),遥控解码,温度传感器采样,单片机播放音乐。。。。。。
⑵ 单片机实验
1、
MOV R0,#20H
MOVX A,@R0
MOV 20H,A
2、
MOV DPTR,#2000H
MOVX A,@DPTR
MOV 20H,A
3、
MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV 20H,A
4、
MOV DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV B,A
MUL AB
MOV R7,A
MOV R6,B;(溢出部分送R6)
5、高八位?低八位?什么意思?
地址高八位DPH,地址第八位DPL
MOV DPH,#20H
MOV DPL,#00H
⑶ 单片机实验难吗
有简单的也有难得 例如流水灯什么的就比较简单 涉及到一些总线和串口的通讯 和模拟信号处理上就有些复杂了
⑷ 急求:单片机实验
:
ORG 0030H
MOV 30H, #34H
MOV 31H, #56H
MOV 32H, #23H
MOV 33H, #90H
MOV 34H, #32H
MOV 35H, #68H
MOV 36H, #09H
MOV 37H, #75H
CALL SORT
SJMP $
;-----------------------------------------------------
SORT: ;最简短、高效的排序程序.
MOV B, #7 ;第一轮排序时,比较7次.
S1: MOV R0, #30H ;数据区的起始地址.
MOV R7, B
CLR PSW.5 ;清除"交换"标志位.
S2: MOV A, @R0 ;取前一个数.
INC R0
CLR C
SUBB A, @R0 ;减后一个数,前<后时,Cy=1
S3: JC S4 ;有借位时,不用交换,转移.
MOV A, @R0 ;取后一个数,准备交换.
DEC R0
XCH A, @R0 ;交换到前一个.
INC R0
XCH A, @R0 ;交换到后一个.
SETB PSW.5 ;设定"交换"标志位.
S4: DJNZ R7, S2 ;继续本轮比较.
JNB PSW.5, ENDS ;如本轮没有进行过交换,可提前结束.
DJNZ B, S1 ;下一轮,比较次数少一次.
ENDS:
RET
;-----------------------------------------------------
END
⑸ 8051单片机实验。求助。
1,安装KEIL C软件
2,如果想软件仿真的话,装个DXP
3,如果是硬件上实践的话,除了买单片机以及实验需要的元器件,还要在电脑上下载个下载软件用于把程序下载到单片机上。
4,这个实验不需要看什么书,直接去优酷看看相关流水灯视频讲解就可以了
⑹ 简单的单片机实验题目!编了下,不知道对不对!麻烦指点!
本题目涉及到两个片外地址。
传统的单片机,只有一个片外数据指针DPTR,地址的处理就比较麻烦。
稍新一些的单片机,如AT89S52,就有两个DPTR。
楼主的题目,像是学校里面的作业,一般是不使用两个DPTR的。
本题目,数据量很小,可以先全部倒到片内,再传送到片外的目的地。
这样便于大批数据的修改,但是,为了解决现在的小问题,程序未免嫌长。
还是在楼主的程序上,稍加修改。
程序如下:
;
MOV DPTR, #1000H ;第一块地址
MOV R7, #10H ;第二块地址
MOV R6, #10H ;此处修改了,原为00H
MOV R2, #8
LOOP:
MOVX A, @DPTR ;取第一地址内容
MOV B, A ;暂时存放
PUSH DPH
PUSH DPL
MOV DPH, R7
MOV DPL, R6 ;DPTR = 1010H
MOVX A,@DPTR ;取第二地址内容
XCH A, B
MOVX @DPTR, A ;交换存放
INC DPTR
MOV R7, DPH ;保存第二地址
MOV R6, DPL
POP DPL ;恢复第一地址
POP DPH
XCH A, B
MOVX @DPTR, A ;将首地址1010H的内容放到1000H
INC DPTR
DJNZ R2,LOOP
;完
⑺ 单片机实验设计
;-------------------------------------
;下列程序,经过编译、仿真,符合要求:
;-------------------------------------
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
;-------------------------------------
START:
MOV TMOD, #01H
MOV TH0, #9EH
MOV TL0, #58H ;50ms@6MHz
SETB TR0
SETB ET0
SETB EA
MOV R2, #10
LOOP:
CLR PSW.5
CLR P1.1 ;输出0,这是一个周期的开始.
JNB PSW.5, $ ;等待500ms
CLR PSW.5
JNB PSW.5, $ ;再等待500ms
CLR PSW.5
MOV C, P3.3 ;如果P3.3为低,
CPL C
MOV P1.1, C ;就输出高,这就是50%占空比.
JNB PSW.5, $ ;继续等待500ms
CLR PSW.5
SETB P1.1 ;如果到这里才输出高,就是25%占空比.
JNB PSW.5, $ ;输出高500ms
SJMP LOOP
;-------------------------------------
T0_INT: ;50ms执行一次.
MOV TH0, #9EH ;重新赋初始值.
MOV TL0, #58H ;50ms@6MHz
DJNZ R2, T0_END ;不到10次,转到退出.
; ;下列指令都是每隔500ms执行一次.
MOV R2, #10 ;重新设置.
SETB PSW.5 ;每隔500ms,设置一次1
T0_END:
RETI
;-------------------------------------
END
;-------------------------------------
编译后的机器语言,仅仅用了74字节
⑻ 单片机实验内容及结果分析
熟悉单片机的原理、结构;学好数电、模电,为设计电路打好基础;熟练使用C语言,多学习他人的程序;对操作系统原理有一定的了解,Protel有一定的基础;培养实际动手调试电路的能力。一般可以通过专业的书籍和课程进行持之以恒的学习,注意理论与实践并重,遇到问题耐心检查并适当投资购买实验器材。
⑼ 单片机原理与实验
定时器的时钟频率为12MHz/12=1MHz,则定时器计数器计1个数为1us,所以2ms为2000,因为计数器是向上计数模式,所以65536-2000=63536=0xF830
void Timer0_Init(void)
{
TMOD|=0x01; //16位定时器模式
ET0=1; //定时器0中断允许
TH0=0xF8; //定时2ms 2000-2ms
TL0=0x30;
TR0=1; //开始计时
}
void Timer0_Interrupt(void) interrupt 0
{
TH0=0xF8; //重装载
TL0=0x30;
if(P1^0 == 1) P1^0 = 0;
else P1^0 = 1;
}