;按开始键(PT2.1)后程序实现LED闪烁
;目的学习I/O口的输入输出控制
;============================================
;完整代码下载地址: http://www.51hei.com/f/xhpms.rar
; filename: 111.asm
; chip : csu1181b
; author :
; date : 2012-07-18
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
org 0000h ;
goto a1 ;
org 0005h ;
;***************************************************
; 判断是否按下开始键程序段
;***************************************************
a1: CLRWDT ;清看门狗
MOVLW 00H ;把数据00H存到W中用做设置I/O口为输入口
MOVWF PT2EN ;把W中的数据存到PT2EN(25h)中将I/O口设置为输入口
MOVLW 0FFH ;把数据0FFH存到W中用做设置I/O口为上拉模式
MOVWF PT2PU ;把W中的数据存到PT2PU(26h)中将I/O口设置为上拉模式
BTFSC PT2,1 ;判断PT2.1是否为0是则跳过吓一指令(判断有无按键按下有执行下面程序无则等待按键按下)
GOTO A1 ;无条件转移到A1
;***************************************************
; 闪烁程序段
;***************************************************
A2: CLRWDT ;清看门狗
MOVLW 0FFH ;把数据0FFH存到W中用做设置I/O口为输出口
MOVWF PT3EN ;把W中的数据存到PT3EN(29h)中将I/O口设置为输出口
MOVLW 0 ;把数据00H存到W中用做设置I/O口为禁止上拉模式
MOVWF PT3PU ;把W中的数据存到PT3PU(2ah)中将I/O口设置为禁止上拉模式
MOVLW 01010101B ;把数据01010101B存到W中用做I/O口输出数据
MOVWF PT3 ;把W中的数据从PT3(28h)输出驱动外部设备(点亮LED灯)
CALL M001 ;延时
MOVLW 10101010B ;把数据10101010B存到W中用做I/O口输出数据
MOVWF PT3 ;把W中的数据从PT3(28h)输出驱动外部设备(点亮LED灯)
CALL M001 ;延时
goto a2 ;返回反复执行程序
;****************************************************
; 延时程序段
;****************************************************
M001: MOVLW 2 ;
MOVWF 80H ;
M002: MOVLW 248 ;
MOVWF 81H ;
M003: MOVLW 250 ;
MOVWF 82H ;
M004: DECFSZ 82H,1 ; (减一后结果存在82h中)减一为0跳过下一指令
; DECFSZ 82H,0 ;(减一后结果存在工作寄存器中)减一为0跳过下一指令
GOTO M004 ;
DECFSZ 81H,1 ;
GOTO M003 ;
DECFSZ 80H,1 ;
GOTO M002 ;
RETURN ;子程序返回
end ;结束
;============================================
关键字:芯海单片机 开始键 闪烁
引用地址:
芯海单片机按开始键后实现闪烁
推荐阅读最新更新时间:2024-03-16 13:21
电灯泡内通有交流电,为什么看不到灯泡在闪烁?
■ 前言 前两天,看到头条上有一个有趣的帖子,讨论为什么普通灯泡里通有交流电,电流的大小方向时时刻刻都在改变,而我们看不到灯泡在闪烁? 这个问题如果我再向自己已经上大学的儿子提出,他会嘲笑这问题太简单了。帖子的作者也大体罗列了两个原因,使得人感觉不到灯泡在闪烁: 原因1::灯泡的亮度变化(闪烁)的频率应该和普通家用交流电的频率(50Hz)相同,由于 人的视觉暂留 效应也不会觉察到灯泡的闪烁。 原因2: 灯泡(白炽灯)的灯丝具有热惯性,虽然交流电的幅值变化所引起的电功率的波动,但反映到灯丝温度上就比较平滑,所以实际上波动较小,人眼不易觉察。 ▲ 视觉暂留效果 人类感知灯光闪烁的能力与视觉暂留现象还不完全一致,人们对于
[测试测量]
89C51单片机之定时器0、1控制LED1、0.5秒闪烁
1.proteus仿真图 2.keli代码 #include reg51.h sbit led1=P0^0; sbit led2=P1^0; int count0,count1; //定时器0溢出中断程序 void timer0() interrupt 1 //定时器0中断标志位为1 { //重新装载定时器0计数初值 TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(count0==10) //T0*10=1s LED1闪烁 { led1=~led1; count0=0; } count0++; } //定时
[单片机]
基于51单片机设计的闪烁灯
1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“ 单片机 系统”区域中的P1.0端口用导线连接到“八路发光 二极管 指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理: 如图4.1.1所
[单片机]
面向TFT-LCD面板的高级Gamma校准系统
随着市场竞争日益激烈, LCD 产品的上市时间成为制约产品市场销量的关键因素。过去,工程设计人员需要一个星期才能获得特定 TFT-LCD 面板 的最佳Gamma电压和VCOM电压,而利用AGCS可以将Gamma电压和VCOM电压的优化过程缩短到几秒钟以内。 LCD面板的用户对于面板的Gamma规格要求非常严格,因此,LCD制造商必须针对每个面板模块建立Gamma曲线,而生产过程中不同面板Gamma电压的差异超出了用户对Gamma参数的要求。LCD模块厂商可以借助AGCS在生产线上对每块面板进行微调。 本文介绍了一个闭环反馈系统,能够在工程试验中对TFT-LCD面板进行Gamma和闪烁校准,最终目标是将高级G
[家用电子]
MSP430F149单片机的内部定时器A定时1秒钟实现LED闪烁
#include msp430x14x.h //********************函数声明****************** void InitClock(); //********************主函数******************** void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关看门狗 InitClock(); // 初始化时钟 P1DIR |= BIT0; // 设P1.0为输出 CCTL0 = CCIE;
[单片机]
学51单片机-定时中断与LED闪烁
这次说定时与中断,有人说,掌握了定时与中断,就掌握了一个单片机80%的功能;也有人说,中断是一个单片机的灵魂。这两句话无一不在强调中断的重要性,就让我们认识一下,中断到底是什么。 根据百度百科的定义:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。 举个例子,我正在吃饭呢,忽然老婆大人发话了,说在网上看上一个包,挺好的,让我帮着付款,于是我停下吃饭说好,去帮着付款,付完款,继续吃饭。 这个过程中,我是CPU;吃饭是主程序;老婆大人说话,触发了中断;我说好,安慰
[单片机]
单片机(51) LED循环流水闪烁(硬件延时)
#include regx51.h #include intrins.h void delay(unsigned char i){ unsigned char k; for(k=0;k i;k++){ TH1=(65535-50000)/256; TL1=(65536-50000)%256; TR1=1; while(!TF1){ TF1=0; } } } void main(){ unsigned char i,k,w; TMOD=0x10; P1=0xff; while(1){ w=0xfe; for(i=0;i 8;i++){ for(k=0
[单片机]
安森美推出消除LED闪烁和支持ASIL B的图像传感器
新的高动态范围背照式器件用于先进驾驶辅助系统 推动高能效创新的安森美半导体(ON Semiconductor,美国纳斯达克上市代号:ON),推出采用突破性减少LED闪烁 (LFM)技术的新的230万像素CMOS图像传感器样品,为汽车先进驾驶辅助系统(ADAS)应用确立了一个新基准。AR0231AT能捕获1080p高动态范围 (HDR) 视频,还具备支持汽车安全完整性等级B(ASIL B)的特性。 LFM技术(专利申请中)消除交通信号灯和汽车LED照明的高频LED闪烁,令交通信号阅读算法能于所有光照条件下工作。AR0231AT具有1/2.7英寸(6.82 mm)光学格式和1928(水平) x 1208(垂直)有源像素阵
[传感器]