⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tran.asm

📁 红外调试程序
💻 ASM
字号:

	tran_bit equ p3.2
	addr     equ 30h
	N        equ 4
	key      equ p2.0
	green    equ p2.2

        org 0000h
	ljmp main
	org 000bh
	ljmp t0_sev
	org 0030h
  
   /*主函数,调用子函数*/
   /**********************************************/	 
   main:call g_data
        call ini
   loop:clr  ea
        setb  tran_bit
        jb   key,$
        call delay
	jb   key,loop
	setb ea
        call tran
	clr  ea
	setb  tran_bit
	sjmp loop
   /**********************************************/

   /*初始化函数,用来对上电后51的初始状态进行设置*/
   /**********************************************/
    ini:mov  sp   ,#4fh          ;设置堆栈
        setb key                 ;将按键的端口设置为输入状态
        clr  tran_bit            ;确定红外发射口的初始状态
	anl  pcon ,#7fh          ;取消波特率倍增位
        mov  scon ,#50h          ;串口工作在模式2
	mov  tmod ,#22h          ;T0/T1都工作在方式2(自重装)
	mov  tl0  ,#0f4h         ;产生40KHz的载波
	mov  th0  ,#0f4h
	mov  tl1  ,#0e8h         ;波特率1200
	mov  th1  ,#0e8h
	setb et0                ;允许T0中断
	setb ea                 ;开中断
	setb tr0                ;启动T0
        setb tr1                ;启动T1
	ret
   /**********************************************/

   /*串口发送程序,将数据发出*/
   /**********************************************/
   tran:mov  r0   ,N            ;一组命令需要发送的字节数N
        mov  r1   ,addr         ;将数据缓存的首地址给r1
re_tran:mov  a    ,@r1          ;将数据传给累加器
	mov  c    ,p            ;将PSW中的奇偶标志P(为1是奇数)给C
	cpl  c          
	mov  acc.7,c            ;将奇偶标志位加入到要发送的数据中
	mov  sbuf ,a            ;发送数据
	jnb  ti   ,$
	clr  ti
	inc  r1                 ;缓存地址加一
	djnz r0   ,re_tran
	ret
   /**********************************************/

   /*数据的赋值*/
   /**********************************************/
 g_data:mov  (30h),#01h
        mov  (31h),#02h
        mov  (32h),#03h
        mov  (33h),#04h
        ret

   /*延时去抖动*/
  delay:mov  r7   ,#0efh
        djnz r7   ,$
	ret

   /*T0中断服务程序,用来产生40KHz的载波*/
   /**********************************************/
 t0_sev:cpl  tran_bit           ;取反用来产生40KHz载波
        reti
   /**********************************************/

        end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -