单片机课程设计Word文档格式.docx
- 文档编号:15832065
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:12
- 大小:154.18KB
单片机课程设计Word文档格式.docx
《单片机课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
本系统实用性强、操作简单、扩展性强。
本次试验要求数码管显示数字从0-9再从9-0然后蜂鸣器响。
同时要求通过串口控制灯的亮度。
三.设计过程
1.设计原理
我们选择了串口控制灯亮度的题目。
在确定好题目后我们首先分析了题目的原理和设计步骤,在原来数字显示程序的基础上进行改动,当数字从0-9变化后,再从9-0,然后蜂鸣器响一声。
同时在中断的子程序中加入串口控制部分,根据灯闪的频率不同显示出灯的亮度不同,而且是调节占空比来调节灯闪动的频率。
2、设计电路图
1)、单片机系统的时钟电路
ATMEL公司生产的AT89C51单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,如图一:
图一单片机系统时钟电路
2)、单片机系统的复位电路
复位电路采取按键复位方式,设计电路如图二。
主要是方便复位,以便更好的观察仿真数据。
图二单片机系统的复位电路
3)、数码管显示电路
数码管显示部分电路如下,P2口作为位选,P0口作为段选。
图三数码管显示电路
4)、整体电路设计图四
3、主程序流程
↑
4.程序设计
;
----------------------------------------
TWENTY_USEQU50H
TWO_MSEQU51H
TEN_MSEQU52H
SECEQU53H
SEC_OLDEQU54H
MINEQU55H
HOUREQU56H
WEEKEQU57H
TTEQU58H
---------------------------------------
lamp_sp_bequ6fh
lamp_bz_bequ6eh
LEDP00EQUP1.0
LEDP01EQUP1.1
BEEPEQUP1.6;
低电平有效
org0000h
jmpmain_start
;
------------------
org000bh
jmpt0_zdzcx
org0023h
jmpuart_zdzcx
------------------------------
org0080h
main_start:
clrp1.7;
打开段选
movSP,#02fh
callcsh_zcx
main_loop:
MOVA,SEC;
将SEC送到A寄存器
XRLA,SEC_OLD;
将SED_OLD和SEC进行异或
JZMAIN_NEXT;
累加器A为0转移到MAIN_NEXT
movSEC_OLD,SEC
----------
calllamp_blink_zcx;
显示程序
MAIN_NEXT:
jmpmain_loop
t0_zdzcx:
pusha
pushPSW
movTH0,#0FFh
movTL0,#0ECh;
20us
INCTWENTY_US
MOVA,TWENTY_US
CJNEA,TT,ZHK_BJ
CLRLEDp00;
置高电平
SJMPFINAL
ZHK_BJ:
占空比比较
JCFLAG
SETBLEDp00
FLAG:
FINAL:
CJNEA,#100,T0_ZDZCX_TC
TWO_MS_CL:
MOVTWENTY_US,#00H
INCTWO_MS
MOVA,TWO_MS
CJNEA,#5,T0_ZDZCX_TC
TEN_MS_CL:
MOVTWO_MS,#00H
INCTEN_MS
MOVA,TEN_MS
SEC_CL:
MOVTEN_MS,#00H
INCSEC
MOVA,SEC
CJNEA,#60,T0_ZDZCX_TC
MIN_CL:
MOVSEC,#00H
INCMIN
MOVA,MIN
CJNEA,#60D,T0_ZDZCX_TC
HOUR_CL:
MOVMIN,#00H
INCHOUR
MOVA,HOUR
CJNEA,#24,T0_ZDZCX_TC
WEEK_CL:
MOVHOUR,#00H
INCWEEK
MOVA,WEEK
CJNEA,#8,T0_ZDZCX_TC
MOVWEEK,#1
T0_ZDZCX_TC:
POPPSW
POPA
RETI
----------------串口----------
uart_zdzcx:
jbcTI,uart_fs
jbcRI,usrt_js
jmpuart_exit
uart_fs:
jmpuart_exit;
发送程序
usrt_js:
movlamp_bz_b,SBUF;
接收程序
movSBUF,SBUF
uart_exit:
reti
csh_zcx:
----初始化pwm变量--
MOVTT,#0
初始化时间变量
CLRA;
清空累加器A
MOVTWENTY_US,A;
对TWENTY_US清零
MOVTWO_MS,A;
对TEN_MS清零
MOVTEN_MS,A;
MOVSEC,A;
对SEC清零
MOVMIN,A;
对MIN清零
MOVHOUR,A;
对HOUR清零
MOVWEEK,#01;
给WEEK赋值01
-----
初始化指针
movlamp_sp_b,#0
movlamp_bz_b,#0
-------
初始化定时器和串口中断
movTMOD,#00100001b
movTL0,#0ECh
movTH1,#0f3h;
定时器1,uart
movTL1,#0f3h;
波特率设定为4800
MOVPCON,#10000000B;
关闭倍频
setbTR0
setbTR1
--uart----
movSCON,#01010000b
--int-----
movIP,#00000000b
movIE,#10010010b
ret
-----------显示程序-----------
lamp_blink_zcx:
mova,lamp_bz_b
anla,#00fh
movb,#3
mulab
movdptr,#lamp_ms_tab
jmp@a+dptr
lamp_ms_tab:
ljmplamp_ms0
ljmplamp_ms1
ljmplamp_ms2
ljmplamp_ms3
ljmplamp_ms4
ljmplamp_ms5
lamp_ms0:
mova,lamp_sp_b
SETBBEEP
JZBEEP_ZCX
LOOP1:
movdptr,#lamp_data_tab
movca,@a+dptr
movP2,a
inclamp_sp_b
cjnea,#18,lamp_exit
jmplamp_exit
lamp_ms1:
MOVTT,#1
jmplamp_ms0
lamp_ms2:
MOVTT,#10
lamp_ms3:
MOVTT,#50
lamp_ms4:
MOVTT,#70
lamp_ms5:
MOVTT,#99
lamp_exit:
BEEP_ZCX:
CLRBEEP
JZLOOP1
RET
lamp_data_tab:
DB00000011b,10011111b,00100101b,00001101b;
0123
DB10011001b,01001001b,01000001b,00011111b;
4567
DB00000001b,00001001b;
89
DB00000001b,00011111b,01000001b,01001001b;
8765
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计