华维科技 单片机程序 单片机开发板 单片机学习板 单片机编程  

 

 

 

 

 

 

                        51 AVR PIC 三星 义隆 合泰 十速 松翰 现代
                                    三星单片机IAR-C语言简单示例
             日期: 2008-06-21            发表人: 比尔盖茨熊            文章来源:本站原创,如有转载请注明出处
;*********************;
;三星汇编示例程序 ;
;来源:华维科技 ;
;作者:比尔盖茨熊 ;
;*********************;
;*********************;
;程序介绍 ;
;P00 按键 ;
;P11 蜂鸣器 ;
;P23 LED灯 ;
;按键按下灯取反 ;
;蜂鸣器响一声 ;
;*********************;
.include "s3c9454.reg"
BZ_TIME EQU 00H
KEY_ON_TIME EQU 01H
NT_COUNT EQU 02H
;中断向量定义
ORG 0000H ;中断入口
VECTOR 00H,INT_9454

;SMART_OPTION 系统时钟复位配置
ORG 003CH
DB 00H ;必须为00H
DB 00H ;必须为00H
DB 0E7H ;2.3V复位
DB 03H ;内部RC3.2M
;芯片上电入口
ORG 0100H
RESTE:
DI ;关闭中断
LD BTCON,#0A3H ;关闭看门狗
LD CLKCON,#18H ;设置时钟为1/1分频
LD SP,#0C0H ;堆栈 必须设置为0C0H
LD P1CON,#0AH ;P10与P11为输出模式P12只能为输入模式
LD P2CONH,#6AH ; P2口全部为输出模式
LD P2CONL,#0AAH ;
LD P0CONH,#0AAH ;
LD P0CONL,#0A9H ;P00为输入模式,检测按键用,其他都为输出
LD P0PND,#00H ;禁止外部中断
OR P1,#02H ;关闭蜂鸣器
OR P2,#08H ;关闭LED
LD T0DATA,#50 ;定时器初始值
LD T0CON,#82H ;1/8分频 定时器的中断时间是 (1000000/3200000)*8*50=125us
;那么蜂鸣器的驱动周期为125*2=250us频率为1000000/250=4000(也就是4K)
EI ;打开中断
LD BZ_TIME,#0FFH
;主程序
MAIN:
NOP;其他代码
NOP
NOP
NOP
NOP
NOP
KEY_TEST:
TM P0,#01H
JR Z,KEY_ON
LD KEY_ON_TIME,#00H
JR EXIT_KEY
KEY_ON:
CP KEY_ON_TIME,#0FFH
JR C,KEY_1
JR EXIT_KEY
KEY_1:
INC KEY_ON_TIME
CP KEY_ON_TIME,#0FDH
JR Z,KEY_2
JR EXIT_KEY
KEY_2:
XOR P2,#08H
LD BZ_TIME,#0FFH
EXIT_KEY:
JR MAIN
;中断子程序
INT_9454:
AND T0CON,#~01H ;清除中断标志
CP BZ_TIME,#00H ;
JR ULE,END_INT
XOR P1,#02H
DEC BZ_TIME
END_INT:
IRET
.END

下载该代码MAIN.SRC
 

                                     返回首页

 

                                          版权所有@华维科技
                                        建议浏览分辨率1024*768