资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,手把手教你学单片机,-51,基础,(C,语言,),金沙滩工作室,1,第四课:,流水灯,2,常用延时办法,非精确延时,1,、,for(i = 0; i 100; i+);,2,、,i = 100; while(i-);,精确延时办法,1,、利用库函数,_nop_();,(,需要,include ),2,、利用定时器进行定时,(,后边的课程进行介绍,),3,变量类型,关键字,所占字节,取值范围,unsigned char,1,0255,“00000000”,到”,11111111”,unsigned int,2,065535,“00000”,到,“,11111111 11111111”,依照国际惯例,我们可以用,uint8 uint16,等缩写来替代,只需要用,typedef,语句可以完成:,typedef unsigned char uint8;,typedef unsigned int uint16;,4,流水灯实验,8,个,LED,发光二极管,分别对应单片机,IO,口的,P0.0,到,P0.7,口,,8,个单片机,IO,口组成一个字节,在程序编写过程中,可以直接用,P0,来进行操作。,C,语言的,8,位二进制数代表了,8,个,IO,口,P0 = 0xfe;,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,1 1 1 1 1 1 1 0,5,C,语言运算符,左移,X2,左移,最低位填,0,补充;右移,最高位填,0,补充,0xf0 11100000 01111000,按位取反符号,取反后,1,变成,0,,,0,变成,1,0x0F,取反后成为,0xF0,即,00001111-11110000,6,数码管,7,数码管真值表,根据单片机连接电路,可以计算出数码管的真值表,:,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,dp g f e d c b a,1 1 1 1 1 0 0 1,P0 = 0xF9;,8,数码管真值表,根据单片机连接电路,计算出数码管的真值表,0 1 2 3 4 5,0xc0 0xf9 0xa4 0xb0 0x99 0x92,6 7 8 9 A b,0x82 0xf8 0x80 0x90 0x88 0x83,C d E F,0xa7 0xa1 0x86 0x8e,9,作业,1,、记住,C,语言,2,个变量类型及其范围,掌握,C,语言的位操作和字节操作。,2,、用,3,个,LED,小灯做一个交通灯的程序。,3,、根据原理图和流水灯程序,独立完成流水灯反方向流动以及小灯一个个点亮直到全亮的功能。,4,、明白数码管的原理,写出数码管真值表。,10,如有疑问,请登录交流,谢谢!,11,
展开阅读全文