资源描述:
《2012.02.29嵌入式系统原理与设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、上节课余留问题:标准做法:①全部清0②部分置1置1:位或掩码清0:位与掩码的反码题:32位,17到10位设成0101…01解:GPBCON&=~0x0003FC00GPBCON
2、=0x00015400(注:置0变1(加上~就变成0了))正文:②使用按键控制LED电路图GPB5GPB6GPB7GPB8LED1LED2LED3LED43.3VS3C2410GPG11GPG3GPF2GPF03.3VK1K2K3K4S3C2410K1闭合,GPB11低电平K1断开,GPB11高电平GPGDAT11位,当GPB11
3、为0时,低电平;当GPG11为1时,高电平。考试肯定考的20分编程题!!!#defineGPBCON(*(volatileunsignedlong*)0x56000010)#defineGPBDAT(*(volatileunsignedlong*)0x56000014)#defineGPGCON(*(volatileunsignedlong*)0x56000050)#defineGPGDAT(*(volatileunsignedlong*)0x56000054)#defineGPFCON(*(volati
4、leunsignedlong*)0x56000060)#defineGPFDAT(*(volatileunsignedlong*)0x56000064)#defineGPB5_OUT1<<(5*2)#defineGPB6_OUT1<<(6*2)#defineGPB7_OUT1<<(7*2)#defineGPB8_OUT1<<(8*2)#defineGPG11_IN~(3<<(11*2))#defineGPG3_IN~(3<<(3*2))#defineGPF2_IN~(3<<(2*2))#defineGPF
5、0_IN~(3<<(0*2))intmain(){unsignedlongdwDat;GPBCON=GPB5_OUT
6、GPB6_OUT
7、GPB7_OUT
8、GPB8_OUT;GPGCON=GPG11_IN&GPG3_IN;GPFCON=GPF2_IN&GPF0_IN;while(1){dwDat=GPGDAT;if(dwDat&(1<<11))//如果表达式为真值,表示K1没被按下,与GPG11相连GPBDAT
9、=(1<<5);//LED1熄灭elseGPBDAT&=~(1<<5);//LED1点亮if(d
10、wDat&(1<<3))//如果表达式为真值,表示K2没被按下,与GPG3相连GPBDAT
11、=(1<<6);//LED2熄灭elseGPBDAT&=~(1<<6);//LED2点亮dwDat=GPFDAT;if(dwDat&(1<<2))//如果表达式为真值,表示K3没被按下,与GPF2相连GPBDAT
12、=(1<<7);//LED3熄灭elseGPBDAT&=~(1<<7);//LED3点亮if(dwDat&(1<<0))//如果表达式为真值,表示K4没被按下,与GPF0相连GPBDAT
13、=(1<<8);
14、//LED4熄灭elseGPBDAT&=~(1<<8);//LED4点亮}return0;}解读程序:上拉电阻寄存器:GPBUP——0x56000018GPGUP——0x56000058GPFUP——0x56000068(A组00,B组10,C组20,以此类推,F组60)#defineGPB5_OUT1<<(5*2)——第10位掩码置1#defineGPG11_IN~(3<<(11*2))——第(11向左移22位)22位和第23位的掩码清0dwDat作用——临时保存GPGDAT和GPFDATOUT——输出
15、引脚IN——输入引脚问题:第10,12,14,16位是1,其它都是0了,变成输入引脚了。作业:如何把第10,12,14,16位置1而其它不变成输入引脚?(22,23位,6,7位,4,5位,0,1位都是输入引脚,是所需的,而其它不需要。)答:GPBCON&=~0x00C3FCF3GPBCON
16、=0x00015400GPBCON&=~0x00C000C0GPBCON&=~0x00000033分析:GPBCON和上课讲的一样;GPGCON只需将22,23位和6,7位置0;GPFCON只需将4,5位和0,1位置0
17、;下图是汇总画的,只为理解过程,不是答案。31~2827~2423~2019~1615~1211~87~43~00000000011000011111111001111001100C3FCF331~2827~2423~2019~1615~1211~87~43~00000000000000001010101000000000000015400下节课交三条语句,其它不用写。K1按下,GPGDAT11为低电平,dwDat值为0,第1