单片机课程设计启示
⑴ 单片机课程设计
P1口接一个数码管,一个按键可以接在P3.2作外部中断。
⑵ 单片机课程设计,高手请进
交通信号灯模拟控制系统设计程序流程图
开始
↓
8051初使化
↓
四个路口红灯亮
↓
东西红灯亮,南北绿灯亮,延时
↓
东西红灯亮,南北黄灯闪烁,延时
↓
东西绿灯亮,南北红灯亮,延时
↓
东西黄灯闪烁,南北红灯亮,延时
交通信号灯模拟控制系统主程序
ORG 0000H
SJMP A3
ORG 0030H
A3: MOV SP,#60H ;设栈指针初值
MOV A, #24H
MOV P1, A
SETB P3.2
CLR P3.3
CLR P3.4
SETB P3.5 ;全部红灯亮
MOV R4,#00H ;显示0秒
MOV R7,#00H ;显示0秒
MOV R2,#03H
LCALL XI ;调用子程序
A2 : MOV A,#0CH
MOV P1,A
SETB P3.2
SETB P3.3
CLR P3.4
CLR P3.5 ;东西红灯,南北绿灯
MOV R4,#14H ; 显示20秒
LOOP2 : MOV R2,#03H
LCALL XI
DJNZ R4,LOOP2 ;判断20秒显示时间到否
MOV R2,#03H
LCALL XI
LOOP8: MOV R2,#03H ;南北黄灯闪3次
LCALL XI
MOV R4,#05H ;设南北黄灯亮长显示5秒
SETB P3.2
CLR P3.3
A1: MOV A,#14H
MOV P1 ,A
SETB P3.4
CLR P3.5 ;东西红灯,南北黄灯
MOV R2,#01H ;定时
LCALL DELAY ;调用延时子程序
MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁
MOV R2 ,#01H ;定时
LCALL DELAY
DJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否?
MOV A, #61H
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4
SETB P3.5 ;东西绿灯,南北红灯
MOV R4,#14H ;显示20秒
LOOP3:
MOV R2,#03H
LCALL XI
DJNZ R4,LOOP3 ;判断20秒显示时间到否
MOV R7,#05H ;设东西黄灯亮长显示5秒
SETB P3.5
A0: MOV A,#0A2H
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4 ;东西黄灯,南北红灯
MOV R2,#01H ;定时
LCALL DELAY
MOV A,#20H ;
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁
MOV R2,#01H ;定时
LCALL DELAY
DJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否?
LJMP A2 ;循环回状态1,即东西红灯,南北黄灯
DELAY: PUSH 2
PUSH 1
PUSH 0 ;进栈
DELAY1: MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$ ;判断是否运行完0B2H
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2 ;出栈
DJNZ R2 ,DELAY ; 判断R2是否运行完
RET ;返回主程序
XI: MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S: DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S1: DJNZ R7,H55S1
LCALL DELAY
RET
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
只要小改一下就行了
⑶ 单片机课程设计
附2:程序
ORG 0000H
LJMP START
ORG 0003H
LJMP JIA
ORG 0013H
LJMP JIAN
ORG 0030H
FLAG1 BIT F0 ;DS18B20存在标志位
DQ BIT P2.2
TEMPER_L EQU 29H
TEMPER_H EQU 28H
A_BIT EQU 35H
B_BIT EQU 36H
START:
MOV IE,#85H
MOV 30H,#30
SHEZHI:MOV R1,#30H
ACALL DISPLAY
MOV P2,#0FFH
MOV A,P2
MOV C,ACC.0
JNC SHEZHI
LJMP MAIN
DISPLAY:MOV A,@R1;将29H中的十六进制数转换成10进制
MOV B,#10 ;10进制/10=10进制
DIV AB
MOV B_BIT,A ;十位在A
MOV A_BIT,B ;个位在B
MOV DPTR,#TAB ;指定查表启始地址
SETB P3.7 ;选中第一个数码管
MOV A,A_BIT ;取个位数
MOVC A,@A+DPTR ;查个位数的7段代码
MOV P1,A ;送出个位的7段代码
LCALL DELAY ; 调用延时
CLR P3.7
SETB P3.6 ;选中第二个数码管
MOV A,B_BIT ;取十位数
MOVC A,@A+DPTR ;查十位数的7段代码
MOV P1,A ;送出十位的7段代码
LCALL DELAY
CLR P3.6
RET
JIA:
MOV P2,#0FFH
MOV A,P2
MOV C,ACC.0
JC OUT
INC @R1
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
OUT:
RETI
JIAN:
MOV P2,#0FFH
MOV A,P2
MOV C,ACC.0
JC OUT1
DEC @R1
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
OUT1:
RETI
DELAY: ;延时子程序
MOV R5,#120
NOP
NOP
D1: MOV R6,#100
D2: DJNZ R6,D2
DJNZ R5,D1
RET
;**************主程序开始************
MAIN:
LCALL INIT_18B20
;LCALL RE_CONFIG
LCALL GET_TEMPER
LJMP CHANGE
;**********DS18B20复位程序*****************
INIT_18B20: SETB DQ
NOP
CLR DQ
MOV R0,#0FBH
TSR1: DJNZ R0,TSR1 ;延时
SETB DQ
MOV R0,#25H
TSR2: JNB DQ ,TSR3
DJNZ R0,TSR2
TSR3: SETB FLAG1 ;置标志位,表明DS18B20存在
CLR P0.5 ;二极管指示
AJMP TSR5
TSR4: CLR FLAG1
LJMP TSR7
TSR5: MOV R0,#06BH
TSR6: DJNZ R0,TSR6
TSR7:SETB DQ ;表明不存在
RET
;*****************读转换后的温度值****************
GET_TEMPER:
SETB DQ
LCALL INIT_18B20
JB FLAG1,TSS2
RET ;若不存在则返回
TSS2: MOV A,#0CCH ;跳过ROM
LCALL WRITE_18B20
MOV A,#44H ;发出温度转换命令
LCALL WRITE_18B20
;LCALL DISPLAY ;延时
LCALL INIT_18B20
MOV A,#0CCH ;跳过ROM
LCALL WRITE_18B20
MOV A,#0BEH ;发出读温度换命令
LCALL WRITE_18B20
LCALL READ2_18B20 ;读两个字节的温度
RET
;***************写DS18B20程序************
WRITE_18B20:
MOV R2,#8
CLR C
WR1:
CLR DQ
MOV R3,#6
DJNZ R3,$
RRC A
MOV DQ,C
MOV R3,#23
DJNZ R3,$
SETB DQ
NOP
DJNZ R2,WR1
SETB DQ
RET
;***********读18B20程序,读出两个字节的温度*********
READ2_18B20:
MOV R4,#2 ;低位存在29 H,高位存在28H
MOV R1,#29H
RE00: MOV R2,#8
RE01: CLR C
SETB C
NOP
NOP
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3,#7
DJNZ R3,$
MOV C,DQ
MOV R3,#23
DJNZ R3,$
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
;************读出的温度进行数据转换**************
CHANGE: MOV A,29H
MOV C,28H.0 ;将28H中的最低位移入C
RRC A
MOV C,28H.1
RRC A
MOV C,28H.2
RRC A
MOV C,28H.3
RRC A
MOV 29H,A
MOV R1,#29H
LCALL DISPLAY ;调用数码管显示子程序
CLR C
MOV A,30H
SUBB A,29H
JC BJ
LJMP MAIN
BJ:CPL P0.0
CPL P0.1
LJMP MAIN
;***********************************
D1MS: MOV R7,#80 ;1MS延时(按12MHZ算)
DJNZ R7,$
RET
;*************************
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
⑷ 什么叫单片机采用单片机的目的与意义单片机课设的目的与意义
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
采用单片机可以完成很多功能,现在很多电子产品都要用到单片机。
因为单片机这么课是一门实践性很强的课程,单纯学习课本不能掌握这门知识,经过课程设计,你的硬件设计能力和编程能力都能得到提升。
⑸ 单片机课程设计
要LED的亮度有变化,一是施加一个可变电压源或者电流源,显然这个属于模拟控制过程。一是控制LED发光的时间,就是施加一个周期固定的,占空比可调的方波电压源,控制占空比可得到不同的亮度感知,这个属于数字控制过程。
那么这里就选择控制占空比的方法就是了。
⑹ 单片机课程设计
注:假设你的灯L1,L2,L3,L4阴极分别连p1.0,p1.1,p1.2,p1.3,阳极接电源
ORG 0
AJMP MAIN
MAIN:
NEXT:
MOV A,#0FEH
S2: MOV R1,#5
S1: MOV P1,A
ACALL DELAY
PUSH ACC
MOV A,#0FFH
MOV P1,A
ACALL DELAY
POP ACC
DJNZ R1,S1
RL A
JNZ ACC.4,NEXT
SJMP S2
DELAY:
MOV TMOD,#01H
MOV R0,#10
LOOP:
CLR TF0
MOV TH0,#0B1H
MOV TL0,#0E0H
SETB TR0
JNC TF0,$
CLR TR0
DJNZ R0,LOOP
RET
END
⑺ 单片机课程设计
名称 : 单片机报警系统(原创) 晶振 : 6MHz 作者 : dsu5566 日期 : 2011年11月15日 备注 : 转载请注明出去 专 参考程属序http://hi..com/dsu5566/blog/item/1d698cccd627fa0000e928a7.html 电路⑻ 求个单片机课程设计报告
单片机课程设计报告
一、设计目的
熟悉单片机的使用方法。
二、设回计任务和要求
用3000只答DIP40的单片机叠起来,看怎样可以叠的最高。
三、设计原理分析
1、SOP64封装的单片机主体每片厚度(不含引脚为1.8mm,如果单个同一方向叠起来的总厚度为5.4米,可能性不大。为了可靠,可以叠成“丁”字形或“十”字形,这样不易倒,