找回密码
 立即注册
查看: 6604|回复: 35

【实验箱已收到】陈老师《单片机原理及应用-STC8H8K64U》打卡 | 实验箱已收到

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-7 10:00:58 | 显示全部楼层 |阅读模式
本帖最后由 gentleman 于 2023-8-16 16:39 编辑

                为保证笔记连贯性
                何老师的课在另一个帖子https://www.stcaimcu.com/forum.php?mod=viewthread&tid=3326

2023/7/19 第1课时
              课程特点
                     要会c与数电
                     多实践
                              
              背景机型的选择
                     微机原理历史变革
                            Z80               单板机  体积大,双列直插
                            8086              现在基本找不到了
                            8031              无程序存储器,ram小,需要仿真器
                            8051              集成4kROM 但自己刷不了 需要仿真器
                            8751              集成4kEPROM   需要擦除器合编程器  仿真器
                            at89c51          4k 可擦写程序存储器
                            stc89c51         4kflash  isp编程     需要仿真器
                            stc12/15         4kflash  isp   iap能直接仿真
                            stc8                1T高速内核 64kflash 256bRAM
                                                  8192B 拓展ram 1280bram用于usB
                                                  5个定时器 可编程时钟  60I/O 4UART
                                                  1SPI 1I2C 1USB 15通道12位ADC
                                                  8路pwm   DMA 等

              单片机的学习条件
                      认识常用元件
                             电阻 电容 二极管 三极管
                             晶振 数码管 面包板 单片机
                             万能版 套件 试验箱  仿真软件
                             isp
                      isp步骤
                             按住int0 按下ON/OFF 点击下载/编程按钮





回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-7 10:41:12 | 显示全部楼层
2023/7/19 第二课时

       第一个实例
             分析电路图得出结论 P4.0 为低, P6口为低 时 led灯会亮
             简单步骤
                    启动项目
                    新建源文件加入项目
                    编译 链接 生成hex
                    
                     下载hex到单片机内部
                     运行

             #include "stc8.h"

             void delay(unsigned long delaycnt)
             {
                     while(delaycnt--);
              }

             void main(void)
             {
                   P4M1 = 0Xff;
                   P4M0 = 0Xff;
                   P6M1 = 0Xff;
                   P6M0 = 0Xff;

                   P40 = 0;

                   while(1)
                    {
                          P60 = 1;

                          delay(30000);
                          P60 = 1;

                          delay(30000);

                    }                                 
              }

              可以看得到运行结果 led灯在闪烁

              为了获得更准确的延时,可以在stc-isp 中生成对应的延时函数
            

       有关基础概念
             数制
                    十进制           D
                    二进制           B      用晶体管截至饱和表示1,0
                    十六进制                c语言中用0-9 A-F表示
                    
                    利用接口计数转换
                    
                    四位二进制数对应一位十六进制
                    有一个的对应的表

                    使用pc的计算器可以很容易的转换
            单位
                   位(bit)
                   字节(byte)
                   K  M  G  T
             计算机系统
                   显示器 键鼠 打印机 主机
                   内部  主板 电源 hdd ram cpu 等
                   软件 window macos linux 等
                   应用软件 word ppt qq  IDE 等
                   微观构成  cpu i/o 存储器 i/o设备
                   微处理器 cpu  微型计算机 cpu + io+存储器
                   基本结构  控制器 ALU 组成cpu 外部通过总线链接外设
                   总线 AB   地址总线  输出访问的内存或IO 的地址     决定寻址范围
                          DB    数据总线 读写外部数据   决定一次数据的位数
                          CB     cpu的命令 进行控制和联络  输入输出控制信号

                    实例   cpu 通过 地址总线 发出0x2000
                             存储器 通过数据总线 将数据 01000111给cpu
                             cpu 通过控制总线发送读写控制和片选信号
                    单片机
                             集成在一个芯片的微型计算机
                    单片机厂商及产品
                              stc8(STC)   pic(MICROCHICP)   msp(TI)  stm8(ST)
                              at89c(ATMEL )          P89 (NXP)
                    单片机应用
                             以单片机为核心 配以输入 输出 显示 控制 等外围电路和软件







         
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-7 12:17:36 | 显示全部楼层
2023/7/26 第三课时

          数字逻辑与基本数字电路
                 逻辑电平     TTL/COMS
                                高于2.2v 高电平 用1表示
                                低于0.8v 低电平 用0表示            
                  上升沿和下降沿
                                                                                        _
                               低电平到高电平 0到1 的瞬间脚上升沿 _|        
                                                                                     _
                               高电平到低电平 1到0 的瞬间叫下降沿  |_


                   逻辑运算            
                              逻辑与 Y=A^B   见0则0 相当于串联
                                         真值表         A       B       A^B
                                                            0        0         0
                                                            1        0         0
                                                            0        1         0
                                                            1        1         1



                              逻辑或 Y=A+B   见1则1 相当于并联
                                         真值表         A       B       A^B
                                                            0        0         0
                                                            1        0         1
                                                            0        1         1
                                                            1        1         1

                    
                              非门    Y = ~A       相反
                                        真值表         A   ~A
                                                       0    1
                                                       1    0

          单片机的应用场景
                  单片机的特点
                         集成度高,体积小
                         功耗低    PC 400W
                                       mcu   2.09ma/0.48ma
                         可靠性高     不死机,使用工业场景  有看门狗
                         价格低廉       cpu上千元   单片机1~几块
                   单片机的应用场景
                         智能仪器仪表
                         工农业实时监控
                         计算机网络与通讯领域
                         家用电器
                         医用设备领域
                         其他领域


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-7 14:00:04 | 显示全部楼层
2023/7/26 第四课时

         单片机的内部结构
                  微型计算机的内部框架结构
                             控制器 alu 组成cpu
                             通过ab db cb 总线 链接存储器 io
                             io 连接 io 设备
                   传统8051单片机的内部结构
                            包含中央处理器 程序存储器 4kROM 128K RAM
                            2个定时器 4给8为io 1个串口
                             以及io复用总线(ab db cb)
                    stc8h8k64u的单片机的内部构成
                             8051内核  8位数据总线 与16位地址总线
                             大量的io口 定时器
                             还有dma
                             有硬件i2c spi 等
            cpu结构-2
                    寄存器
                    D7H    D6H    D5H    D4H    D3H    D2H    D1H    D0H
                    CY      AC       F0      RS1     RS0     0V      F1       P

                    控制器
                    cpu的大脑中枢

                    存储空间
                          flash  0000h~ffffh

                    ram
                           低字节 128byte
                           高字节 128byte
                           sfr            可直接寻址
                    数据存储区域
                          256内部 ram  00h- ffh



         
                  
                             
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-7 15:20:46 | 显示全部楼层
2023/08/02 第5课时

       存储器空间及储存器-6
           数据存储器
                  高128字节RAM 和特殊功能寄存器
                            80H-FFH SFR
                            单片机的功能是通过sfr设置的
                            分SFR 与 XFR
                  拓展数据存储区域
                            0000h-1fffh 8192b 的XRAM
                            xdata 声明
                            unsigned char xdata i = 0;

         单片机的引脚
               LQFP64 封装                 小圆点处为第一脚
               PDIP40  
               最小系统            
                        低电平复位电路
                        按键按下断电/上电  电路
                        滤波电容
              逻辑符号图
                        标出io/特殊功能 引脚的逻辑图
                        画原理图时更容易分析
             引脚简介
                      VCC/AVcc   5v
                      Gnd/AGnd  接电源地
                      晶振         基本不用 用做普通io
                      ALE          没啥用
                      NRST        可做复位脚
               IO 的作用
                       开关量输入输出
                       复用
               IO的工作模式
                      准双向   推挽   高阻   开漏
                      可使用工具设置
                      要先设置模式在使用,多数默认为高祖输入状态
           
                        
            
            
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-7 15:47:03 | 显示全部楼层
2023/08/02 第六课时

       I/O 的复用
             P0     地址 数据总线  adc uart3 4  t3 4时钟 t3 4脉冲 pwm
             P1     ADC PWM  SPI  UART2 3  系统时钟输出  晶振  i2c
             P2     地址总线高8位  spi i2c pwm
             P3     外部中断 计数器 spi i2c 比较器  uart1  pwm
             p4     spi  读写控制信号 uart2 地址锁存信号
             P5     uart 3 4  比较器  rst  系统时钟输出  spi   pwm
             P6     PWM
             P7     PWM  I2C
      I/O 的使用
             上拉的电阻     现在内部集成4.1k
             下拉电阻        集成10k
              三极管控制    10k上拉vcc   15k 限流连接到基极  vt 集电极通过电阻拉到vcc 接OUT  发射机接地
      I/O 外部状态的输入
             记得加延时,速度太快读的不对

     单片机应用系统的典型构成
            拓展RAM  用不上
                           P0  P2 占用  当作数据 地址总线
                           ALE 接地址锁存器
                           通过的地址总线给锁存器地址
                           数据总线送数据
              
     汇编
        学习原因
              有助于理解原理
              移植会用
         伪指令                    
              ORG addr16
                       设置起始地址  一般出现在开头  不加ORG 从0000h 存放目标程序
              < 标号:> DB <项或项表>
                       吧项或项表的值 存入标号的连续单元
              DW
                       用的少  基本和DB 相同  位数不一样
              < 标号:> EQU 数值或表达式
                        类似#define
             符号名 DATA  表达式
                       将内部ram的地址给符号名
             XDATA
                       类似上一条 操作xram
            INCLUDE
                       #INCLUDE (文件名)
                       包含头文件
              
           ORG 0000H
           lJMP  MAIN
           ORG 0003H
           LJMP INT_ISR
           ORG  00BH
           LJMP  T0_ISR
           ORG  0013H

           LJMP  INT1_ISR
           ORG  001BH
           LJMP  T1_ISR
           ORG  0023H
           LJMP  UART_ISR
           ORG  0100H
           MAIN:   MOV SP #70H

           LOOP:
           LJMP LOOP

           这是汇编程序的基本格式

      
           
            
                              
            
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-9 08:38:26 | 显示全部楼层
本帖最后由 gentleman 于 2023-8-9 08:41 编辑

2023/08/07  第7课时
          $INCLUDE (文件名)
               包含8h头文件记得加$NOMOD51
               避免重复定义
         
          助记符语言
                cpu 只认识 机器语言     
                       例 248B
                不好用 引入助记符      
                        例MOV ADD ANL
                        ADD A #8BH   248B
                        MOV A #76H  74H,76H
                操作码
                         操作码.jpg
                  操作数
                      地址或数据
                      MOV 2个地址  ADD 两个数据 JMP 操作PC  
                      数据只能是整数
                      加0表式16进制数据 0ABH
                      后面加B 表示二进制数据  00111100B  

          指令格式及分类
                  [标号:] 操作码助记符 [第一操作数][,第二操作数][,第三操作数][;注释]
                  标号指地址 LOOP LOOP1 TABLE
                         也做子程序的名字

                 RETI                  ;中断返回
                 CPL    A              ; 累加器按位取反
                 ADD   A,#56H     ;   2个操作数
                 CJNE  R2,#60H,LOOP  

                注释可以用 // 或 /*...*/
                keil 工具可以批量注释/去掉注释
         
          指令的代码的存储格式
               分单字节双字节三字节
                占1~3个单元
               
                 MOV A, #68H
                 MOV B,#73H
            
                 1004H   73H
                 1003H   F0H

                 1002H   75H
                 1001H   68H


                 1000H   74H

           符号约定
                      符号约定.jpg


          寻址方式
                8051内核  7种寻址方式
                立即寻址
                       MOV A #28H           立即数送入A
                       0100H    74H           操作码
                       0101H    28H           立即数
                       0102H                     下一条
                                          A:28H
                  寄存器寻址
                       INC R5                 R5+1送回R5
                  直接寻址
                       SFR
                       RAM 低128单元
                       为地址空间

                       MOV A 45H

                       0100H    E5H           操作码
                       0101H    45H           立即数
                       0102H                     下一条
                       
                           45H  34H
                           46H                       A:34H
                  寄存器间接寻址
                          MOV A ,@R0
                           不用操作数 用地址
                           操作数不能变 而地址内的数据可变
                   变址寻址
                          MOVC A,@A+PC
                          PC指针不断移动 指向需要执行的机器指令

                          MOV A #02H
                          MOV DDPTR #TABLE
                          MOVC A, @A+DPTR
                        
                          TABLE: DB 30H
                                     DB 31H
                                     DB 32H
                           由于DPTR 可以赋值,比PC常用
                   相对寻址
                          相对跳转指令
                          JC 80H            尽量用标号代替80H
                          只能跳转PC -128~127 ;

                          跳的太远就多跳几次;
                          有很多技巧
                   位寻址
                          MOV C, P1.0
                          SETB 20H.6
                          CLR  25H                       不同于 MOV 25H #0H      前者位操作  后者字节单元


                          MOV       A,60H              把60h给累加器A(8位)
                          MOV       C,60H              吧60h位给C(1位)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-9 11:24:31 | 显示全部楼层
023/8/7 第8课时

      数据传送类指令
              相当于 =
              对psw没用
              
             MOV <目的字节>,<源字节>

                    MOV A, #data8               ;(A) <-- #data8

                    MOV addr8, #data8         ;(addr8) <-- #data8

                    MOV @Ri, #data8           ;((RI)) <-- #data8                注意2种寻址方式

                    MOV Rn, #data8             ;(Rn) <-- #data8


             简单的汇编程序

                   download.jpg

            在MAIN 种添加
                   MOV R0     #50H
                   MOV @R0  #56H

             仿真
                   看内存内容 d:0
                   F11 单步运行
                   F10 可以跳过延时等子函数
                   LJMP MAIN 运行后 SP 变为07
                   继续F11 R0寄存器 被放入 0x50
                          F11 56 被放入 50H 内存中

             添加MOV A,#98H 重新编译
                  sys中a 变成98h

             添加MOV 20H,#56H
                    MOV P0 #75H
                    F11 看到 56H送入到内存20H中
                    F11 在parllel PORT 0 中看到 P0口变成了75H

                   测试一下这个仿真图片有没有上传成功
                   1.jpeg


               MOV   A, addr8               ;(A)<--(addr8)
               MOV   A, @Ri
               MOV   A,Rn
               MOV   addr8,A
               MOV  @Ri, A
               MOV  Rn, A

              注释就不抄了,就是把后面给前面 ,该怎么寻址怎么寻址
                     
                       MOV R1 #82H
                       MOV A @R1
                       
                       手动给82H RAM 赋值0x59
                       F11 测试失败

                       修改target 位8052
                       还是没变
                       仿真失败,等待硬件仿真测试
            
             MOV addr8,addr8
             MOV addr8,@Ri
             MOV addr8,Rn

             MOV @Ri,addr8

             MOV Rn,addr8


                  RAM之间 不需要寄存器
             MOV DPTR,#data16
                    
                   断点 MOV DPTR #0126H
                   DPTR 由0000 变为0126

            MOVX   XRAM 用的
                 R1/R0 间接寻址
                      MOVX  A,@Ri
                      MOVX  @RI,A
                 DPTR 间接寻址
                      MOVX  A,@DPTR
                      MOVX  @DPTR,A
                 
                 仿真 MOVX  DPTR,#0100H
                        MOVX  A,@DPTR
                 
                        RAM X:0100H
                        赋值45
                        Sys a 中变为0x45

               提到《数字系统设计》课程,后面找本书看看讲的啥


            MOVC  A,@A+PC
            MOVC  A,@A+DPTR
                    两条查表指令
                    PC 只能256范围  DPTR 用的多
            
            查平方表子程序                  
             2.jpeg                
                        
               PUSH 保护DPTR  POP 恢复dptr
               MOV 附表
               MOVC 查表
         
               调用子程序
                      LCALL GETSQ
                      MOV 50H, A

                    F11 看到a 里面 7
                    F11  a 里面 27
                  
         数据交换指令
                字节交换指令
                      XCH   A,addr8
                      XCH   A,@Ri
                      XCH   A,Rn
                     
                      前后两个操作数互换
              
                      XCHD   A,@Ri
                      连个操作数低4位交换,高4位不变,不影响标志位

                   堆栈

                   3.jpeg
         
                     PUSH addr8
                     POP   addr8
            
                     先进后出   SP指针控制
                     
                     PUSH ACC
                     PUSH PSW
                     POP   PSW
                     POP   ACC
         
       逻辑操作类指令
                   24条
            

                  4.jpeg

                ANL ORL XRL 常用双操作数

                ANL (ORL,XRL) A,#data8 等

               SWAP ASCII 与BCD 码切换

        算数指令
              ADD ADDC      加法指令           影响标志位
              SUBB             带结尾减法指令  先 CLR C
              MUL  AB         乘法指令   >255 溢出
                                    A*B = BA
             INC                 C的++
             DA  A              二十进制转换
            
            

               

            
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-04-28 14:10:14

19

主题

385

回帖

2508

积分

版主

积分
2508
QQ
发表于 2023-8-9 14:11:21 | 显示全部楼层
楼主对我们的免费公开课 认可/支持/给力,建议主动联系我们同事
=====提前获得 【免费+包邮送】的 STC32G12K128实验箱 或 STC8H8K64U实验箱
=====现在送的,都可以利用MCU自带的 硬件USB直接仿真,硬件USB直接下载

【免费+包邮】 送/申样/采购 可加 如下 QQ或微信联系
加STC华南区客服刘经理QQ: 3398500488 ;微信:18106296592  要求 【免费+包邮】 送, 还免费教仿真  
加STC华南区客服曹经理QQ:1933892258 ;微信:18106296595 要求 【免费+包邮】 送, 还免费教仿真
加STC华东区客服聂经理QQ:2593903262;微信:18106296598  要求 【免费+包邮】 送, 还免费教仿真
加STC西北区客服孙经理QQ: 1347154513 ;微信:18106296593  要求 【免费+包邮】 送, 还免费教仿真
加STC华北区客服石经理QQ: 1638975601 ;微信:19952583876  要求 【免费+包邮】 送, 还免费教仿真
加STC华中区客服唐经理QQ:2571301708 ;微信:18106296589 要求 【免费+包邮】 送, 还免费教仿真
加STC东北区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
加STC西南区客服张经理QQ:3141888640 ;微信:19952583265   要求 【免费+包邮】 送, 还免费教仿真
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)

【免费+包邮】 送/申样/采购传统电话热线:0513-55012928、0513-55012929、0513-55012966
工作时间:  8:30-12:00,13:00-17:30(周一 到 周五, 法定节假日除外)
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-8-13 09:21:02 | 显示全部楼层
本帖最后由 gentleman 于 2023-8-13 11:49 编辑

2023/08/09 第九集
       位操作指令
              17条指令
              位地址 字节地址.位数  C  字节寄存器(P1.0  PSW.4)
            
                c语言不能用  .  取出位很麻烦 要移位后做逻辑运算
            
              常用位操作指令


             1.jpeg

            
            rel 不需要算 直接写标号
         
            MOV  C,     bit               
            MOV  bit , C

            清零
                CLR  bit
                CLR  C
                        
                2.jpeg
                由图可知 34变30 2AH(25H第2位地址)清0成功
                一般用宏定义定义位地址 不用2AH
         位求反
               CPL   bit
               CPL   C
               
               可以操作IO  CPL  P1.2  吧P12 io脚取反  
               
               ALE 输出信号可以测量单片机是否工作   
               
              课上让自己测试,测试结果如下图
                3.png     4.png
               可以看到RAM 中 0x25 位置的值由 FF 变为F7 (11110111)    
       位逻辑操作指令
              ANL  C ,bit
              ANL  C ,/bit  (取反后逻辑与)
               5.jpeg
                ORL C,bit
                ORL C,/bit

                6.jpeg



              自己测试结果如下

              
7.png               

              2
            
              

              将25H 的第8位与第4位相与(1&0),结果(0)放得到25H 的第1位 ,看到 25H 由F1 变成F0

               9.png    
              2   
                    为什么有的图片不显示啊,编辑时可以看到 这里还有一张图的      
               
              25H的第2位1 与 26H的第2位0  逻辑或运算 得到 1 放入26h 第二位中 得到26h 位F2  
     位条件转移指令
           JN/JNC rel
               rel 直接写标号
           JB/JNB/JBC bit rel
               感觉就是c的if
               测试结果如下
                1.png
               由图可知 当 26h.1 位为1 跳转到子程序RESTC中,把该位 清0  
      控制转移类指令

             1.jpeg

           LJMP addr16
                   addr16 用标号
           AJMP addr11            SJMP rel
                    不用了 不够用偏移太少  
           JMP @A+DPTR
                    相当于 switch     case


           JN           rel
           JNZ         rel
             2.jpeg

         
            CJNE  
                相当于  if(a!=b)


                测试结果
                3.png
              寄存器r0 != 00h  所以跳转子函数 寄存器r3 结果为 0F0H    
       DJNZ  
            不等于0跳转
            很容易实现延时
       RETI
            中断返回
       NOP
             空指令  
              


              









            

        







1.jpeg
2.jpeg
3.png
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 04:05 , Processed in 0.137280 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表