问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请各位各位江湖人士帮忙,求有关单片机的程序

发布网友 发布时间:2022-04-30 04:03

我来回答

4个回答

热心网友 时间:2023-10-11 03:55

ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0_SEVER
ORG 30H
MAIN:;主程序
MOV P1,#00H
CLR P3.0
CLR P3.1
CLR 00H;初始化显示,关显示
MOV R0,#99;装初值
MOV R1,#00H;显示低位
MOV R2,#00H;显示高位
MOV DPTR,#TABLE;LED显示段位码首地址
MOV TMOD,#01H;T0定时方式1
MOV IE,#82H;开T0中断
MOV TL0,#LOW(65536-5000)
MOV TH0,#HIGH(65536-5000);装定时初值,定时5ms
SETB TR0;启动定时器
LOOP:
MOV A,R0
MOV B,#10
DIV AB
MOV R1,B;显示低位暂存
MOV R2,A;显示高位暂存
ACALL DELAY1S;调用1s延时子程序
DJNZ R0,LOOP;判断倒计时是否完毕
AJMP MAIN;循环执行
DELAY1S:;延时1s子程序
MOV R7,#20
DEL1:
MOV R6,#100
DEL2:
MOV R5,#248
DJNZ R5,$
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
T0_SEVER:;中断服务子程序
JB 00H,LOOP1;判断显示标志位
SETB P3.0
CLR P3.1
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A;显示低位
SETB 00H;置显示标志位
AJMP RETURN
LOOP1:
CLR P3.0
SETB P3.1
MOV A,R2
MOVC A,@A+DPTR
MOV P1,A;显示高位
CLR 00H;清显示标志位
RETURN:
MOV TL0,#LOW(65536-5000)
MOV TH0,#HIGH(65536-5000);重装定时器初值
RETI
TABLE:;LED显示段码表
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
C51代码的程序实时性不好,时间不准,望指出问题。
/*程序名:99~0倒计时程序*/
/*程序功能:用P1口和P3.0、P3.1口实现动态显示,完成99~0的倒计时功能*/
/*作者:严峥晖*/
#include<at89x51.h>
typedef unsigned char uchar;
uchar code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
bit bdata flag="0";
uchar data high_dis,low_dis;
void delay(void)//延时子函数
{
uchar i,j,k;
for(i=0;i<=20;i++)
for(j=0;j<=100;j++)
for(k=0;k<=248;k++);
}
void init(void)//初始化函数
{
P1=0x00;
P3_0=0;
P3_1=0;
IE="0x82";
TMOD="0x01";
TL0=(65536-5000)%256;
TH0=(65536-5000)/256;
TR0=1;
}
void calc(uchar time)//计算显示高低位
{
high_dis=time/10;
low_dis=time%10;
}
void sever_t0(void) interrupt 1//中断服务子程序
{
if(flag==0)
{
P3_0=1;
P3_1=0;
P1=led[low_dis];
flag=~flag;
}
else
{
P3_0=0;
P3_1=1;
P1=led[high_dis];
flag=~flag;
}
TL0=(65536-5000)%256;
TH0=(65536-5000)/256;
}
int main(void)//主函数
{
uchar i="99";
init();
do
{
calc(i);
delay();
i--;
}
while(i>=0);
}

热心网友 时间:2023-10-11 03:55

源起: http://zhidao.baidu.com/question/163455823.html
适合用户:KeilC已初步入门,想进一步提高的朋友

程序架构:全部使用状态机构建而成(状态机是高手进阶必经之路)
模块构成:键盘,显示,定时器,CPU核心四大块

程序特点:
1. 修改方便,所有头文件由Includes.h统一组织,增加头文件只需在Includes.h中加入;
2. 由Keil自带串口方便的在全速运行时监视数据
3. 本系统相当于一个精简的合作式操作系统,你随便用,绝无版权纠纷;
使用方法:
1. 打开项目文件,编译通过并启动调试器
2. peripherial 菜单下打开P2口(P2.0 -P2.2是键盘,定义详见Key.c)
3. view菜单下打开Serial Window #1 ,将显示模式设定为16进制(putchar()输出字符)
4. Run全速运行,点击键盘P2.0,P2.1,P2.2观察效果(注意按键按下后必须弹起,否则不响应下一次按键)
下载地址:http://www.pudn.com/downloads268/sourcecode/embed/detail1227714.html

参考资料:http://www.pudn.com/downloads268/sourcecode/embed/detail1227714.html

热心网友 时间:2023-10-11 03:56

不就是倒计时吗、俺可以写出来,况且给你做出仿真来,坚决不是忽悠你。
想就联系我

热心网友 时间:2023-10-11 03:57

so EASY
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
畅享好还是荣耀好 怎么向老师请教问题?? ...和是40.15较大数的小数点向左移动一位就等于较小的数,这两_百度知... 两个数的和是40.15,较大数的小数点向左移动一位就等于较小的数这两... 两个数的和是40.15,较大的数的小数点像向左移动一位就等于较小的数... 两个数的和是40.15,较大数的小数点向左移动一位等于较小的数 ...和是40.15较大数的小数点向左移动一位就等于较小的数这两个数分别... 怎么用手机查询农行信用卡余额? 朝阳公园附近有孩子可以托管的地方吗? 华泰证券怎么添加第二张银行卡 基于51单片机控制的9999秒倒计时器的设计,程序怎样做? 有什么好玩的单机游戏! 帮忙解读一下51单片机99秒倒计时程序。 有没有好玩的单机游戏,类似帝国时代的 51单片机两个共阳数码管实现99秒倒计时,求程序 有没有和帝国时代类似的单机游戏? 用单片机P0端口控制LED数码管,并使用定时器实现 99秒倒计时显示。 介绍几部好玩的单机游戏。 类似帝国时代的,或者求生之路的, 鬼泣之类的就算了。 最好有中文版的 AT89C51单片机用C语言编写一个99秒倒计时的程序,要求复位或上电2位数码管显示00,可用SB3预设每按一次数 有什么好玩的单机游戏,类似帝国时代的,最好是讲三国的 类似帝国时代的单机游戏,帝国时代有人数限制,我要没有人数限制的 单片机求助C语言编程 实现99秒倒计时到0秒停止! 求好心人哪! 《夜莺的歌声》这篇课文有那些好词佳句词要10个句要2个快 好书推荐红楼梦200字 屏幕已锁定 这是怎么了 安全的游戏下载有吗帝国时代 《寄小读者》的好词佳句 女生日记里的好词佳句 『求助』用51单片机定时器实现99秒表倒计时 有没有摘抄好词好句的,写的妙词小背篓,佳句欢乐谷 行程码时间怎么选择? 行程码主要看箭头还是字 做梦我妈卖菜还杀狗卖狗肉 梦见有人杀狗,给邻居介绍买狗肉,结果被狗跳起来咬着我的头,电话吵醒 抖音没有地址链接 抖音http协议地址 抖音专享链接和特推链接怎么做 抖音站外作品链接是什么 描写哈尔滨冬天雪景的作文... 哈尔滨的冬天800字作文 我爱家乡冰雪征文,要哈尔滨的,小学四年级。 作文 冬天的哈尔滨 雪后的哈尔滨作文400字 哈尔滨的冬天作文怎么写? solidworks中智能扣件功能在哪 《上学路上看哈尔滨的冬天》作文250字 哪个做精酿啤酒的品牌好啊? 填有关孙悟空的歇后语 关于孙悟空的歇后语 有人喝过精酿啤酒吗,哪个牌子的好喝啊?