第一讲 单片机IO口工作原理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲 单片机I/O口工作原理 # V* K. J |$ F a0 B* L7 ` 1、I/O表示Input、Output,即输入输出。经常听到单片机端口是标准双向口,就是说,单片机的端口既可以作为输出信号端(如控制灯亮灭、继电器吸合释放、喇叭发声等),也可以作为输入信号端(如按键信号输入、红外波形输入、开关信号输入等)。 $ t X7 ?0 L% z* O) n: T 2、暂且不管IO内部详细结构,先把单片机当黑匣子处理,假设我们需要控制一个LED的亮灭,应该怎么做? k* F: j5 I; |5 o: k/ f这里列出一个最简单的硬件控制电路: f; u/ A, {4 } 下载 (25.61 KB) 2009-12-30 09:43 收藏分享 接上。 4 z m% @- | l- C, v L上图中A点就相当于单片机的I/O口,A点相当于单刀双掷开关,可以接到+5V,也可以接到电源地。接到+5V或者悬空,整个电路中没有电流流过,LED的的状态是熄灭。如果A点接到电源地,2端压差5V,假设LED正常工作压降1.5V,正常工作电流10mA。我们通过图上的参数得知实际工作:I=(5V-1.5V)/390欧姆=8.9mA,接近于正常工作电流,所以LED被点亮。在数字电路中,我们接+5V认为是电平“1”,接地为“0” L5 H6 [* v; K; o* v: u* ]+ z0 H* s1 H5 h) P$ l 所以在单片机中,按照上图连接LED到P1.1口,我们只需要控制P1.1口的电平是“0”或“1”就可以控制LED的亮灭。 1 ?# N3 [1 l, u8 s l4 B$ J - w$ x. y# B/ D$ Q L ^8 x b汇编语句:SETB P1.1 即set bit 置位 P1.1,语句的作用是把P1.1赋值电平“1” 5 f9 D8 L2 w5 O CLR P1.1 即clear(清除,清零) P1.1 ,语句的作用是把P1.1赋值电平“0” X4 ~% u; [ H2 p p c语句: c语句中“=”即赋值的意思,如A=B;即把B赋值给A。- e i, b O1 U8 |8 j, P* G P1_1 = 0;0 u4 S5 a4 T; ~ N P1_1 = 1; 这2句作用等同于上述汇编 . [+ I/ v$ B8 z5 ^如果在keil中编译,c51中没有P1_1这个表示,需要预先定义, . B* p# w I8 n7 l u8 s sbit P1_1 = P1^1; 这是固定格式 ------------------------------------------------*/ ( }2 s+ t; T9 \6 I5 e/ ~#includereg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义- |$ R- g p$ k9 P /*------------------------------------------------5 | n# W$ T5 ]) o2 d/ |8 o 主函数 / j+ ^ U+ Z+ P# m2 ^( R1 u) b# l------------------------------------------------*/ , V9 C; P. G3 lvoid main (void) , V5 {0 s4 J8 H3 w+ M0 ]{2 j C. T2 t$ f g V# s u) c2 @% `9 JP1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉,ff换算成二进制是 1111 1111 + T6 {5 |7 Q, D$ o) U; m* O: \/ A P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮 - E! }1 V3 i6 Q) b1 b //0xfe是16进制,0x开头表示16进制数,fe换算成二进制是 1111 1110 0 I3 S. e: w$ Iwhile (1) //主循环$ X( E4 p! c+ Q! ^ {% L }- o1 S d //主循环中添加其他需要一直工作的程序 9 I b9 w7 h S- i/ _ }$ q9 c6 o- A0 }* | }$ Q( d4 U4 } Y $ v( \2 T R8 }% k7 U 看光盘中程序 程序作用是熄灭P1口的8个LED,然后点亮P1.0口的1个LED,最后看到的现象是(mini80/mini80E)LED2点亮。 本节要求:看完本节内容和相对应的程序后,应该能通过更改程序中的一些十六进制值达到控制任意LED的亮灭。+ B4 G- ^7 B+ y8 H7 N8 b2 q/ m J C+ L 例如:把连接到P1口的8个LE

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档