关于STC8G1K08A端口设置的汇编程序
原来只用过stc的8952和stc15系列,最近搞了几只8G1K08,说是必须先设置端口才可以用,C语言的找了例程试了一下勉强点亮了小灯,汇编的一直没有找到例程没法用,对汇编略懂一丁点,希望有大侠出来指点一下,最好有例程好学习学习,谢谢啦。本帖最后由 STCAI-32位8051 于 2024-3-26 14:36 编辑
=====保姆式服务,动动小指头代码就出来了
===基于自带硬件USB仿真的32位8051,STC32G12K128,2组CAN,课程从第二十四到第三十集主讲汇编语言程序设计
===北京化工大学,何宾教授亲自主讲,STC创始人主持授课,正统权威
【新提醒】视频教学:《STC32位8051单片机原理及应用》,何宾教授主讲 - 视频教学,《单片机原理及应用》教学改革及实践研讨会,实战技术交流会,会务通知 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区https://www.stcaimcu.com/forum.p ... 3355&extra=page%3D1
对汇报略懂一丁点,建议还是先学C吧。
例程,可以用STC-ISP中的。 可以参考STC8H实验箱例程包里面的例子,有汇编版本。
论坛下载地址:https://www.stcaimcu.com/plugin.php?id=mdown:index#/~cateid=5&key= 看看这个能用吗?
$include (STC8G.INC)
P_SW1 DATA 0A2H
P0M1 DATA 093H
P0M0 DATA 094H
P1M1 DATA 091H
P1M0 DATA 092H
P2M1 DATA 095H
P2M0 DATA 096H
P3M1 DATA 0B1H
P3M0 DATA 0B2H
P4M1 DATA 0B3H
P4M0 DATA 0B4H
P5M1 DATA 0C9H
P5M0 DATA 0CAH
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TM0ISR
ORG 0100H
TM0ISR:
CPL P1.0 ;测试端口
RETI
MAIN:
MOV SP, #5FH
MOV P0M0, #00H
MOV P0M1, #00H
MOV P1M0, #00H
MOV P1M1, #00H
MOV P2M0, #00H
MOV P2M1, #00H
MOV P3M0, #00H
MOV P3M1, #00H
MOV P4M0, #00H
MOV P4M1, #00H
MOV P5M0, #00H
MOV P5M1, #00H
MOV P0M0,#00H ;设置P0.0~P0.7为双向口模式
MOV P0M1,#00H
MOV P1M0,#0FFH ;设置P1.0~P1.7为推挽输出模式
MOV P1M1,#00H
MOV P2M0,#00H ;设置P2.0~P2.7为高阻输入模式
MOV P2M1,#0FFH
MOV P3M0,#0FFH ;设置P3.0~P3.7为开漏模式
MOV P3M1,#0FFH
MOV TMOD,#00H
MOV TL0,#66H ;65536-11.0592M/12/1000
MOV TH0,#0FCH
SETB TR0 ;启动定时器
SETB ET0 ;使能定时器中断
SETB EA
SJMP $
END
angmall 发表于 2024-3-26 21:12
看看这个能用吗?
这个试了貌似无法编译通过,不知道 你用的是那个版本的软件。 xjlfh 发表于 2024-4-27 23:49
这个试了貌似无法编译通过,不知道 你用的是那个版本的软件。
我的编译通过了。
你无法编译通过,知道为什么吗?用的是那个版本的软件?
或者你改成这样。
$include (STC8G.INC)
;P_SW1 DATA 0A2H
;P0M1 DATA 093H
;P0M0 DATA 094H
;P1M1 DATA 091H
;P1M0 DATA 092H
;P2M1 DATA 095H
;P2M0 DATA 096H
;P3M1 DATA 0B1H
;P3M0 DATA 0B2H
;P4M1 DATA 0B3H
;P4M0 DATA 0B4H
;P5M1 DATA 0C9H
;P5M0 DATA 0CAH
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TM0ISR
ORG 0100H
TM0ISR:
CPL P1.0 ;测试端口
RETI
MAIN:
MOV SP, #5FH
MOV P0M0, #00H
MOV P0M1, #00H
MOV P1M0, #00H
MOV P1M1, #00H
MOV P2M0, #00H
MOV P2M1, #00H
MOV P3M0, #00H
MOV P3M1, #00H
MOV P4M0, #00H
MOV P4M1, #00H
MOV P5M0, #00H
MOV P5M1, #00H
MOV P0M0,#00H ;设置P0.0~P0.7为双向口模式
MOV P0M1,#00H
MOV P1M0,#0FFH ;设置P1.0~P1.7为推挽输出模式
MOV P1M1,#00H
MOV P2M0,#00H ;设置P2.0~P2.7为高阻输入模式
MOV P2M1,#0FFH
MOV P3M0,#0FFH ;设置P3.0~P3.7为开漏模式
MOV P3M1,#0FFH
MOV TMOD,#00H
MOV TL0,#66H ;65536-11.0592M/12/1000
MOV TH0,#0FCH
SETB TR0 ;启动定时器
SETB ET0 ;使能定时器中断
SETB EA
SJMP $
END
SJMP $空跳转只执行中断程序 angmall 发表于 2024-4-28 12:25
我的编译通过了。
改成后面这个可以编译通过,用前面的始终提示有错误编译不了。stc8g.asm(13): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL,全是这种提示,大概意思貌似端口定义有重复。
页:
[1]
2