atmega8.mak是什么文件
atmega8 时间:2021-07-05 阅读:(
)
求一个89S52单片机电子时钟程序!急急急.......!
;实验五:电子时钟
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AT89C52时钟程序 ;;
;; libinrong 2004/05/24 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; 定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁用,
; P1.0为调整按钮,P1.1为调整时钟,P1.2为调整分钟,P1.3为调整秒钟
; P0.0-7口 为数码管段选,采用共阳显示管。
; P2.1-6为数码管位选。
; 70-71H 秒计时和显示单元
; 72-73H 分显示单元 注意:72H放个位数 73H放十位数
; 74-75H 小时显示单元
; 76-77H 分计时单元
; 78-79H 小时计时单元
; 7AH 放“熄灭符”数据 0aH
; 位 00h 放 分调整标志
; 位 01h 放小时调整标志
; 位 02h 放闪烁标志
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ORG 0000H ;程序执行开始地址
LJMP START ;跳到标号START执行
ORG 0003H ;外中断0中断程序入口
RETI ;外中断0中断返回
ORG 000BH ;定时器T0中断程序入口
LJMP INTT0 ;跳至INTTO执行
ORG 0013H ;外中断1中断程序入口
RETI ;外中断1中断返回
ORG 001BH ;定时器T1中断程序入口
LJMP INTT1 ;跳至INTT1执行
ORG 0023H ;串行中断程序入口地址
RETI ;串行中断程序返回
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
START: MOV R0,#70H ;清70H-7AH共11个内存单元
MOV R7,#0BH ;
CLEARDISP: MOV @R0,#00H ;
INC R0 ;
DJNZ R7,CLEARDISP ;
MOV 20H,#00H ;清20H(标志用)
MOV 7AH,#0AH ;放入"熄灭符"数据
MOV TMOD,#11H ;设T0、T1为16位定时器
;用11.0592M初值是4C00H;用12M初值是3CB0H
MOV TL0,#00H ;50MS定时初值(T0计时用)
MOV TH0,#4cH ;50MS定时初值
MOV TL1,#00H ;50MS定时初值(T1闪烁定时用)
MOV TH1,#4cH ;50MS定时初值
SETB EA ;总中断开放
SETB ET0 ;允许T0中断
SETB TR0 ;开启T0定时器
MOV R4,#14H ;1秒定时用初值(50MS×20)
START1: LCALL DISPLAY ;调用显示子程序
jnb P1.1,set_h ;此按键是小时加1
jnb P1.2,set_M ;此按键是分钟加1
SJMP START1 ;P1.0口为1时跳回START1
set_h: ljmp set_hh
set_m: ljmp set_mm
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1秒计时程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;T0中断服务程序
INTT0: PUSH ACC ;累加器入栈保护
PUSH PSW ;状态字入栈保护
CLR ET0 ;关T0中断允许
CLR TR0 ;关闭定时器T0
;用11.0592M初值是4C00H;用12M初值是3CB0H
MOV A,#00H ;中断响应时间同步修正,要精确调整在这里!!!
ADD A,TL0 ;低8位初值修正
MOV TL0,A ;重装初值(低8位修正值)
MOV A,#4CH ;高8位初值修正
ADDC A,TH0 ;
MOV TH0,A ;重装初值(高8位修正值)
SETB TR0 ;开启定时器T0
DJNZ R4, OUTT0 ;20次中断未到中断退出
ADDSS: MOV R4,#014H ;20次中断到(1秒)重赋初值 14h
MOV R0,#71H ;指向秒计时单元(70H-71H)
ACALL ADD1 ;调用加1程序(加1秒操作)
MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)
CLR C ;清进位标志
CJNE A,#60H,ADDMM ;
ADDMM: JC OUTT0 ;小于60秒时中断退出
ACALL CLR0 ;大于或等于60秒时对秒计时单元清0
MOV R0,#77H ;指向分计时单元(76H-77H)
ACALL ADD1 ;分计时单元加1分钟
MOV A,R3 ;分数据放入A
CLR C ;清进位标志
CJNE A,#60H,ADDHH ;
ADDHH: JC OUTT0 ;小于60分时中断退出
ACALL CLR0 ;大于或等于60分时分计时单元清0
MOV R0,#79H ;指向小时计时单元(78H-79H)
ACALL ADD1 ;小时计时单元加1小时
MOV A,R3 ;时数据放入A
CLR C ;清进位标志
CJNE A,#24H,HOUR ;
HOUR: JC OUTT0 ;小于24小时中断退出
ACALL CLR0 ;大于或等于24小时小时计时单元清0
OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移
MOV 73H,77H ;入对应显示单元
MOV 74H,78H ;
MOV 75H,79H ;
POP PSW ;恢复状态字(出栈)
POP ACC ;恢复累加器
SETB ET0 ;开放T0中断
RETI ;中断返回
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 加1子 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ADD1: MOV A,@R0 ;取当前计时单元数据到A
DEC R0 ;指向前一地址
SWAP A ;A中数据高四位与低四位交换
ORL A,@R0 ;前一地址中数据放入A中低四位
ADD A,#01H ;A加1操作
DA A ;十进制调整
MOV R3,A ;移入R3寄存器
ANL A,#0FH ;高四位变0
MOV @R0,A ;放回前一地址单元
MOV A,R3 ;取回R3中暂存数据
INC R0 ;指向当前地址单元
SWAP A ;A中数据高四位与低四位交换
ANL A,#0FH ;高四位变0
MOV @R0,A ;数据放入当削地址单元中
RET ;子程序返回
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 清零程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;对计时单元复零用
CLR0: CLR A ;清累加器
MOV @R0,A ;清当前地址单元
DEC R0 ;指向前一地址
MOV @R0,A ;前一地址单元清0
RET ;子程序返回
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 显示程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 显示数据在70H-75H单元内,用六位LED共阳数码管显示,P1口输出段码数据,P2口作
; 扫描控制,每个LED数码管亮1MS时间再逐位循环。
DISPLAY: MOV R1,#70H ;指向显示数据首址
MOV R5,#11011111B ;扫描控制字初值
PLAY: MOV a,r5
MOV P2,A ;从P2口输出
MOV A,@R1 ;取显示数据到A
MOV DPTR,#TAB ;取段码表地址
MOVC A,@A+DPTR ;查显示数据对应段码
CJNE R5,#0FEH,PLAY_1 ;不是秒低位则转移PLAY_1
ANL A,#7FH ;是,则点亮
AJMP PLAY_3
PLAY_1: CJNE R5,#0FBH,PLAY_2 ;分低位?
ANL A,#7FH
AJMP PLAY_3
PLAY_2: CJNE R5,#0EFH,PLAY_3 ;时低位?
ANL A,#7FH
PLAY_3: mov dptr,#00ffh ;将要显示的字型码送74LS273
movx @dptr,a ;段码放入P0口
LCALL DL1MS ;显示1MS
INC R1 ;指向下一地址
MOV A,R5 ;扫描控制字放入A
JNB ACC.0,ENDOUT ;ACC.5=0时一次显示结束
RR A ;A中数据循环左移
MOV R5,A ;放回R5内
AJMP PLAY ;跳回PLAY循环
ENDOUT: SETB P2.0 ;一次显示结束,P2口复位
;MOV P1,#0FFH ;P1口复位
RET ;子程序返回
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
;共阳段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮"
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 延时程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;1MS延时程序,LED显示程序用
DL1MS: MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象
DS20MS: ACALL DISPLAY
ACALL DISPLAY
ACALL DISPLAY
RET
;延时程序,用作按键时间的长短判断
DL1S: LCALL DL05S
LCALL DL05S
RET
DL05S: MOV R3,#20H ;8毫秒*32=0.256秒
DL05S1: LCALL DISPLAY
DJNZ R3,DL05S1
RET
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 闪动调时 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;T1中断服务程序,用作时间调整时调整单元闪烁指示
INTT1: PUSH ACC ;中断现场保护
PUSH PSW ;
MOV TL1, #00H ;装定时器T1定时初值
MOV TH1, #4CH ;
DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次)
MOV R2,#06H ;重装0.3秒定时用初值
CPL 02H ;0.3秒定时到对闪烁标志取反
JB 02H,FLASH1 ;02H位为1时显示单元"熄灭"
MOV 72H,76H ;02H位为0时正常显示
MOV 73H,77H ;
MOV 74H,78H ;
MOV 75H,79H ;
INTT1OUT: POP PSW ;恢复现场
POP ACC ;
RETI ;中断退出
FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制
MOV 72H,7AH ;01H位为0时,"熄灭符"数据放入分
MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据
MOV 74H,78H ;
MOV 75H,79H ;
AJMP INTT1OUT ;转中断退出
FLASH2: MOV 72H,76H ;01H位为1时,"熄灭符"数据放入小时
MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示
MOV 74H,7AH ;
MOV 75H,7AH ;
AJMP INTT1OUT ;转中断退出
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; P1.1 小时加1调整程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;当调小时时P1.1按键按下时进入此程序
SET_hh: CLR ET0 ;关定时器T0中断
CLR TR0 ;关闭定时器T0
MOV R2,#06H ;进入调时间的状态,赋闪烁定时初值
SETB ET1 ;允许T1中断
SETB TR1 ;开启定时器T1
SETHH1: JNB P1.1,SET5 ;等待键释放
CLR 00H ;清调分标志
SETB 01H ;小时调整标志置1
SET6: JB P1.1,SET7 ;等待按键按下
LCALL DL05S ;有键按下延时0.5秒
JNB P1.1,SETOUT ;按下时间大于0.5秒退出时间调整
MOV R0,#79H ;按下时间小于0.5秒加1小时操作
LCALL ADD1 ;调加1子程序
MOV A,R3 ;取调整单元数据
CLR C ;清进位标志
CJNE A,#24H,HOUU ;计时单元数据与24比较
HOUU: JC SET6 ;小于24转SET6循环
LCALL CLR0 ;大于或等于24时清0操作
AJMP SET6 ;跳转到SET6循环
SETOUT: JNB P1.0,SETOUT1 ;调时退出程序。
等待键释放
LCALL DISPLAY ;延时削抖
JNB P1.1,SETOUT ;是抖动,返回SETOUT再等待
CLR 01H ;清调小时标志
CLR 00H ;清调分标志
CLR 02H ;清闪烁标志
CLR TR1 ;关闭定时器T1
CLR ET1 ;关定时器T1中断
SETB TR0 ;开启定时器T0
SETB ET0 ;开定时器T0中断(计时开始)
LJMP START1 ;跳回主程序
SET5: LCALL DISPLAY ;键释放等待时调用显示程序(调小时)
AJMP SETHH1 ;防止键按下时无时钟显示
SET7: LCALL DISPLAY ;等待调小时按键时时钟显示用
AJMP SET6
SETOUT1: LCALL DISPLAY ;退出时钟调整时键释放等待
AJMP SETOUT ;防止键按下时无时钟显示
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; P1.2 分钟加1调整程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;当调分钟时P1.2按键按下时进入此程序
SET_MM: CLR ET0 ;关定时器T0中断
CLR TR0 ;关闭定时器T0
MOV R2,#06H ;进入调时间的状态,赋闪烁定时初值
SETB ET1 ;允许T1中断
SETB TR1 ;开启定时器T1
SET2: JNB P1.2,SET1 ;P1.2口为0(键未释放),等待
SETB 00H ;键释放,分调整闪烁标志置1
SET4: JB P1.2,SET3 ;等待键按下
LCALL DL05S ;有键按下,延时0.5秒
JNB P1.2,SETout_m ;按下时间大于0.5秒转退出程序
MOV R0,#77H ;按下时间小于0.5秒加1分钟操作
LCALL ADD1 ;调用加1子程序
MOV A,R3 ;取调整单元数据
CLR C ;清进位标志
CJNE A,#60H,HHH ;调整单元数据与60比较
HHH: JC SET4 ;调整单元数据小于60转SET4循环
LCALL CLR0 ;调整单元数据大于或等于60时清0
CLR C ;清进位标志
AJMP SET4 ;跳转到SET4循环
SETOUT_m: JNB P1.2,SETOUT1_m ;调时退出程序。
等待键释放
LCALL DISPLAY ;延时削抖
JNB P1.2,SETOUT_m ;是抖动,返回SETOUT再等待
CLR 01H ;清调小时标志
CLR 00H ;清调分标志
CLR 02H ;清闪烁标志
CLR TR1 ;关闭定时器T1
CLR ET1 ;关定时器T1中断
SETB TR0 ;开启定时器T0
SETB ET0 ;开定时器T0中断(计时开始)
LJMP START1 ;跳回主程序
SET1: LCALL DISPLAY ;键释放等待时调用显示程序(调分)
AJMP SET2 ;防止键按下时无时钟显示
SET3: LCALL DISPLAY ;等待调分按键时时钟显示用
AJMP SET4
SETOUT1_m: LCALL DISPLAY ;退出分钟调整时键释放等待
AJMP SETOUT_m ;防止键按下时无时钟显示
END ;程序结束RC1/8等于多少mm
Rc1/8表示英制密封锥管螺纹,尺寸代号1/8 英寸,右旋。
Rc是55度密封圆锥内管螺纹的特征代号,
1/8是尺寸代号,
它的基本尺寸是:
每25.4mm内牙数 28
螺距 0.907mm
牙高 0.581mm
圆弧半径 0.125mm
有效螺纹长度 6.5mm
大径:9.728mm
中径:9.147mm
小径:8.566mm
扩展资料:
尺寸和公差使用与标准系列相同的公式计算的标准系列之外的所有直径与螺距组合。
我国的60°圆锥管螺纹GB/T12716-1991与之等效。
ACME螺纹包括一般用途的和定心的两种配合的梯形螺纹,其中一般用途者与我国标准GB/T5796-1986规定的梯形螺纹的性能相类同。
锥管螺纹只用于液压系统连接;而管螺纹G3/4〃只用于水管连接。
锥管螺纹与管螺纹极为相似,区别只在锥度上。
注意区分管螺纹和普通螺纹的基本尺寸不同。
管螺纹主要用来进行管道的连接,其内外螺纹的配合紧密,有直管与锥管两种。
公称直径是指所连接的管道直径,显然螺纹大径比公称直径大。
1/4,1/2,1/8是英制螺纹的公称直径,单位是英寸。
参考资料来源:百度百科--英制螺纹
参考资料来源:百度百科-RC螺纹PT1/8螺纹标注中的1/8尺寸到底指的是什么尺寸?
PT1/8螺纹标注中的1/8尺寸表示8分之1英寸
化成国际单位是:3.175毫米
1英寸=25.4毫米
1/8英寸=25.4÷8=3.175毫米
在我国,很多行业还是继续用英制单位,电视机是多少寸的,其实是多少英寸,阀门1寸半的,也是指1.5英寸,自来水管是多少寸的,也是指英寸,螺栓、螺母、螺纹等也是用英寸。
扩展资料:
英寸是长度单位,1英尺=12英寸=12×25.4=304.8毫米。
英寸(吋)是使用于联合王国(UK,即英国(英联邦)及其前殖民地的长度单位,一般为1in=2.54cm,在英制里,12英寸为1英尺,36英寸为1码。
英寸(inch,缩写为in.)在荷兰语中的本意是大拇指,一英寸就是指甲底部普通人拇指的宽度。
当然人的大拇指的宽度也是长短不一的。
14世纪时,英皇爱德华二世颁布了“标准合法英寸”。
其规定为:从大麦穗中间选择三粒最大的麦粒并依次排成一行的长度就是一英寸。
在建筑材料中,对管材的称法用英寸这个单位,为2.54cm,而不是用市寸。
在液晶显示器中,规格一般有17寸、19寸、22寸等。
在手机中,屏幕尺寸现在一般有4.0寸、4.2寸、4.5寸、4.7寸、4.8寸、5.0寸、5.2寸、5.5寸、5.7寸、6.44寸等。
在平板电脑中,屏幕尺寸一般有7.9寸、9.7寸、12.9寸。
显示屏的大小通常以对角线的长度来衡量,以英寸单位。
螺纹按其母体形状分为圆柱螺纹和圆锥螺纹;按其在母体所处位置分为外螺纹、内螺纹,按其截面形状(牙型)分为三角形螺纹、矩形螺纹、梯形螺纹、锯齿形螺纹及其他特殊形状螺纹。
参考资料来源:百度百科-英寸
参考资料来源:百度百科-螺纹螺纹中 PF3/8是那个国家的标准,各项参数都是多少,谢谢
PF 英制平行管螺纹 IS B0202 55°
PF3/8是英制管螺纹,G3/8 每英寸19牙, 螺距1.337 mm,外径16.663mm,中径15.807mm,螺纹底孔14.9 mm。
.mak是什么文件
1. .mak文件即makefile,类似于*.dsw和*.dsp文件的和;在VC IDE中tools-->Options-->Build在该tag页面中将Export Makefile打上勾,就能将App生成makefile文件。
2. makefile(.mak)的作用是命令行编译连接命令nmake使用的文件。
它以文本的方式规定了nmake要编译那些文件,生成那些文件,要连接那些文件,生成的.exe文件的名称等,也支持增量编译。
它有自己的一套语法。
想了解详情可以百度make files。
3. .mak文件需要用VC 的C1编译器或Linux等Command编译打开。
傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...
bgp.to对日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!官方网站:https://www.bgp.to...
最近很多网站都遭受到了伪墙/假墙攻击,导致网站流量大跌,间歇性打不开网站。这是一种新型的攻击方式,攻击者利用GWF规则漏洞,使用国内服务器绑定host的方式来触发GWF的自动过滤机制,造成GWF暂时性屏蔽你的网站和服务器IP(大概15分钟左右),使你的网站在国内无法打开,如果攻击请求不断,那么你的网站就会是一个一直无法正常访问的状态。常规解决办法:1,快速备案后使用国内服务器,2,使用国内免备案服...
atmega8为你推荐
bloomfilter布隆过滤器既然有错误率,为什么还能应用在key-value系统中?oncontextmenuAndroid:onMenuItemSelected()方法与onOptionsItemSelected()方法有什么区别?qq注册账号用QQ注册有几种方法?webcrackwebcrack4网页密码radius认证如何写一个C#的Radius认证客户端layoutsubviews如何让NSSplitView的子View的大小固定新手怎么制作表格如何学会制作表格?菜霸现实中遇到地痞流氓该怎么办pps网络电视PPS网络电视是那个国家的公司开发出来的文件系统类型在windows系统中,常见的文件类型主要由哪几种?
申请域名 深圳域名空间 北京vps主机 网站域名备案 高防dns securitycenter arvixe bandwagonhost 60g硬盘 godaddy域名转出 线路工具 100m免费空间 服务器干什么用的 华为云盘 raid10 彩虹云 创建邮箱 免费个人网页 97rb 杭州电信 更多