stc15头文件c语言,找一个STC15汇编头文件

从没用过C语言,不懂什么叫头文件。 如果是汇编,那估计你说的头文件就是寄存器定义。

下面贴上我自己编的,可参考下。

----------------------------------------------------------------------------------------------------

;下面是寄存器的分配使用

;字节20H的前4位用作18b20的存在标示位 。位00H,01H,02H,03H

;字节20H的后4位用作正负温度标志  位04H,05H,06H,07H

TPH1 EQU 24H            ;存放温度值的高字节

TPL1 EQU 25H            ;存放温度值的低字节

TTH1 EQU 26H            ;合并成完整的温度整数\

TTL1 EQU 27H            ;合并成完整的温度整数

DQ1  BIT P1.5      ;第一个DS18B20的数据口位

DQ2 BIT P1.4      ;第二个DS18B20的数据口位

LCDSX1 BIT 0FH    ;字节21H的第1位做调试显示标志

TSRAM0 EQU 2CH         ;定时器计数用的寄存器0

TSRAM1 EQU 2DH         ;定时器计数用的寄存器1

TSRAM2 EQU 2EH         ;定时器计数用的寄存器1

TSRAM3 EQU 2FH          ;定时器计数用的寄存器1

TSRAM4 EQU 30H          ;定时器计数用的寄存器1

YSRAM1 EQU 31H       ;延时用寄存器1

YSRAM2 EQU 32H      ;延时用寄存器2

YSRAM3 EQU 33H     ; 延时用寄存器3

S1X EQU 34H   ;第一行显示个位

S10X EQU 35H  ;第一行显示十位

S100X EQU 36H  ;第一行显示百位

S1000X EQU 37H  ;第一行显示千位

S1XB EQU 38H   ;第二行显示个位

S10XB EQU 39H   ;第二行显示十位

S100XB EQU 3AH  ;第二行显示百位

S1000XB EQU 3BH   ;第二行显示千位

SS1 EQU 3CH  ;时钟1秒计数

SS10 EQU 3DH   ;时钟10秒计数

MM1 EQU 3EH   ;时钟分个位

MM10 EQU 3FH  ;时钟分十位

HH1 EQU 40H   ;时钟小时个位

HH10 EQU 41H  ;时钟小时十位

RR1 EQU 42H   ;日 个位

RR10 EQU 43H  ;日十位

YY1 EQU 44H   ; 月个位

YY10 EQU 45H ;月十位

NN1 EQU 46H    ;年个位

NN10 EQU 47H    ;年十位

NN100 EQU 48H  ;年百位

NN1K  EQU 49H  ;年千位

RY1  EQU 4EH  ;每月日数计算最高限制

SBUF_R  EQU 4AH    ;串口接收字节计数

RAM1602 EQU 4BH         ;LCD1602写入缓冲

ASWRAM1 EQU 4CH    ;按键A 计数

BSWRAM1 EQU 4DH    ;按键B 计数

RAM1602B EQU 4EH ;LCD1602 光标移动计数1

RAM1602C EQU 4FH ;LCD1602 光标移动计数2

RAM1602X EQU 50H ;LCD1602 光标闪烁

RS BIT P5.5    ;LCD1602 的 RS端  ,1-数据,0-指令

RW BIT P5.6    ;LCD1602 的 RW端  ,1-读出,0-写入

EN BIT P5.4    ;LCD1602 的 E端   ,先从低变高,再变低,以确认输入数据或命令

LCD1_1 EQU 80H   ;LCD1602的第一行第1个

LCD2_1 EQU 90H   ;LCD1602的第二行第1个

ORG 0000H

LJMP AA1

;--------------------------

ORG 00BH;T0中断入口

LJMP T0INT

ORG 0100H

;数值初始化

AA1:MOV R0,#02H      ;间接寻址,从02H开始到0FFH共256字节   全清空置零

MOV R1,#255

CL1:MOV @R0,#00H

INC R0

DJNZ R1,CL1

MOV R0,#00

MOV R1,#00

SETB DQ1

CLR LCDSX1    ;清显示调试标注

MOV SP,#0E0H;设定堆栈底在RAM的0E0H

MOV NN1K,#2    ;给年数置2001年

MOV NN100,#0

MOV NN10,#2

MOV NN1,#0

MOV YY10,#0      ;给月数置 1月

MOV YY1,#1

MOV RR10,#0    ;给日数置 1日

MOV RR1,#1

;---------定时器T0初始化--------10毫秒@11.0592MHz

ANL AUXR,#7FH                ;定时器T0时钟12T模式

ANL TMOD,#0F0H                ;设置定时器模式

MOV TL0,#001H                ;设置定时初值 #001H

MOV TH0,#0DCH                ;设置定时初值 #0DCH

CLR TF0                        ;清除TF0标志

SETB TR0                ;定时器0开始计时

SETB ET0             ;允许T0中断

;-------------------------

;------定时器T2初始化-------用于串口波特率

;晶振-11.0592MHZ

;波特率数对应T2重装值

;9600----0FEE0H

;4800----0FDC0H

;2400----0FB80H

;1200----0F700H

MOV T2L,#0E0H    ;波特率9600

MOV T2H,#0FEH

MOV AUXR,#15H   ;定时器T2工作1T模式,并开始计时  ;  选择定时器2作串口波特率

;-------------------------

MOV A,AUXR1

MOV AUXR1,A

SETB SM0

SETB SM1   ;串口工作在模式3,9位 ,波特率可变

SETB  REN   ;*****允许串口接收********

CLR ES        ;暂停串口中断

SETB EA            ;中断总开关

;---------------------------------------

;LCD1602初始化

MOV RAM1602,#000      ;清P2

LCALL DELAY15MS     ;延时15毫秒

MOV RAM1602,#38H             ;16行*2,5*8

LCALL ZL

LCALL DELAY5MS       ;延时5毫秒

MOV RAM1602,#38H             ;16行*2,5*8

LCALL ZL

LCALL DELAY5MS       ;延时5毫秒

MOV RAM1602,#08H         ;关显示

LCALL ZL

LCALL DELAY1MS       ;延时1毫秒

MOV RAM1602,#01H       ;清屏

LCALL ZL

LCALL DELAY5MS       ;延时5毫秒

MOV RAM1602,#06H       ;地址计数器AC自动加1,光标不移动*******

LCALL ZL     ;

LCALL DELAY1MS       ;延时1毫秒

MOV RAM1602,#0CH             ;开显示

LCALL ZL

LCALL DELAY1MS       ;延时1毫秒

;-----------------------------------

MOV R0,#80H   ;给80H到09FH都置空格(20H)

MOV R1,#32    ;32个字符存储字节

CL2: MOV @R0,#20H

INC R0

DJNZ R1,CL2

MOV ASWRAM1,#00

MOV BSWRAM1,#00

;运行主程序

AA2:LCALL DS18B20_1       ;第一路温度测量

LCALL DS18B20_2

LCALL DS1820_JH

LCALL T_SC1      ;温度数送显示 第一路

LCALL SJ1         ;调用时钟计时

LCALL SW1           ;调用按键扫描

MOV A,RAM1602B

CJNE A,#00,AA11

LCALL LCD_SC1     ;调用正常显示

LJMP AA2

AA11: LCALL LCD_SCX1    ; 调用闪烁显示

AA10: LJMP AA2

;------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值