版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式单片机方向单片机C语言程序项目设计项目3利用P0口驱动一个数码管3.1 任务说明一、任务1) 利用单片机的P0口驱动一个共阳数码管,实现0-9显示;2) 编程并采用PROTEUS仿真实现。二、学习目的1) 掌握主程序的延时函数的调用和延时函数的编写;2) 掌握单片机的引脚排列和数码管引脚排列;并理解数码管的显示数组;3.2数码管的显示原理单片机系统常用的数码管有共阳型和共阴型两种类型,它是单片机常用的外围显示器件。两种类型的数码管外形 和结构类似,只是数码管内部组成数码段和标点的LED接 法有区别,共阳型数码管的内部所有LED的正极接在一起 为公共极引脚,负极分别引出,依次命名为a、b、
2、c、d、 e、f、g、dop,见图2-1所示数码管电路符号。使用时, 共阳型数码管的公共极接正极,其他引脚分别接驱动电路,数码管显示时低电平有效。数码管可以显示0到9共十个数字,如果加上小数点的显示,驱动一个数码管显示至少需要8位有效数据。驱动数码管显示数字的8位数据编码见表3-1和3-2所示,其中表3-1为共阳型数码管编码, 表3-2为共阴型编码。由于共阴型数码管内部所有LED的负极接在一起,所以数码管显示时驱动数据高电平有效。表3-1共阳数码管显示编码数字显示dotgfedcba16进制0110000000xc01111110010xf92101001000xa43101100000xb0
3、4100110010x995100100100x926100000100x827111110000xf88100000000x809100100000x90表3-2共阴数码管显示编码数字显示dotgfedcba16进制0001111110x3f1000001100x062010110110x5b3010011110x4f4011001100x665011011010x6d6011111010x7d7000001110x078011111110x7f9011011110x6f二、数码管的驱动本节任务所需的电路只需在单片机的最小系统基础增加一个数码管即可。在图3-1中,单片机的P0口接一只共阳数码
4、管,其中P0.0P0.7口分别接数码管的adot引脚, P0的每个端口只要有低电平输出,对应的数码管的那个段就显示。如让数码管显示1,数码管b、c段亮,程序控制P0输出0xbe十六进制编码即可,因此共阳数码管显示09 十进制数字,需要利用10个显示码组成的数组。小数点在不用时一般不让显示,高位端口P0.7输出高电平即可。VCC(+5V)IC STC89C51C1 30PXTAL1P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7C2 30P18XTAL2R1 1K9RESETSEVEN_SEG21222
5、32425262728P2.0/A8 P2.1/A9 P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15PSEN ALEEA1011121314151617P1.0 P1.1 P1.2 P1.3 P1.4 P1.5P1.6 P1.7P3.0/RXD P3.1/TXD P3.2/INT0 2 3 4 5 6 7 8 VCCP3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD图3-1 单片机驱动共阳数码管电路C3 10 29 30 31 1 aR29 200WAC39aafgbecddot38b37c36d35e34f33
6、g32dotCY 12MHz 19由于P0每个端口的灌电流达20mA,数码管每段LED正常显示5mA即可,因此电路中需要R29八个电阻用来限制数码管每一段电流,以防止驱动电流过大而烧毁器件。利用Proteus软件仿真时,数码管采用Optoelectronics元件库中7-Segment Displays下的7-SEG-COM-ANODE元件,可以不接限流电阻。3.3程序设计一、程序设计数码管显示0到9数字过程中,数字的变化需要有一定的时间间隔,因此还采用程序延时的方法实现。程序如下:/*/#includecode unsigned char seven_seg10 = 0xc0,0xf9,0x
7、a4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay (void) /* 时 间 延 迟 函 数 */ unsigned char i,j; for(i = 0;i 255;i+) for (j = 0;j 255;j+);void main (void)unsigned char i; /* 变 量while (1) for (i = 0; i10; i+)i 用来储存09 */ /*无穷循环 */P0 = seven_segi; /*输出09到共阳七段显示器*/delay(); /* 调 用 时 间 延 迟 函 数 delay*/*/二、程序说明(1) 当程序中使用常量数据时,如共阳数码管数字显示编码、液晶显示器的汉字编码等,一般希望这些数据当程序下载到单片机时存放在单片机的ROM区,对此类数据声明前面需要加上关键字code或const。(2) 本程序数码管显示使用了一个for循环,让变量i依次由0递增到9,并将数字显示码送到P0,需要注意seven_seg10 有10个数据,seven_seg0 为第一个数据,seven_seg9 为第10个数据。数码管显示数据的变化时间由延时函数决定。for循环体嵌套在while循环体中,数码管会循环显示09,永不结束,除非电路断电。利用数码管也可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026天津市公交集团场站建设开发有限公司面向社会招聘12人备考题库附答案详解
- 2026福建三明市大田县城市管理综合执法大队招聘城市管理协管人员10人备考题库及完整答案详解一套
- 2026年西安市高新逸翠园初级中学教师招聘备考题库(19人)完整答案详解
- 2026陕西西安未央区徐家湾社区卫生服务中心招聘备考题库完整参考答案详解
- 粉尘治理管理办法
- 化学品存储使用制度
- 2026内蒙古锡林郭勒盟西乌珠穆沁旗柔性引进教研员4人备考题库及一套完整答案详解
- 2026年福建厦门市金榜小学顶岗教师招聘1人备考题库及答案详解一套
- 2026广西柳州市柳江区投资集团有限公司招聘1人备考题库及一套答案详解
- 2026年福建省福州市教院二附中临聘(代课)教师的招聘备考题库参考答案详解
- 2025年全国事业单位联考A类《职业能力倾向测验》真题及答案
- 2026黑龙江鸡西市虎林市社区工作者招聘补充笔试参考题库及答案详解
- ARDS综合征护理规范
- 2026浙江嘉兴市丰源公共事业管理有限公司招聘笔试参考试题及答案解析
- 2026上海崇明横沙乡招聘事务工作者10人笔试参考题库及答案解析
- 苏教版四年级数学下册期末检测卷(带答案)
- 宁波杭州湾新区水明江(十一塘横江-十二塘横江)和水智江(兴慈 四路-兴慈七路)河道工程海域使用论证报告书
- 2025年甘肃省兰州市八年级地理生物会考真题试卷(含答案)
- 锂电池企业爆炸应急演练脚本
- 手术室健康教育工作制度
- 2026年高考(山东卷)政治试题及答案
评论
0/150
提交评论