89tc52单片机用汇编语言编写的程序一个程序

求一个基于单片机的用汇编语言写的倒计时程序_百度知道
求一个基于单片机的用汇编语言写的倒计时程序
各位才子才女,帮忙写一个基于ATM89C52单片机的倒计时程序,要求如下:
1、用汇编语言写(C语言也可以吧)。
2、定时时间可调,初始值用键盘输入。Led屏幕显示剩余时间,时间到后控制蜂鸣器发出报警信号。
本人实在是无能为力了,有牛人写好后发我qq邮箱...
我有更好的答案
刚写的程序,可以通过S0(功能键),S1(加键),S2(减键)设定初值,倒数为00-00-00时蜂鸣器响,通过八位LED显示;#include&reg52.h&#include&intrins.h&#define uchar unsigned char #define uint unsigned int uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//八位位选码表
uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段选码表 sbit s0=P3^3;
//设置功能键sbit s1=P3^5;
//设置‘加’键sbit s2=P3^6;
//设置‘减’键sbit beep=P3^7; //设置蜂鸣器void delay(uint z);void display();void init();void keyscan();uchar shi,fen,miao,void main(){ init(); while(1) {
display();
keyscan();
if (miao==0&&fen==0&&shi==0)//当倒数计时为00-00-00时蜂鸣器响
}void delay(uint z){ uint i,j; for (i=z;i&0;i--)
for (j=110;j&0;j--);}void display() //我这里P2为位选,P0为段选,显示格式为 时-分-秒{ uchar s,g; s=shi/10; g=shi%10; P2=wei[7]; P0=duan[s];
delay(1); P2=wei[6]; P0=duan[g];
delay(1); P2=wei[5]; P0=0 delay(1); s=fen/10; g=fen%10; P2=wei[4]; P0=duan[s];
delay(1); P2=wei[3]; P0=duan[g];
delay(1); P2=wei[2]; P0=0 delay(1); s=miao/10; g=miao%10; P2=wei[1]; P0=duan[s];
delay(1); P2=wei[0]; P0=duan[g];
delay(1);}void init(){ miao=10; //设定初值为 00-01-10 fen=1; shi=0; EA=1; ET0=1; TMOD=0X01; TH0=()/256; TL0=()%256; TR0=1;}void timer() interrupt 1{ TH0=()/256; TL0=()%256; nam++; if (nam==20) {
if (miao==0)
if (fen==0)
if (shi==0)
miao--;} }void keyscan(){ uchar key, if (s0==0) {
if (s0==0)
if (key==4)
while(!s0)
display();
if (s1==0) {
if (s1==0)
while(!s1)
display();
} if (s2==0) {
if (s2==0)
while(!s2)
display();
} switch(key) {
case 0:TR0=1;
case 1:TR0=0;
if (num==1)
if (miao&=60)
display();
if (num==2)
if (miao==0)
display();
if (num==1)
if (fen&=60)
display();
if (num==2)
if (fen==0)
display();
if (num==1)
if (shi&=24)
display();
if (num==2)
if (shi==0)
display();
采纳率:35%
我倒是有,不过分太少不给!
貌似不难吧,这人太懒了。。
OK,有报酬么
没有报酬谁会呢?
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
汇编语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机汇编语言编程100例_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
单片机汇编语言编程100例
《单片机汇编语言编程100例》以100余个编程实例贯穿始终,由浅入深的讲述了单片机汇编语言编程技术。全书共分13章,主要内容包括单片机的基本知识,MCS—51单片机基础知识,MCS—51指令系统,MCS—51汇编语言程序设计,中断控制、定时/计数器,单片机串行通信系统,单片机存储器扩展技术,单片机I/O接口扩展与应用,输入/输出接口技术,抗干扰技术,单片机应用系统设计与开发,KeilC51简介,综合实例。在综合实例章节中,特意设计几个大的程序,目的是给工程项目开发人员提供了相关开发思路及程序参考,同时也为初学者进入项目开发级奠定了基础。《单片机汇编语言编程100例》内容全面,且编写方法循序渐进,书中的每个实例都经过实际验证,相信读者通过阅读此书,可很快地掌握单片机汇编语言编程技术,使理论知识和实际开发水平上升到一个新的高度。
单片机汇编语言编程100例内容简介
《单片机汇编语言编程100例》既适合于初学者及人员及相关电子技术人员阅读,也适合于各类高职高专及再就业培训做教材使用
单片机汇编语言编程100例作者简介
作者为写作团队,主要编写老师来自于辽宁工业大学,教授自动化专业的一线老师,教学经验丰富,此写作团队还有丰富的写作经验,著书几十部,市场反映良好
单片机汇编语言编程100例图书目录
前言   第1章单片机的基本知识   1.1概述   1.2单片机技术发展   1.3单片机的应用领域   1.4典型单片机芯片的简介   习题   第2章MCS—51单片机基础知识   2.1MCS—51单片机的基本知识   【实例1】正数加法溢出实例   【实例2】负数加法溢出实例   2.2MCS—51的引脚功能   2.3CPU时钟电路与时序   2.3.1时钟电路   2.3.2CPU时序   2.4复位方式和复位电路   2.4.1复位操作   2.4.2复位方式   2.4.3复位电路   2.4.4单片机执行指令的过程   【实例3】单片机简单加法执行实例   2.5MCS—51的存储器结构   2.5.1程序存储器   2.5.2数据存储器   2.6MCS—51单片机的并行输入/输出端口   2.6.1MSC一51内部并行端口结构   2.6.2MCS—51单片机I/O端口工作原理   【实例4】P1口输入实例   习题   第3章MCS—51指令系统   3.1MCS—51单片机指令概述   3.2MCS—51寻址方式   【实例5】立即寻址实例   【实例6】直接寻址实例   【实例7】寄存器寻址   【实例8】寄存器间接寻址实例   【实例9】变址寻址实例   【实例1O】相对寻址   【实例11】位寻址实例   3.3MCS—51单片机指令系统   【实例12】以Rn为目的操作数的数据传送实例   【实例13】堆栈操作实例   【实例14】交换操作实例   【实例15】不带进位加法操作实例   【实例16】带进位加法实例   【实例17】增量指令实例   【实例18】十进制调整指令实例   【实例19】逻辑与操作实例   【实例20】逻辑或指令实例   【实例21】逻辑异或实例   习题   第4章MCS—51汇编语言程序设计   4.1MCS5]编程语言   4.2源程序的汇编   【实例22】目标程序起始地址伪指令实例   【实例23】定义字节伪指令实例   【实例24】定义字伪指令实例   【实例25】预留存储空间伪指令实例   【实例26】等值伪指令实例   【实例27】位地址赋值伪指令实例   【实例28】数值地址赋值伪指令实例   4.3程序设计的基本方法   【实例29】BCD码的转换实例   【实例30】分支实例   【实例31】延时程序实例   【实例32】比较程序实例   【实例33】平方和实例   【实例34】查表实例   4.4程序设计举例   4.4.1算术运算程序   【实例35】多字节无符号数的加法   【实例36】双字节补码减法子程序   【实例37】求平均值实例   4.4.2码型转换   【实例38】进制变换实例   【实例39】双字节二进制数转换成十进制数   4.4.3数据比较   【实例40】找最大数实例   【实例41】排序实例   习题   第5章中断控制、定时/计数器   5.1MCS—51单片机中断系统   5.1.1中断系统概述   5.1.2MCS—51系列单片机中断系统的结构   5.1.3中断优先级   5.1.4中断控制寄存器   5.1.5中断响应条件   5.1.6中断处理   5.1.7中断请求的撤除   5.2MCS—51单片机定时/计数器   5.2.1与定时/计数器相关的SFR寄存器   5.2.2MCS—51定时/计数器的电路结构与工作模式   【实例42】计算定时器初值实例   5.2.3定时/计数器应用   【实例43】定时器应用实例   【实例44】定时器、计数器的T1门控制信号GATE的应用实例   习题   第6章单片机串行通信系统   6.1单片机串行通信概述   6.1.1串行通信的种类   6.1.2串行通信的制式   6.1.3RS一232C串行接口标准   6.1.4MCS—51串行通信口控制及初始化   6.1.5串行通信控制寄存器   6.2MCS—51单片机串行通信工作方式   【实例45】方式1发送实例   【实例46】方式1接收数据   【实例47】方式2、3发送数据实例   【实例48】方式2、3接收数据实例   6.3MCS—51单片机串行通信应用   【实例49】MCS—51单片机串行通信应用实例   【实例50】串行通信方式2的应用实例   6.4双机通信   【实例51】双机通信实例   6.5多机串行通信技术   习题   第7章单片机存储器扩展技术   7.1MCS—51单片机扩展的原理及结构   7.1.1片外总线结构   7.1.2单片机总线扩展的方法   7.2存储器扩展的基本知识   7.2.1存储器的分类   7.2.2存储器编址技术   【实例52】线选法的扩展实例   【实例53】译码法的扩展实例   7.2.3数据存储器的扩展   【实例54】数据存储器的扩展实例   7.2.4程序存储器的扩展   【实例55】程序存储器扩展实例   7.2.5存储器的综合扩展   【实例56】存储器的综合扩展实例   习题   第8章单片机I/O接口扩展与应用   8.1单片机I/O接口直接使用举例   【实例57】I/0接口直接使用实例   【实例58】中断实例   8.2简单I/O口的扩展   8.2.1用74I.S11L芯片扩展简单的I/O口   【实例59】74I.S377输出操作实例   【实例60】74LS244接口的输入操作实例   8.2.2可编程并行I/O接口8255A   8.2.3803l单片机与8255A的接口应用   【实例61】8255A初始化程序设计   【实例62】使用可编程并行端口芯片8255A实现系统并行口的扩展   8.2.4可编程。RAM/Io接口芯片8155   8.2.58031单片机与8155的接口应用   【实例63】8155的I/O口初始化实例   8.3单片机键盘接口   8.3.1键盘工作原理   8.3.2键盘结构   8.3.3利用8155芯片扩展键盘   【实例64】判断有无键闭合实例   【实例65】键盘扫描实例   8.4单片机显示器接口   8.4.1LED显示器接口   【实例66】显示子程序实例   【实例67】动态显示实例   8.58279键盘显示器接口芯片   8.5.18279内部结构   8.5.28279的命令字   8.5.38279状态字及编程   8.5.48279与单片机的硬件接口电路   【实例68】8279实例键盘显示器   8.5.5微型打印机接口电路   【实例69】打印机接口实例   习题   第9章输入/输出接口技术   9.1MCS—51单片机与D/A转换器的接口和应用   【实例70】使用DA(20832构成函数发生器实例   【实例71】两路同步输出的实例   9.2MCS—51单片机与A/D转换器的接口和应用   9.2.1A/D转换器简介   9.2.2MCS—5l单片机与ADC0809的接口   【实例72】A/D转换启动IN7实例   9.2.3A/D转换应用举例   【实例73】模数转换的应用实例   习题   第10章抗干扰技术   10.1干扰的定义及来源   10.2硬件抗干扰的措施   习题   第11章单片机应用系统设计与开发   11.1MCS—5l单片机系统设计   【实例74】单片机系统设计实例   11.2【实例75】智能语音检测设计实例   11.2.1智能语音检测报警系统概述   11.2.2智能语音控制系统总体方案设计   11.2.3语音芯片ISD2560简介   11.3智能语音控制系统硬件设计   11.3.1主控电路设计   11.3.2录放音电路设计   11.3.3键盘电路设计   11.3.4外围采样电路设计   11.4智能语音控制系统软件设计   11.4.1软件方案设计说明   11.4.2子程序设计   11.5程序调试与分析   第12章KeilC51简介   12.1程序建立说明   12.2KeilμVision3简介   12.2.1安装KeilμVision3   12.2.2设置编译器   12.2.3创建工程   12.2.4添加文件   12.2.5调试工程   【实例76】Keil练习实例一   【实例77】Keil练习实例二   第13章综合实例   13.1软件调试实例   【实例78】数据传送实例   【实例79】多字节十进制加法实例   【实例80】找最小数实例   【实例81】16个数从小到大排序实例   13.2硬件调试实例   【实例82】LCD液晶显示实例   【实例83】P1口输出实例   【实例84】P1口输入实例   【实例85】定时器节日彩灯控制器实例   【实例86】有中断申请的交通灯控制实例   【实例87】8155应用实例   【实例88】8255应用实例   【实例89】A/D转换实例   【实例90】D/A转换实例   【实例91】数字钟实例   【实例92】音乐播放器实例   【实例93】电子琴制作实例   【实例94】60s倒计时实例   【实例95】串行口通信实例   【实例96】8279键盘显示接口   【实例97】步进电机调速实例   【实例98】利用定时器控制步进电机转速实例   【实例99】温度传感器实例   【实例100】LED点阵显示器的应用   【实例101】双向六道智能交通灯   【实例102】基于单片机的线阵CCD驱动系统设计   【实例103】交流组合仪表(电压电流功率)   【实例104】开关钟控锁定电路   附录一MCS—51单片机指令总表   附录二ASCII码表(美国标准信息交换码),   参考文献
清除历史记录关闭大家都在搜
89s52单片机显示四位数码管汇编语言测温程序,,,,温度可显示范围在-20&+120度。
pigbbaozhu2010的答复:
这个程序完全没问题的,我做过实验。希望对你有帮助,,,, //DS18B20的读写程序,数据脚P3.3 // //温度传感器18B20汇编程序,采用器件默认的12位转化 // //最大转化时间750微秒,显示温度-55到+125度,显示精度 // //为0.1度,显示采用4位LED共阳显示测温值 // //P0口为段码输入,P24~P27为位选 // /***************************************************/ #include &reg51.h& #include &intrins.h& //_nop_();延时函数用 #define Disdata P0 //段码输出口 #define discan P2 //扫描口 #define uchar unsigned char #define uint unsigned int sbit DQ=P3^3; //温度输入口 sbit DIN=P0^7; //LED小数点控制 //**************温度小数部分用查表法***********// uchar code ditab[16]= {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; // uchar code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //共阳LED段码表 &0& &1& &2& &3& &4& &5& &6& &7& &8& &9& &不亮& &-& uchar code scan_con[4]={0x7f,0xbf,0xdf,0xef}; //列扫描控制字 uchar data temp_data[2]={0x00,0x00}; //读出温度暂放 uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //显示单元数据,共4个数据和一个运算暂用 // // // /***********11微秒延时函数**********/ // void delay(uint t) { for(;t&0;t--); } // /***********显示扫描函数**********/ scan() { for(k=0;k&4;k++) //四位LED扫描控制 { Disdata=0 Disdata=dis_7[display[k]]; if(k==1){DIN=0;} discan=scan_con[k];delay(90); discan=0 } } // // /***********18B20复位函数**********/ ow_reset(void) { char presence=1; while(presence) { while(presence) { DQ=1;_nop_();_nop_(); DQ=0; // delay(50); // 550us DQ=1; // delay(6); // 66us presence=DQ; // presence=0继续下一步 } delay(45); //延时500us presence = ~DQ; } DQ=1; } // // /**********18B20写命令函数*********/ //向 1-WIRE 总线上写一个字节 void write_byte(uchar val) { for (i=8; i&0; i--) // { DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ = val&0x01; //最低位移出 delay(6); //66us val=val/2; //右移一位 } DQ = 1; delay(1); } // /*********18B20读1个字节函数********/ //从总线上读取一个字节 uchar read_byte(void) { uchar value = 0; for (i=8;i&0;i--) { DQ=1;_nop_();_nop_(); value&&=1; DQ = 0; // _nop_();_nop_();_nop_();_nop_(); //4us DQ = 1;_nop_();_nop_();_nop_();_nop_(); //4us if(DQ)value|=0x80; delay(6); //66us } DQ=1; return(value); } // /***********读出温度函数**********/ // read_temp() { ow_reset(); //总线复位 write_byte(0xCC); // 发Skip ROM命令 write_byte(0xBE); // 发读命令 temp_data[0]=read_byte(); //温度低8位 temp_data[1]=read_byte(); //温度高8位 ow_reset(); write_byte(0xCC); // Skip ROM write_byte(0x44); // 发转换命令 } // /***********温度数据处理函数**********/ void work_temp() { uchar n=0; uchar doth, uchar flag3=1,flag2=1; //数字显示修正标记 if((temp_data[1]&0xf8)!=0x00) { temp_data[1]=~(temp_data[1]); temp_data[0]=~(temp_data[0])+1; n=1; flag=1; }//负温度求补码 if(temp_data[0]&255) { temp_data[1]++; } display[4]=temp_data[0]&0x0f; display[0]=ditab[display[4]]; doth=display[0]/10; dotl=display[0]%10; display[4]=((temp_data[0]&0xf0)&&4)|((temp_data[1]&0x07)&&4); display[3]=display[4]/100; display[2]=display[4]/10%10; display[1]=display[4]%10; if(!display[3]) { display[3]=0x0a; flag3=0; if(!display[2]) { display[2]=0x0a; flag2=0; } }//最高位为0时都不显示 if(n) { display[3]=0x0b;//负温度时最高位显示&-& flag3=0; } } // // /**************主函数****************/ main() { Disdata=0 //初始化端口 discan=0 for(h=0;h&4;h++){display[h]=8;}//开机显示8888 ow_reset(); // 开机先转换一次 write_byte(0xCC); // Skip ROM write_byte(0x44); // 发转换命令 for(h=0;h&500;h++) {scan();} //开机显示&8888&2秒 while(1) { read_temp(); //读出18B20温度数据 work_temp(); //处理温度数据 scan(); //显示温度值2秒 } } // //*********************结束**************************//。&朋友以下是本人历时1个月殚精竭虑自主开发的1个8位51单片机时钟程序,望吾之兄弟姐妹习之,此程序乃采用一键控制,通过感知按下键持续时间的长短来进行调整时间,闹铃,6只共阳数码管输出显示,此外还包括整点铃声功能,在看程序之前我先交代一下运行该程序的硬件要求:12M晶振,P0端口驱动(Drive)显示,P2.0到P2.5控制显示扫描,P2.7输出铃声,注意:铃声功放三极管应采用pnp管。以下是该程序: ORG 00H SETB TR0 JMP START ORG 000BH LJMP T0 START: MOV IE,#82H MOV TMOD,#01H MOV DPTR,#TAB MOV SP,#60H MOV 20H,#0 MOV R0,#0 MOV R1,#0 MOV R2,#0 MOV R3,#0 MOV R4,#0 MOV R5,#0 MOV R6,#0 MOV R7,#0 MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV 53H,#0 MOV 54H,#0 MOV 55H,#0 MOV A,TL0 ADD A,0B5H MOV TL0,A MOV TH0,#3CH LOOP: ANL 20H,#08H UNSV: MOV R1,#0 LCALL DISPLAY JB 03H,LOP1 LCALL SOUND LCALL HDLY LOP1: MOV P3,#0FEH ;按键监视 MOV A,P3 CJNE A,#0FEH,LOP2 MOV R1,#0 JMP LOOP LOP2: MOV R1,#2 ;误按判别 LOP3: LCALL HD DJNZ R1,LOP3 JNB 04H,LOOP CLR 04H LOP4: INC R1 MOV C,00H ;调秒 CPL C MOV 00H,C LCALL HDLY CJNE R1,#40,LOP5 JMP LOOP LOP5: JNB 05H,LOP4 CLR 05H MOV R1,#0 LCALL HD CLR 00H JB 04H,TF MOV R2,#0 MOV R3,#0 JMP LOP4 TF: CLR 04H LOP6: INC R1 MOV C,01H ;调分 CPL C MOV 01H,C LCALL HDLY CJNE R1,#40,LOP7 JMP LOOP LOP7: JNB 05H,LOP6 CLR 05H MOV R1,#0 LCALL HD CLR 01H JB 04H,TS INC R4 MOV R1,#0 CJNE R4,#10,LOP6 MOV R4,#0 INC R5 CJNE R5,#6,LOP6 MOV R5,#0 JMP LOP6 TS: CLR 04H LOP8: INC R1 MOV C,02H ;调时 CPL C MOV 02H,C LCALL HDLY CJNE R1,#40,LOP9 JMP LOOP LOP9: JNB 05H,LOP8 CLR 05H MOV R1,#0 LCALL HD CLR 02H JB 04H,TN INC R6 CJNE R7,#2,NO2 CJNE R6,#4,LOP8 MOV R7,#0 MOV R6,#0 NO2: CJNE R6,#10,LOP8 MOV R6,#0 INC R7 JMP LOP8 TN: CLR 04H ;调闹铃 SETB RS0 CLR RS1 MOV R2,#0 MOV R3,#0 MOV R4,#0 MOV R5,#0 MOV R6,#0 MOV R7,#0 NS: INC R1 ;闹铃秒调整 MOV C,00H CPL C MOV 00H,C LCALL HDLY CJNE R1,#40,NS1 JMP NH2 NS1: JNB 05H,NS CLR 05H MOV R1,#0 LCALL HD CLR 00H JB 04H,NF INC R2 CJNE R2,#10,NS MOV R2,#0 INC R3 CJNE R3,#6,NS MOV R3,#0 JMP NS NF: CLR 04H ;闹铃分 NF1: INC R1 MOV C,01H CPL C MOV 01H,C LCALL HDLY CJNE R1,#40,NF2 LJMP NH2 NF2: JNB 05H,NF1 CLR 05H MOV R1,#0 LCALL HD CLR 01H JB 04H,NH INC R4 CJNE R4,#10,NF1 MOV R4,#0 INC R5 CJNE R5,#6,NF1 MOV R5,#0 JMP NF1 NH: CLR 04H ;闹铃时调整 NH1: INC R1 MOV C,02H CPL C MOV 02H,C LCALL HDLY CJNE R1,#40,NH3 NH2: MOV 50H,R2 MOV 51H,R3 MOV 52H,R4 MOV 53H,R5 MOV 54H,R6 MOV 55H,R7 CLR RS0 CLR RS1 LJMP LOOP NH3: JNB 05H,NH1 CLR 05H MOV R1,#0 LCALL HD CLR 02H JB 04H,NH2 INC R6 CJNE R7,#2,NOT2 CJNE R6,#4,NH1 MOV R6,#0 MOV R7,#0 JMP NH1 NOT2: CJNE R6,#10,NH1 MOV R6,#0 INC R7 JMP NH1 ;子程序区 TIMES: CJNE R0,#20,LOOP16 MOV R0,#0 INC R2 CJNE R2,#10,LOOP16 MOV R2,#0 INC R3 CJNE R3,#6,LOOP16 MOV R3,#0 ADMINI: INC R4 CJNE R4,#10,LOOP16 MOV R4,#0 INC R5 CJNE R5,#6,LOOP16 MOV R5,#0 HOUR: INC R6 LCALL SOUND ;整点铃声 CJNE R7,#2,LOOP14 CJNE R6,#4,LOOP16 MOV R6,#0 MOV R7,#0 JMP LOOP16 LOOP14: CJNE R6,#10,LOOP16 MOV R6,#0 INC R7 LOOP16: RET DISPLAY:MOV P2,#0FFH MOV A,R2 MOVC A,@A+DPTR MOV P0,A MOV C,00H MOV P2.C MOV P2,#0FFH MOV A,R3 MOVC A,@A+DPTR MOV P0,A MOV P2.C MOV P2,#0FFH MOV A,R4 MOVC A,@A+DPTR MOV P0,A MOV C,01H MOV P2.C MOV P2,#0FFH MOV A,R5 MOVC A,@A+DPTR MOV P0,A MOV P2.C MOV P2,#0FFH MOV A,R6 MOVC A,@A+DPTR MOV P0,A MOV C,02H MOV P2.C MOV P2,#0FFH MOV A,R7 MOVC A,@A+DPTR MOV P0,A MOV P2.C MOV P2,#0FFH RET HDLY: MOV 40H,#2 HDL1: MOV 41H,#25 HDL2: MOV 42H,#100 HDL3: DJNZ 42H,HDL4 DJNZ 41H,HDL2 DJNZ 40H,HDL1 JMP HDOT SOUT: SETB 05H HDOT: RET HDL4: MOV P3,#0FEH MOV A,P3 CJNE A,#0FEH,SOUT CLR 05H LCALL DISPLAY JMP HDL3 HD: MOV 30H,#5 HD1: MOV 31H,#50 HD2: MOV 32H,#100 HD3: LCALL DISPLAY DJNZ 32H,HD4 DJNZ 31H,HD2 DJNZ 30H,HD1 SETB 04H ;计满标志位 JMP HDOUT HD4: MOV P3,#0FEH MOV A,P3 CJNE A,#0FEH,HD3 MOV 33H,#50 HD5: MOV 34H,#100 DJNZ 34H,$ DJNZ 33H,HD5 MOV P3,#0FEH MOV A,P3 CJNE A,#0FEH,HD3 CLR 04H HDOUT: RET SOUND: MOV 30H,#10 SO1: MOV 31H,#100 SO2: MOV 32H,#3 MOV C,P2.7 CPL C MOV P2.C SO3: MOV 33H,#25 DJNZ 33H,$ DJNZ 32H,SO3 DJNZ 31H,SO2 DJNZ 30H,SO1 RET T0: PUSH PSW PUSH ACC CLR RS1 CLR RS0 MOV A,TL0 ADD A,#0B5H MOV TL0,A MOV TH0,#3CH INC R0 LCALL TIMES MOV A,R2 CJNE A,50H,TO SETB 03H MOV A,R3 CJNE A,51H,TO MOV A,R7 CJNE A,55H,TO MOV A,R6 CJNE A,54H,TO MOV A,R5 CJNE A,53H,TO MOV A,R4 CJNE A,52H,TO MOV A,R2 ADD A,R3 ADD A,R4 ADD A,R5 ADD A,R6 ADD A,R7 JZ TO CLR 03H TO: POP ACC POP PSW RETI TAB: DB 0C0H 0F9H 0A4H 0B0H 099H DB 092H 082H 0F8H 080H 090H END 如有任何疑问请与qq联系&。用汇编语言写一个单片机定时器/计数器的程序_百度知道
用汇编语言写一个单片机定时器/计数器的程序
设计要求:1.单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。
2.单片机的定时器/计数器以中断方式工作,设定计数功能,对...
1,2计数外部连续周期性矩形波并在单片机口上产生某一频率连续矩形波
我有更好的答案
1.以查询方式工作,每计满100个脉冲,则取反P1.0口线状态。&&&&&ORG&&&0000H&&&&MOV&&&TMOD,&#06H&&&&MOV&&&TH0,&#156&&&&MOV&&&TL0,&#156&&&&SETB&&TR0LP:&JNB&&&TF0,&LP&&&&CPL&&&P1.0&&&&SJMP&&LP&&&&END2.以中断方式工作,每计满200个脉冲,则取反P1.0口线状态。&&&&ORG&&&0000H&&&&SJMP&&START&&&&ORG&&&000BH&&&&CPL&&&P1.0&&&&RETISTART:&&&&MOV&&&TMOD,&#06H&&&&MOV&&&TH0,&#56&&&&MOV&&&TL0,&#56&&&&SETB&&TR0&&&&MOV&&&IE,&#82H&&&&SJMP&&$&&&&END
1,2计数外部连续周期性矩形波并在单片机口上产生某一频率连续矩形波
对。上面的两段程序,都是完成这个任务。
采纳率:64%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求教大神AT89S52单片机产生1s方波汇编程序_单片机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:149,587贴子:
求教大神AT89S52单片机产生1s方波汇编程序收藏
如题,因为次数大于65536查阅了很多资料没想到办法,我是初学者,恳请大神帮忙,不胜感激,对了需要用汇编程序,谢谢,在线等
登录百度帐号

我要回帖

更多关于 单片机汇编语言实例 的文章

 

随机推荐