xjlfh 发表于 2024-3-26 13:00:59

关于STC8G1K08A端口设置的汇编程序

原来只用过stc的8952和stc15系列,最近搞了几只8G1K08,说是必须先设置端口才可以用,C语言的找了例程试了一下勉强点亮了小灯,汇编的一直没有找到例程没法用,对汇编略懂一丁点,希望有大侠出来指点一下,最好有例程好学习学习,谢谢啦。

AI-32位8051 发表于 2024-3-26 13:23:39

本帖最后由 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





国学芯用 发表于 2024-3-26 14:01:34

21cnsound 发表于 2024-3-26 14:08:52

对汇报略懂一丁点,建议还是先学C吧。
例程,可以用STC-ISP中的。

乘风飞扬 发表于 2024-3-26 14:28:04

可以参考STC8H实验箱例程包里面的例子,有汇编版本。
论坛下载地址:https://www.stcaimcu.com/plugin.php?id=mdown:index#/~cateid=5&key=

angmall 发表于 2024-3-26 21:12:35

看看这个能用吗?

$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



xjlfh 发表于 2024-4-27 23:49:45

angmall 发表于 2024-3-26 21:12
看看这个能用吗?

这个试了貌似无法编译通过,不知道 你用的是那个版本的软件。

angmall 发表于 2024-4-28 12:25:52

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
                       




soma 发表于 2024-4-28 12:31:03

SJMP    $空跳转只执行中断程序

xjlfh 发表于 2024-4-28 21:21:49

angmall 发表于 2024-4-28 12:25
我的编译通过了。




改成后面这个可以编译通过,用前面的始终提示有错误编译不了。stc8g.asm(13): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL,全是这种提示,大概意思貌似端口定义有重复。
页: [1] 2
查看完整版本: 关于STC8G1K08A端口设置的汇编程序