完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
======================================
问题:数码管显示的数字不对,仿真还是程序有误 大神们 ====================================== #include char table[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8}; #define PORTAIT(adr, bit) ((unsigned)(&adr)*8+(bit)) /*绝对寻址位操作指令*/ static bit PORTA_5@PORTAIT(PORTA,5); void delay(char t) { while(t--); } /*spi 初始化子程序*/ void SPIINT(void) { PIR1=0;//清除spi中断标志 SSPSTAT=0xC0;//在串行时钟sck下降沿发送数据 SSPCON=0x30;//* SSPEN=1; CKP=0 , FOSC/4 */ TRISC=0x00;/*SDO 引脚为输出, SCK 引脚为输出*/ } /*系统各输入输出口初始化子程序*/ void initial(void) { TRISA=0x00; /*A 口设置为输出*/ INTCON=0x00; /*关闭所有中断*/ PORTA_5=0; /*LACK 送低电平,为锁存做准备*/ } /*SPI 发送子程序*/ void SPILED(char dat) { SSPBUF=dat; /*启动发送*/ while(!SSPIF); /*等待发送完毕*/ SSPIF=0;/*清除 SSPIF 标志*/ } /*主程序*/ main() { char i=0; initial(); /*系统初始化*/ SPIINT();/*SPI 初始化*/ while(1) { for(i=0;i<9;i++) { SPILED(table[2]); /*发送显示段码显示*/ } PORTA_5=1; } } ==================================================== ======================================================
|
|
相关推荐
2个回答
|
|
for(i=0;i<9;i++)
{ SPILED(table[i]); /*发送显示段码显示*/ } PORTA_5=1; -------------------------------------------------------------------------------- 目的就想8个数据发完 然后显示出来 |
|
|
|
已经解决,下面这种
SSPSTAT=0xC0;//在串行时钟sck下降沿发送数据 SSPCON=0x30;//* SSPEN=1; CKP=0 , FOSC/4 */ 改成: SSPSTAT=0x80;//在串行时钟sck下降沿发送数据 SSPCON=0x20;//* SSPEN=1; CKP=0 , FOSC/4 */ |
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2031 浏览 1 评论
3171 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2270 浏览 2 评论
2697 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
3921 浏览 5 评论
832浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6251浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-21 08:52 , Processed in 0.656768 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号