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

单片机实验设计

发布网友 发布时间:2023-09-17 15:55

我来回答

2个回答

热心网友 时间:2024-12-04 21:18

;-------------------------------------
;下列程序,经过编译、仿真,符合要求:
;-------------------------------------
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
;-------------------------------------
START:
MOV TMOD, #01H
MOV TH0, #9EH
MOV TL0, #58H ;50ms@6MHz
SETB TR0
SETB ET0
SETB EA
MOV R2, #10
LOOP:
CLR PSW.5
CLR P1.1 ;输出0,这是一个周期的开始.
JNB PSW.5, $ ;等待500ms
CLR PSW.5
JNB PSW.5, $ ;再等待500ms
CLR PSW.5
MOV C, P3.3 ;如果P3.3为低,
CPL C
MOV P1.1, C ;就输出高,这就是50%占空比.
JNB PSW.5, $ ;继续等待500ms
CLR PSW.5
SETB P1.1 ;如果到这里才输出高,就是25%占空比.
JNB PSW.5, $ ;输出高500ms
SJMP LOOP
;-------------------------------------
T0_INT: ;50ms执行一次.
MOV TH0, #9EH ;重新赋初始值.
MOV TL0, #58H ;50ms@6MHz
DJNZ R2, T0_END ;不到10次,转到退出.
; ;下列指令都是每隔500ms执行一次.
MOV R2, #10 ;重新设置.
SETB PSW.5 ;每隔500ms,设置一次1
T0_END:
RETI
;-------------------------------------
END
;-------------------------------------
编译后的机器语言,仅仅用了74字节

热心网友 时间:2024-12-04 21:18

/*
AT89S52单片机,采用12MHZ晶振
启用time0计时器。以50ms为一中断周期
中断40次为2S
中断30次为1.5S
中断20次为1S
中断10次为0.5S
*/
#include <reg52.h>
#define uchar unsigned char;

sfr wdt=0x9f; //89s52的看门狗地址

sbit pwm=P1^1; //P1.1为输出
sbit sw_in=P3^3; //P3.3为按键输入选择占空比
uchar time2s=40; //2秒计数需进入中断的次数
uchar time1s=20; //1秒计数需进入中断的次数
uchar time0_5s=10; //0.5秒计数需进入中断的次数
uchar timex=0; //中断进入的次数

void main(void)
{
wdt=0; //关开门狗
IE=0x82; //开time0中断
TMOD=0x51; //TIME1为计数器 TIME0为定时器
TH0=(65536-50000)/256; //50MS的计时时间,可利用示波器采集,来更改数据,使时间再精确
TL0=(65536-50000)%256; //50MS的计时时间,可利用示波器采集,来更改数据,使时间再精确
TR0=1; //启动time0计时
while(1); //死循环,输出和判断都在中断中执行
}

//TIME0中断入口程序
void Timer0(void) interrupt 1
{
TH0=(65536-50000)/256; //50MS的计时时间,可利用示波器采集,来更改数据,使时间再精确
TL0=(65536-50000)%256; //50MS的计时时间,可利用示波器采集,来更改数据,使时间再精确
TR0=1; //启动time0计时

timex++;
while(sw_in) //当P3.3为高电平时
{
if(timex<=time0_5s) pwm=1; //占空比为25%
else pwm=0;
break;
}

while(!sw_in) //当P3.3为低电平时
{
if(timex<=time1s) pwm=1; //占空比为50%
else pwm=0;
break;
}
if(timex==time2s) timex=0; //当计时到2秒时,回归为0
}

希望能对你有所帮助
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的电器到成都,请问一下,那个航空快一些呀,多少/公斤? 前女友和我分手一年之后,出车祸死了,我很高兴,这种心理是不是不... 为什么听到前女友去世的消息,我竟然放声大哭,她很爱我,是我对她腻了... 兰州银行充天然气必须要本行卡吗 从服饰礼仪看中西方文化差异 为什么iqoo11评价那么低? 相机快门线的运用范围 快门线是干什么用的 请问这是什么虫子 还挺硬的 在楼房内 整理箱上面发现的 屋内有木质上... 请问这是什么虫子?家里抓到,2cm左右。坐标北京,昌平,冬季12月,楼房... 求单片机C语言的一项设计作品 开封哪个车站有到郑州西站的车? 开封至郑州火车途经哪些站点 开封至郑州的车到哪个站 44朵玫瑰花的含义是什么,44朵玫瑰花的寓意是什么 马大帅第一部演员表 电动车电机不转的原因和解决方法? 汽车开冷气响是外面轴承响还是里面轴承响? ...单词抄在横线上,并画出发音相同的字母或字母组合。 英语两道题是多少画? ...含有相同读音的单词抄在横线上,并画出读音相同的字母或字母组合? 请问红箭鱼在什么时候会发生雌鱼变成雄鱼? 红箭怎么交配 这红剑是公是母? 红箭鱼能变性吗? 为什么唱吧用QQ登陆不了,卸载了也不行 砀山县到祟山少林武术学校有多少里路aa ...现在我用QQ登录唱吧登了好多次都没登上去,登录的时候老是显示请使用... 刚峰武术学校离砀山火车站有多远 粉丝的做法,城市味#鸡脯肉炒粉丝怎么做好 大学单片机课程实验设计 求一单片机程序设计 汽车空调压缩机烫手怎么回事 ...的好兄弟,但是男主某一天变成了女生,最后两个人在一起了。 我需要 2022年二建学天2022年真题解析班,求帮助,我找不到这个百度网盘资... 新高考和老高考哪个更难 济南发生怪事,大庭广众之下一座菩萨像被人拿走,是谁如此大胆? 形容离开公司的诗句 平安财险综拓专员是干什么的?薪酬怎样? 美宜佳的支付宝充值码的有效期是多久! 支付宝充值码一天的限度 冒险岛闵先生和炮娄在哪 冒险岛闵先生在哪 冒险岛NPC闵先生的任务主要是打什么..? 冒险岛闹钟任务的闽先生在哪 冒险岛闹钟任务, 我108级了,找到了闵先生,。为什么他那没有任务... DNF剑魂流心放在哪个键上比较方便呢 DNF剑魂流心摆放在哪里,后跳斩放在哪里顺手,PK用 李世民有没有统治半个地球 车子被球砸了怎么办