完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
要求:用51单片机控制每隔0.5秒从P1.1输出一个宽度可变的脉冲。脉冲宽度应该是1ms的整倍数,每输出16个脉冲后再重复循环。(要求使用c语言编写)
给了1个AT89S51 、4个电阻 、2个30uf的电容、1个22uf的电容、2个按钮开关、1个12M的晶振,画出原理图 (希望给个原理图) |
|
相关推荐
8个回答
|
|
我是新手,帮不了你啊!
|
|
|
|
在百度知道上看到过你的提问。你最好说得再详细些,比如脉冲的作用什么的。这样高手才好帮你。新手路过。
|
|
|
|
其实这种直接说给原理图的 一般少有人有空给弄的 |
|
|
|
|
|
单片机最小系统图能画出来吧 两个按键分别接在两个输出口上例外那端接在地上 分别用两个键盘控制p0 的脉冲输出就行了呀
程序在写完成发过去验证一下 我也不能确定输出一定能让你想要的那种脉冲共同学习 |
|
|
|
//PD2 外部中断0控制 PWM 30%的亮度
#include #include #define uchar unsigned char #define uint unsigned int void port_init() { DDRB=0Xff; PORTB=0X00; //低电平灯灭 } void drive_init() { MCUCR|=0x03; //上升沿中断触发 GICR|=BIT(6);//使能外部中断 TCCR0=0X02; //8分频 TCNT0=0X37; //定时0.1ms溢出 SREG|=BIT(7);//打开总中断 } void main(void) { port_init(); drive_init(); while(1); } #pragma interrupt_handler int0_isr:2 void int0_isr() { //send_pwm(); TIMSK|=BIT(TOIE0); } #pragma interrupt_handler time0_isr:10 void time0_isr() { static uchar countime0; TCNT0=0X37; countime0++; if(countime0>=300) { PORTB&=~BIT(0); } if(countime0<=90) { PORTB|=BIT(0); } } |
|
|
|
顶楼上一个···还是有人帮解答的
|
|
|
|
顶一个
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【Altium小课专题 第107篇】原理图中批量修改位号或网络标号属性值字体的大小?
10656 浏览 1 评论
【Altium小课专题 第103篇】原理图同一网络颜色进行了设置,但是无法进行显示是什么原因?
7800 浏览 0 评论
【Altium小课专题 第094篇】如何从PCB中直接生成PCB库呢?
7985 浏览 0 评论
【Altium小课专题 第071篇】什么是层次式电路设计?它的优点有哪些?
6804 浏览 0 评论
【Altium小课专题 第068篇】原理图的模板如何进行编辑信息更改?
12889 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 06:51 , Processed in 0.740200 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号