完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`今天用PIC单片机作了这样的一个仿真实验。图已付上。程序如下:
//按下k1和k2键,分别向串口送出字符0x55和0xaa. #include #define uchar unsigned char #define uint unsigned int __CONFIG(HS&WDTDIS&LVPDIS); void init_ser(void) { SYNC=0; //选择异步通信模式 BRGH=1; //选择高速波特率发生模式 SPEN=1; //串行通信端口打开 TXEN=1; //允许发送数据 SPBRG=38; //设置波特率为19200;单片机工作振荡频率为12MHZ,高速模式 } void main() { uchar tmp; uchar outdat; uchar send=1; init_ser(); TRISB=0XFF; for(;;) { send=1; tmp=PORTB; if(tmp==0x7f) //RB7所接按键被按下 {outdat=0x55;} else if(tmp==0xbf) //RB6所接按键被按下 {outdat=0xaa;} else if(tmp==0xff) {send=0;} do{ if(send) { TXREG=outdat; // while(TRMT) //等待,直到TRMT=1 for(;;); } }while(tmp!=0xff); } } 根据这个程序,我按下k1和k2键,分别向串口送出字符0x55和0xaa.但我的仿真结果,我不是很满意。因为我每一次按k1或k2键时,就会出现许多的0x55或0xaa,这不是我想要的。我现在想把上面的程序改为按一下k1出现一下0x55,和按一下k2出现一下0xaal. 望大家帮改一下。 ` |
|
相关推荐
|
|
{:13:}
|
|
|
|
|
|
{:13:}{:13:}
|
|
|
|
|
|
1。要对键盘防抖动处理。
2。得到数后,要锁定状态,发完数,要延时。按键的时间是以秒计,而cpu处理时间或一个loop,是按ms计。 出现你这种状态是非常正常的。 |
|
|
|
|
|
这个改起来很简单啊。如果按住当然一直在发送的啊
|
|
|
|
|
|
帮忙顶一下吧
|
|
|
|
|
|
{:3:}{:3:}{:3:}{:3:}
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2084 浏览 1 评论
3629 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2336 浏览 2 评论
2763 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4027 浏览 5 评论
973浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6360浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 20:21 , Processed in 0.910448 second(s), Total 103, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号