您好,欢迎访问三七文档
《单片机C程序设计》信息工程学院智能电子教研室数字红绿灯•1演示效果•2分析项目•3设计硬件电路•4编写程序•5软硬件调试•6总结《单片机C程序设计》信息工程学院智能电子教研室1演示效果《单片机C程序设计》信息工程学院智能电子教研室2分析项目•回忆•新知识《单片机C程序设计》信息工程学院智能电子教研室•回忆1硬件知识:逻辑电平、条装LED2软件知识:数组概念、定义、调用3开发环境:Proteus、Keil软件的使用4开发项目:霓虹灯《单片机C程序设计》信息工程学院智能电子教研室新知识控制语句for-循环结构如何显示超过9的数字《单片机C程序设计》信息工程学院智能电子教研室3设计硬件电路3.1逻辑电平3.2LED3.3数码管3.3Proteus电路设计《单片机C程序设计》信息工程学院智能电子教研室•3设计硬件电路•3.1逻辑电平单片机有IO口32根,可以输出高或低电平。赋值1,输出高电平;赋值0,输出低电平。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51《单片机C程序设计》信息工程学院智能电子教研室•3硬件知识•3.2发光二极管LED是英文LightEmittingDiode的简写,中文称发光二极管。发光二极管LED是光—电转换半导体器件,在正向电压作用下,电能转换为光能,发光;反之,如果没有正向电压,则不发光。《单片机C程序设计》信息工程学院智能电子教研室3.3数码管《单片机C程序设计》信息工程学院智能电子教研室IO引脚P076543210十六进制控制的段dpcdebafg显示“0”显示“1”000001100x06显示“2”显示“3”显示“4”《单片机C程序设计》信息工程学院智能电子教研室《单片机C程序设计》信息工程学院智能电子教研室3.4Proteus电路设计《单片机C程序设计》信息工程学院智能电子教研室4编写程序4.1控制语句-循环结构4.2循环结构for语句4.3设计循环结构4.4整除和求余4.5keilC编程《单片机C程序设计》信息工程学院智能电子教研室4.1控制语句-循环结构•循环结构是结构化程序设计中一种很重要的结构,又称为重复结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。《单片机C程序设计》信息工程学院智能电子教研室•在进行循环结构程序设计时,关键是要设计好循环判断条件和循环体。循环判断条件主要是判断循环体是否需要再次执行,什么时候结束,所以在设计循环判断条件时一定要准确。循环体设计的主要工作是,决定哪些语句应该在循环体内,哪些语句应该放在循环体外,判断的标准是该语句是否需要多次执行,不能放错位置。循环条件和循环体设置不好,很可能得不到预期的结果,甚至出现死循环。《单片机C程序设计》信息工程学院智能电子教研室1.循环条件设计如果查询人数确定,可用一个变量来记录已查询的人数,循环条件可设计为判断计数变量是否小于指定人数,源程序可以参阅例5-6,如果不能确定查询的人数,则可约定一个查询结束键,每次查询完一个人后,要求用户输入一个是否继续的选择键,循环条件可设计为用户是否输入查询结束键,源程序可以参阅例5-1。2.循环体设计生肖判断的有关语句肯定应该放在循环体中,那么,输入出生年份语句和显示查询结果的语句呢?很显然,每次查询都要求输入出生年份,显示查询结果,即需要多次执行,所以这两个语句应放在循环体中。如果循环条件设计为是否输入查询结束键,那么查询结束键的输入语句也应放在循环体中。C语言提供了3种循环语句:while语句、do-while语句和for语句,可以利用它们来组成各种不同形式的循环结构。《单片机C程序设计》信息工程学院智能电子教研室4.2循环结构for语句for语句是C语言所提供的功能最强、使用最广泛的一种循环语句。1.for语句的一般格式for(表达式1;表达式2;表达式3)循环体语句说明:(1)表达式1:通常用来给变量赋初值,一般为赋值表达式,表达式1可省略,省略表达式1时,应在循环语句前,给相关变量赋初值。(2)表达式2:通常是循环条件,一般为关系表达式或逻辑表达式,表达式2也可省略,当其省略时,应在循环体中,用if语句设置退出循环的条件,否则会出现死循环。(3)表达式3:通常用来修改循环变量的值,即处理步长,一般是赋值语句,表达式3也可省略,当其省略时,应在循环体中处理步长,否则会出现死循环。《单片机C程序设计》信息工程学院智能电子教研室4.2循环结构for语句(4)无论省略哪个或哪些表达式,其后的分号不能省,所以for语句的括号内,有且只有两个分号。(5)每个表达式都可使用逗号表达式,但一般只在表达式1和表达式3中常用。(6)循环体只能是一个语句,当循环体超过一个语句时,应加上{}构成复合语句。《单片机C程序设计》信息工程学院智能电子教研室4.2循环结构for语句(7)表达式3中,改变循环变量值时,一定要使循环趋于结束,否则会出现死循环。在for语句中,可以直接处理循环变量的初值、终值、步长,在这方面比while语句和do-while语句都方便。《单片机C程序设计》信息工程学院智能电子教研室4.3设计循环结构问题:红灯亮20秒,黄灯亮5秒,绿灯亮20秒for(表达式1;表达式2;表达式3){循环体}for(起点;终点;步长){循环体}如何根据要求确定起点、终点、步长?解答:对于红灯,从20开始亮,则起点为20;数字一直减1,数字变为0时红灯暗,则终点为0;数字一直减,每次减1,则步长为1;指令R=0;Y=1;G=1;//红亮for(x=20;x0;x=x-1){循环体}《单片机C程序设计》信息工程学院智能电子教研室4.4整除和求余1.算术运算符C语言共提供了以下几种算术运算符:+:只有一个操作数时为正号运算符,有两个操作数时为加号运算符。-:只有一个操作数时为负号运算符,有两个操作数时为减号运算符。*:乘号运算符,注意它的书写形式与数学中书写形式的区别。/:除号运算符,注意当两个操作数均为整数时它表示整除,否则表示实数除法。%:模运算符或称求余运算符,注意它要求两个运算数均为整数。《单片机C程序设计》信息工程学院智能电子教研室4.4整除和求余•2.算术表达式用算术运算符和括号将操作数连接起来,符合C语言语法规则的式子称为算术表达式。每个表达式对应一个确定的值。算术运算符的优先级为先乘除后加减。《单片机C程序设计》信息工程学院智能电子教研室4.4整除和求余/:除号运算符,当两个操作数均为整数时表示整除%:模运算符或称求余运算符,要求两个运算数均为整数。假设x=12345求下面表达式的结果x/10000=x/1000%10=x/100%10=x/10%10=X%10=《单片机C程序设计》信息工程学院智能电子教研室4.4整除和求余假设x=12345求下面表达式的结果x/10000=12345/10000=1x/1000%10=12345/1000%10=12%10=2x/100%10=12345/100%10=123%10=3x/10%10=12345/10%10=1234%10=4X%10=12345%10=5结论:通过整除和求余,可以分离万位、千位、百位、十位、个位,令其在0-9范围,可以用数码管显示。《单片机C程序设计》信息工程学院智能电子教研室4.5keilC编程#includereg51.hsbitR=P0^5;sbitY=P0^6;sbitG=P0^7;unsignedinti,x;unsignedcharseg[10]={0x3f,0x06,0x5b,0x4f,0x66,//012340x6d,0x7d,0x07,0x7f,0x6f};//56789voidmain(){while(1){R=0;Y=1;G=1;//红亮for(x=20;x0;x=x-1){P2=seg[x%100/10];//分离出十位P3=seg[x%10];//分离出个位i=50000;while(i--);}………………….}}《单片机C程序设计》信息工程学院智能电子教研室5软硬件调试双击单片机芯片,选择【ProgramFile】栏目把编译软件产生以“HEX”结尾的目标文件加载到芯片中;点击OK后,完成程序的加载。《单片机C程序设计》信息工程学院智能电子教研室5软硬件调试《单片机C程序设计》信息工程学院智能电子教研室5软硬件调试•播放视频《单片机C程序设计》信息工程学院智能电子教研室6总结1硬件知识:1.1逻辑电平1.2LED1.3数码管段码2软件知识:2.1控制语句-循环结构2.2循环结构for语句2.3设计循环结构2.4整除和求余《单片机C程序设计》信息工程学院智能电子教研室思考:1如果需要显示3个数字,应该如何设计2如果需要显示4个数字,应该如何设计3如果需要显示5个数字,应该如何设计《单片机C程序设计》信息工程学院智能电子教研室任务:1从0显示到92从0显示到12343设计接近实际的数字红绿灯电路4其他《单片机C程序设计》信息工程学院智能电子教研室谢谢!
本文标题:5数字红绿灯
链接地址:https://www.777doc.com/doc-3918249 .html