AT89C51简易时钟
时间: 2024-06-14 21:07:09 浏览: 123
AT89C51是一款经典的8位单片机,它具有丰富的外设和强大的功能。下面是一个简单的AT89C51单片机实现的简易时钟的示例代码:
```assembly
ORG 0H
MOV P1,#00H ; 初始化P1口为输出口
MOV P2,#00H ; 初始化P2口为输出口
MOV P3,#00H ; 初始化P3口为输出口
MOV P0,#00H ; 初始化P0口为输出口
MOV TMOD,#01H ; 设置定时器0为工作方式1
MOV TH0,#3CH ; 设置定时器0的初始值为3CH
MOV TL0,#0B0H ; 设置定时器0的初始值为0B0H
SETB TR0 ; 启动定时器0
SETB EA ; 允许中断
SETB ET0 ; 允许定时器0中断
SETB EX0 ; 允许外部中断0
SETB EX1 ; 允许外部中断1
SETB IT0 ; 设置外部中断0为下降沿触发
SETB IT1 ; 设置外部中断1为下降沿触发
SETB ES ; 允许串口中断
SETB SM0 ; 设置串口工作方式为模式1
SETB SM1 ; 设置串口工作方式为模式1
SETB REN ; 允许串口接收
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB TR1 ; 启动定时器1
SETB TR2 ; 启动定时器2
SETB T2EX ; 设置定时器2外部触发
SETB PS ; 设置串口波特率发生器
SETB PT2 ; 设置定时器2为8位自动重装方式
SETB PT1 ; 设置定时器1为8位自动重装方式
SETB PT0 ; 设置定时器0为8位自动重装方式
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许定时器2中断
SETB ET1 ; 允许定时器1中断
SETB ET0 ; 允许定时器0中断
SETB ES ; 允许串口中断
SETB EX1 ; 允许外部中断1
SETB EX0 ; 允许外部中断0
SETB P ; 设置串口波特率发生器
SETB SM2 ; 设置串口工作方式为模式2
SETB SM1 ; 设置串口工作方式为模式1
SETB SM0 ; 设置串口工作方式为模式0
SETB TB8 ; 设置串口发送数据位8位
SETB RB8 ; 设置串口接收数据位8位
SETB TI ; 设置串口发送标志位
SETB RI ; 设置串口接收标志位
SETB T2 ; 设置定时器2为工作方式1
SETB T1 ; 设置定时器1为工作方式1
SETB T0 ; 设置定时器0为工作方式1
SETB TR2 ; 启动定时器2
SETB TR1 ; 启动定时器1
SETB TR0 ; 启动定时器0
SETB IE ; 允许中断
SETB EA ; 允许中断
SETB ET2 ; 允许
阅读全文