




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验指导书适用专业:计算机控制、网络、物联网等学时: 12编写人:孔庆臣2016-5-12实验一 IO 口输入输出实验1. 实验内容(1) P2 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。(2) P1 口做输入口,接八个扭子开关, P2 口接八只发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。2. 实验目的学习 keil 仿真软件的使用方法学习 IO 口的使用方法。学习延时子程序的编写和使用。stc-isp 软件的使用3. 有关说明P1 口为准双向口, P1 的每一位都能独立地定义为输入或输出线,作为输入的口线,必须向锁存器相应位写入 “1” ,该位
2、才能作为输入。单片机IO 口在复位时均置为 “1” ,如果后来在口锁存器写入过“0”,在需要时应写入一个“ 1”使它再成为一个输入。可以用第二个实验做一下实验。先按要求做好程序并调试成功后,可将P1 口锁存器中置“0 ”,此时将 P1 作输入口,会有什么结果。再来看一下延时程序的实现。通常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。本实验系统晶振为11.0592MHZ,则一个时钟周期为0.0904us。现要写一个延时0.1s的程序,可大致写出如下:void Delay100ms() /11.0592MHz unsigned char
3、i, j, k;i = 5;j = 52;k = 195;do do while (-k); while (-j); while (-i);5实验电路设计( 1) 分析附录 1 单片机实验系统部分原理图, 选择合适的电路模块, 并根据实验要求的功能进行合理的电路模块间的电路连接。( 2)画出本次实验独立的原理图5、实验要求( 1)完成实验电路设计( 2)完成实验程序设计( 3)实现要求的实验结果4)对实验内容做全面总结实验二 定时器实验1. 实验内容模拟八台电机延时启动,要求当按下启动按钮后,第一台电机马上启动,其他七台每隔 10 秒启 动一台,当按下停止按钮时所有电机同时停止,同时用发光管显
4、示出启动与停止状态。启动、停止时低电平有效,电机运行使用发光管电路模拟,低电平运行,高电平停止。2. 实验目的( 1)熟悉定时器工作原理( 2)掌握定时器应用编程的方法及使用技巧。( 3)了解单片机技术的基本应用设计3. 实验电路设计( 1 )分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。( 2)画出本次实验独立的原理图4、实验要求( 1)完成实验电路设计( 2)完成实验程序设计( 3)实现要求的实验结果( 4)对实验内容做全面总结实验三 矩阵键盘及数码管显示器实验1. 实验内容P1 口完成 4*4 键盘输入; P2 口连接数码管
5、,显示当前按下的键位号; P0 口连接数码管,记录 按下按键的次数,超过 16 次归零从新计数。2. 实验目的( 1)熟悉矩阵键盘与单片机的常用连接方法( 2)掌握矩阵键盘的编程方法。( 3)掌握数码管与单片机的接口方式与编程方法3. 实验电路设计( 1 )分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。( 2)画出本次实验独立的原理图4、实验要求1)完成实验电路设计2)完成实验程序设计3)实现要求的实验结果4)对实验内容做全面总结实验四 A/D 转换实验1实验内容利用实验台上的 ADC0809 做 A/D 转换器,实验台上的电位器
6、提供模拟量输入,编制程序,将模拟量转换成数字量用 8 个数码管显示,显示格式为“模拟电压转换成的数字量( 3 位数码管显示) - - 模拟电压转换成 的数字量对应的电压值( 3 位数码管显示)”。2实验目的掌握A/D 转换与单片机的接口方法。熟悉A/D 芯片ADC0809 转换性能及编程方法。掌握动态显示的原理及编程方法。通过实验了解单片机如何进行数据采集。3. 实验电路设计( 1 )分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。( 2)画出本次实验独立的原理图4、实验要求( 1)完成实验电路设计( 2)完成实验程序设计( 3)实
7、现要求的实验结果( 4)对实验内容做全面总结实验五 八路抢答器实验1. 实验内容利用实验系统中的八个独立键盘作为抢答输入端,数码管显示抢答选手号,同时该选手对应的发光管闪烁并伴有嗡名器发声几秒,最后发光管一直保持点亮状态直到新的抢答开始。要求当抢答开始时,第一个选手抢答后其他选手抢答无效,抢答开始键可由开关替代或使用单片机复位键 实现。2. 实验目的( 1)学会单片机基本应用系统的软硬件设计的基本流程及实现方法。( 2)学会对单片机简单接口电路如:数码管、嗡名器等的原理及编程方法3)提高学生独立设计、开发的能力3. 实验电路设计( 1 )分析附录1 单片机实验系统部分原理图,选择合适的电路模块
8、,并根据实验要求的功能进行合理的电路模块间的电路连接。( 2)画出本次实验独立的原理图4、实验要求( 1)完成实验电路设计( 2)完成实验程序设计( 3)实现要求的实验结果( 4)对实验内容做全面总结实验六 电子钟及计时器实验1. 实验内容学生独立设计一个电子钟与计时器系统,要求:( 1) 完成显示时、分、秒,时、分、秒中间用“ - ”分开( 2) 完成计时器设计 ,计时器显示格式; “ 小时 .分钟.秒钟.百分秒 ”( 3) 子钟必须可调整显示时间功能( 4) 时器具备开始计时、暂停、清零功能( 5) 子钟与计时器可通过按键相互切换显示2. 实验目的( 1 )学会单片机较复杂应用系统的软硬件
9、设计的基本流程及实现方法。( 2 )学会对单片机简单接口电路如:数码管动态显示原理及编程方法( 3 )学会如何根据所完成的功能合理对键盘输入进行软硬件设计( 4 )提高学生独立设计、开发的能力3. 实验电路case 1: 1)分析附录1 单片机实验系统部分原理图,选择合适的电路模块,并根据实验要求的功能进行合理的电路模块间的电路连接。case 2: 2 )画出本次实验独立的原理图4、实验要求case 3: 1)完成实验电路设计case 4: 2)完成实验程序设计case 5: 3)实现要求的实验结果case 6: 4)对实验内容做全面总结- 5 -附录1单片机实验系统部分原理图总体模块图U_串
10、口下载与通讯串口下载写通讯,SchDoc73PRxD3PTxDU_声音及步进与直流电机电路 声音及方进与直流电机电路,SchDocu_电源,SchDocg 220V0VGND+5V_out-5V_out GND_outU_ 邮 其 它电路,SchDoc-9BA8DOUT1 -9BB-,9BC一;9BD5 SPEAKER1SPEAKER28DIN18DIN28DOUT2U_AD与DA转换 AD 与 DA ,SchDoc思路路,SchDoc10OUTPUT710INPUT110OUTPUT810INPUT210OUTPUT910INPUT310OUTPUT1010INPUT410OUTPUT110
11、OUTPUT210OUTPUT310OUTPUT410OUTPUT510OUTPUT6JLF“SlhDocPortOPort1Port2Port3Port4Port5Port6Port7Port8Port9Port10Port11Port12Port13Port14Port15Port16Port17Port18Port19Port20Port21Port22Port23u_io输出IO输出.SCHDOC、5D05IN05D15IN1:55D25IN25D35IN3"5D45IN45D55IN5.5D65IN6:5D75IN7:5OUT15ADD055ADD15ADD25START5
12、OE5ALE5EOC5CLKU_处理器 处液器,SchDoc2P0_0 2P0_12P0_2 2P20_32P0_4 2P0_5 2P0_62P0_7 2P1_0 2P1_1 2P1_22P1_3 2P1_42P1_5 2P1_62P1_7 2P2_0 2P2_12P2_2 2P2_32P2_4 2P2_52P2_6 2P2_72P3_0 2P3_1 2P3_22P3_3 2P3_42P3_5 2P3_62P3_7 2PORT1 2PORT22PORT39OUT09OUT19OUT29OUT39OUT49OUT59OUT69OUT79OUT89OUT99OUT109OUT119OUT129OU
13、T139OUT149OUT159Y09Y19Y29Y39Y49Y59Y69Y79D09D19D29D39D49D59D69D79A09A19A29A39A49A59A69A79ALE9C19c29A9B9CU_LED显示LED 显示.SchDoc4Port14Port24Port34Port44Port54Port64Port74Port84Port114Port124Port134Port144Port154Port164Port174Port184Port204Port214Port224Port234Port244Port254Port264Port27U一点阵 点阵.SchDocU_液
14、晶与时钟瞰 液晶与时钟电路.SchDoc7RS2 7I/O 7R/W2 7E2 7D0_2_07RS1 7R/W17CLK7RST37E17D0_07D0_17D0_27D0_37D0_47D0_57D0_67D0_77PSB17RST17D0_2_17D0_2_27D0_2_37D0_2_47D0_2_57D0_2_67D0 2 7原理图总体结构第1页共14页串口通讯及声音输出电路3C3 0.1uF3C4 0.1uFVCC 3C2 10uF8JP3VCC3PTxD( 3PRxD ;23JP23U113410Ax16II23C1 0.1uFVCC3JP18JP4101383VCCVCC2N12
15、C3 10uF + 2R21KC22JP62R1 10K2C130pFHlI2Y22Y12JP530pF 12PORT12PORT22PORT32JP42K11232JP32K22K3单片机最小电路19182K1VCC2K22K3、P3 01f P3 1 i_2f P3 23< P3 3U -4P3 4_5P3 5V 6f P3 6_7C P3 7、 _8/2P3 02P3 12P3 22P3 32P3 62P3 72P3_42P3 5P3 010P3 1P3_21P3 3-1P3414P3 515P3 616P3 71720VCCP0.0/AD0.XTAL1P0.1/AD1XTAL2P
16、0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7卜RST ea/VppP1.0/T2卜 PSENP1.1/T2EX ALE/PROGP1.2/ECIP1.3/CEX0P1.4/CEX1,P3.0/RxDP1.5/CEX2,P3.1/TxDP1.6/CEX3卜 P3.2/INT0P1.7/CEX4P3.3/INT1.P3.4/T0,P3.5/T1P2.0/A8P2.1/A9卜 P3.6/WR-P2.2/A10 P3.7/RDP2.3/A11P2.4/A12P2.5/A13P2.6/A14I VSSP2.7/A152U1STC11F60XE2930+1
17、1 _LJVCC 2C4 30uF392JP0P0_0112/8P0 1334y7P0 2556y6P0 3778*35"P0 4991034P0 5111112P0 613131432-P0 71515162JP11P1 0112P1_1334P1_2556P1_375P1_49910P1 5111112一P1 61313148_P1_7151516402P0 06 P0 28 P0 310 P0 412 P0 514 P0 616 P0 72 P108 P1310 P1 412 P1 514 P1 616 P1 74P04 P1_1 e-P12_21 P2_02JP21222-
18、P2_1专3 P2_2 1<*24* P2_3 <5"P2_4-345678326 P2_5支7 P2_6"*28 P2_7P2 0P2 1P2 2P2 3P2 4P2 5P2 6P2 7独立键盘及开关电路1JP22P0 12P0_2 2P20 3s2P0 42P0 52P0 62P0_72P1 0 飞2P1 12P1 22P1_32P1 42P1 52P1 62P1 72P2_02P2 12P2 22P2 32P2 42P2 52P2_62P2 7VCC.Port11jPort12Port13y_Port14Port15 |31K0 包324/11R1 5.1
19、K-31K1 d11R2 5.1KF11K2 9 3乙才丁 jb1R3 5.1K_LII 321K3>1R4 5.1K1 11K4 & 3乙/ 11R5 5.1K31 izc nuy1 1 一1R6 5.1KII1K6 a_ 3 -a 11R7 51K ji1K7 3_一1R8 5.1K1-9 -发光管显示电路JPP425671K3489R2EJPP21 2 3 4 5 6 7 82JPP1IO OUT 8IO OUT 9IO OUT 10DS9DS10DS11VCCTR3R4IO OUT 11DS12IO OUT 12DS13IO OUT 14IO OUT 15IO OUT 1
20、3DS14DS15DS16AD1K91K5JP1VCCTVCC转换电路5CLK1 105U25IN05IN15IN25IN35IN45IN55IN65IN75START5OE5ADD05ADD15ADD25ALE5EOC5CLK5JP212345678123456785CLK113ADC0809NCLKVCCSTARTOEIN0D0IN1D1IN2D2IN3D3IN4D4IN5D5IN6D6IN7D7ADD AEOCADD BADD CREF+ALEREF-GND6928125121626272224232言 中5*11 2 3 4 5 6 7 8DS17DS18IOOUI17DS19IOOU
21、I18DS20IOOUI19DS21iooui 20DS22DS23DS24JPP3DS253DS26DS27DS28DS29DS30DS31OUT 30DS32IO OUT 31IOOUT161 2 3 4 5 6 7 8IOOUT 21IO OUT 22IOOUT 23IO OUT 24IOOUT 25IOOUT 26IOOUT 27IOOUT 28IOOUT 29VCC1117,114.21538418. 519 620. 7215JP775D05D15D45D55D65D75D25D3VCCT13数码管显示电路4JP11 2 3 4 5 6 7 84Port44Port5IQ1HQ2Q
22、34Q490139013901390134D14D24D34D44D5臼3AAAAaaabAbbAbAbAVC 4a日ccccddddeeee/g10- 弃ffff10gDPg DPg DPg DPg DPDpy Blue-CADpy Blue-CADpy Blue-CADpy Blue-CAa 7Dpy Blue-CAa©590134D6VCC4R61JP3日n日a4Q69013臼4Q890134JP24D7jb-c-s.DPDpy Blue-CAabcdefg DPDpy Blue-CAtb,g10p5-g DPDpy Blue-CAty4Port114Port124Port13
23、4Port14'4Port154Port164Port174Port18Header 84U1A念灯ls.Eleu>u>B少 J一3rT1JJ13rT * 3 ,Dpy Blue-CAyg10g DP日;4Port214Polt204Port22>or4Port244JP5VCC4Port25 4Port26 "4Port27 4R8_111223345656671K*8123478123458978894D1011726344JP4efDpy Blue-CC2gDPabcdK105矩阵键盘电路VCC(Port16-(Port17Port18-"1
24、1R11I5.1K1R125.1Krh 1R13U5.1K1S31R14 5.1KPort19附录 2 实验程序及硬件电路连接关系参考实验一第一部分:/2JP3 1、 2 脚分别连接3JP2 1 、 2 脚/2JP2 1-8 脚分别连接JPP1 1-8 脚/ 本程序完成发光管循环闪亮/ 晶振为 11.0592MHz#include<reg51.h>void Delay100ms() / 延时 100ms unsigned char i, j, k;i = 5;j = 52;k = 195;dodowhile (-k); while (-j); while (-i);main()un
25、signed char i,y=0,temp=1;/ / 取反后为 8 个发光管控制初值while(1)P2=temp;for(i=0;i<10;i+)/ 延时 1sDelay100ms();temp=(temp<<1); / 左移 1 位+y;/ 计数器加 1if(y>7)/8 个发光管循环点亮一次后从新开始y=0;temp=1;第二部分:/ 晶振为 11.0592MHz/2JP3 1、 2 脚分别连接3JP2 1 、 2 脚/ 将 1JP2 1-8 脚分别与 2JP1 1-8 脚相连 ,将 JPP1 1-8 脚分别与 2JP2 1-8 脚分相连/ 将开关全置下,发光
26、管全灭,将开关全置上,发光管全亮#include<reg51.h>main()P1=0XFF;while(1)P2=P1;实验二/ 晶振为 11.0592MHz/ 设定启动时间为 10s, 8 台逐一启动/2JP3 1、 2 脚分别连接3JP2 1 、 2 脚/2JP1 1 、 2 脚分别连接1JP1 1 、 2 脚/2JP1 7 、 8 脚分别连接JPP5 4 、 6 脚/2JP2 1-8 脚分别连接JPP1 1-8 脚/P2 口模拟 8 台电机启停状态, 0 启动, 1 停止#include<reg51.h>n1=200; / 计数器 1 ,对定时器中断次数进行减1
27、 计数,初值200n2=7; / 计数器 2 ,对启动电机台数进行减1 计数,初值7+1 台sbit start=P1A0; /启动按钮sbit stop=P1Al;/ 停止按钮sbit led1=P1A6; /运行显示sbit led2=P1A7;/ 停止运行显示void time_0() interrupt 1TH0=0x4c; / 恢复定时初值TL0=0x00; / 恢复定时初值 50msn1-; / 定时器中断次数进行减1if(n1=0) / 定时器减 1 到 0 (达到200*50ms)n1=200; / 定时器中断次数恢复计数初值 200P2=(P2<<1); / 再启
28、动下一台电机n2-;/ 启动电机台数减1if(n2=0) TR0; /8 台全启动,停止定时器main()TMOD=0x01;/ 设置定时器模式TL0=0x00; / 设置定时初值 50msTH0=0x4c; / 设置定时初值EA=1; / 开定时器 0 中断ET0=1;led1=1; / 停止指示灯亮led2=0; / 运行指示灯灭while(1)if(start=0) /判断启动按钮是否按下,0按下P2=0xfe; /启动第一台电机TR0=1;/ 启动定时器led1=0;/ 运行指示灯亮led2=1;/ 停止指示灯灭if(stop=0) / 判断停止按钮是否按下, 0按下TR0=0; /
29、停止定时器P2=0xff; / / 停止所有电机TH0=0x4c; / / 恢复定时初值TL0=0x00; / / 恢复定时初值50msn1=200; / 定时器中断次数恢复计数初值200n2=7; / 恢复启动电机总台数led1=1; / 停止指示灯亮led2=0; / 运行指示灯灭实验三- 19/*矩阵键盘实例*P1 口连接 4*4 键盘,行: P1.0-P1.3 ,列: P1.4-P1.7P0 口显示键位号, P2 口显示按下该键位的次数,超过 16 次从 0从新计数*/*/2JP3 1、 2 脚分别连接3JP2 1 、 2 脚/P1 连接 4*4 键盘,即 2JP1 连接 1JP3/P
30、0 口 (2JP0)连接共阴极数码管(4JP5),显示按下按键的次数/P2 口 (2JP2)连接共阳极数码管(4JP2),显示当前按下的键位号/分另1J将4JP3、4JP4的2、3脚用短路片短接/ 实验结束后分别恢复原来的 4JP3、 4JP4 的 1 、 2 脚用短路片短接状态#include <reg51.h>#define uchar unsigned char#define uint unsigned int/ 显示段码共阳 ,如要加上小数点则与上0x7fcode uchar seg7code_a=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf
31、8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/ 共阴,如要加上小数点则或上 0x80uchar code seg7code_c=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/存放0、1、2、3、E、F键的键位值,高4位存按下按键所在的列、低4位存按下按键所在的行uchar code key_a16=0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7, 0
32、xb7,0x77;/ 保存每个按键按下的次数, 即: array0 存放 0 号键按下的次数, array1 存放 1 号键按下的次数,data uchar array16;void delay(uint a) / 延时 a 毫秒 uint i;while(-a!=0) for(i=0;i<125;i+);void main()uchar k,h;P0=0; / 关闭共阴极数码管while(1)uchar h,l; /h :行 l :列P1=0xf0;/列全置高电平,行全置低电平, 即列输入、行输出if(P1!=0xf0) /若有键按下则列会出现低电平delay(10); / 按键去抖h
33、=P1&0xf0;P1=0x0f; / 电平反转l=P1&0x0f; / 读入行值while(P1!=0x0f);delay(10); / 按键去抖k=h|l; / 行值+列值,即按键值for(h=0;h<16;h+) if(key_ah=k) P0=seg7code_ch; arrayh=arrayh+1;/ 键盘处理/ 根据键值查键位号/ 保存当前按下的按键对应的数组元素增 1if(arrayh>15) arrayh=0 ;P2=seg7code_aarrayh;/ 显示当前按下的按键累计次数- 29 -实验四/2JP3 1 、 2 脚分别连接3JP2 1 、
34、2 脚/2JP2(P2 口 ) 1-8 脚分别连接 4JP1 8-1 脚,输出要显示数字的位码/2JP0连接4JP2,输出要显示数字的段码/2JP1(P1 口 ) 按管脚顺序连接5JP7, 输入转换成的数字量/2JP3(P3 口 ) 按管脚顺序连接5JP2/5JP1 1-3 分别连接 11JP10 5-7 脚/调节电位器11RW1数码管显示输出的数字量#include<reg51.h>#include<intrins.h>/ 显示段码共阳 ,如要加上小数点则与上0x7f/ 显示内容为 0、 1、 2、 3 、 4、 5 、 6 、 7 、 8、 9 、 a、 b、 c、
35、 d 、 e 、 f 、 -code unsigned char seg7code_a=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;code unsigned char wm8=0X80,0X40,0X20,0X10,0X8,0X4,0X2,0x1;/ 位码sbit START=P3A0;sbit OE=P3A1;sbit ADD0=P3A2;sbit ADD1=P3A3;sbit ADD2=P3A4;sbit ALE=P3A5;sbit EOC=P3A6;sbit C
36、LK=P3A7;data unsigned int temp; / 存放 ad 转换结果data unsigned int temp18;/存放用于显示的数据,高3位显示ad转换结果,低3位显示电压值data unsigned int i=0;/ 对显示位数计数void time1() interrupt 1/ 定时器 T0 服务程序 CLK=CLK; / 输出 25kKHz 方波void adzh(void )/A/D 转换程序P3=0xC0;/ 原理:时序图_nop_;_nop_;ALE=1;START=1;_nop_;_nop_;ALE=0;START=0;_nop_;_nop_;whi
37、le(EOC=0);OE=1;_nop_;temp=P1; / 存转换结果void xscl(void) / 显示处理,得到要显示8 位数据的段码temp10=temp/100;/ 转换结果数字量temp11=temp%100/10;temp12=temp%10;temp13=16;temp14=16;temp15=(temp*100/51)/100); / 转换结果对应的电压值temp16=(temp*100/51)%100/10;temp17=(temp*100/51)%10;void delayms( unsigned char j)/ 延时 j 毫秒程序 unsigned char k
38、;while(j-) for(k=0;k<125;k+);void dtxs(void) / 动态显示P2=0;P0 口if(i=5) P0=seg7code_atemp1i&0x7f;/ 送显示数字段码给else P0=seg7code_atemp1i;/ 加小数点P2=wmi;/ 送显示数字位码段码给P2 口i+;if(i>7) i=0;delayms(2); / 延时main()TMOD=0x02; / 设置定时器模式,方式2TL0=0xee; / 设置定时初值定时时间 20usTH0=0xee; / 设置定时重载值EA=1; / 开定时器中断T0ET0=1;TR0=
39、1; / 定时器开始定时while(1)adzh(); /AD 转换xscl(); / 显示数据处理dtxs(); / 数码管动态显示实验五/*; 八路抢答器( 主控用数码管显示,抢答者指示带有闪烁功能);2JP3 1 、 2脚分别连接3JP2 1 、 2 脚;P1 口( 2JP1 )连接独立键盘输入( 1JP1); 从新抢答按钮P3.2 (2JP3 3 脚)连接 1 号开关 1JP2 1 脚, 也可不连接,用复位按钮代替; 抢答声音提示P3.3 ( 2JP3 4 脚)接嗡鸣器8JP4-2;P2 口( 2JP2 )连接发光管显示(JPP2);P0 口( 2JP0)连接数码管显示(4JP2);4
40、JP3 2 、 3 脚用短路片短接,注意实验后恢复原来的 1、 2 脚短接*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit P3_3=P3A3;/嗡鸣器控制输出管脚,0响,1不响sbit P3_2=P3A2;/ 从新抢答,0键入,1无效/ 共阳极数码管显示段码,如要加上小数点则与上0x7fcode unsigned char seg7code_a=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa
41、1,0x86,0x8e;code uchar jpsr8=1,2,4,8,0x10,0x20,0x40,0x80;/ 当 1-8 号按键分别按下时,口 P1 取反对应的数值uchar display(uchar temp) / 查输入按键的段码即 抢答选手号对应的段码uchar k;for (k=0;k<0x7;k+) if(jpsrk=temp) break;return(seg7code_a+k);void delay100ms (uchar n) / / 延时 n*100ms uchar i, j, k,h;for(h=0;h<n;h+)i = 5;j = 52;k = 19
42、5; do do while (-k); while (-j); while (-i);main() uchar input1;bit start;uint j;while(1)i nput1=P1; / 临时保存 8 个按钮但前状态start=P3_2; / 临时保存从新抢答按钮状态if(start=0) / 是否键入从新抢答, 0 键入 P1=0xff; / P1 、 P2、 P0 口置1,恢复初始状态P2=0xff;P0=0xff; if(input1&&input1) / 判断是否有选手抢答P1=0;/ 屏蔽其他选手P2=input1; / 显示抢答选手P0=displ
43、ay(input1) ; / 调用 display (),查抢答选手段码,送P0 口显示P3_3=0;/ 嗡鸣器响for(j=0;j<5;j+) / 闪烁 5 次 delay100ms(1);P2=0xff; / 灭 delay100ms(1);P2=input1; / 显示 P3_3=1;/ 嗡鸣器停止发生/* 单片机 stc11f60xe 12MHz 晶振 */*P0段选 ,P2 位选*/*P1.0:时分秒设置切换*/实验六/*P1.1 :增 1 ; P1.2 :减 1*/2JP3 1、 2 脚分别连接3JP2 1 、 2 脚/2JP0 1-8 脚分别连接4JP2 1-8 脚/2JP
44、2 1-8 脚分别连接4JP1 8-1 脚/2JP1 1 、 2、 3、 5、 7、 8 脚分别连接1JP1 1 、 2、 3、 5、 7、 8脚/1JP1 1 脚为时分秒设置切换键, 1JP1 2 脚增 1 键, 1JP1 3 脚为减 1 键/1JP1 5 脚为电子钟与计时器切换键/1JP1 7 脚为计时、暂停键, 1JP1 8 脚为计时器清零键#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
45、0xf8,0x80,0x90,0xbf,0xff;uint int_time; /* 定义中断次数计数变量*/char second; /* 秒计数变量*/char minute; /* 分钟计数变量*/char hour; /* 小时计数变量*/uint int_time1; /* 定义中断次数计数变量*/char ms1; / 毫秒计数 1char second1; /* 秒计数变量1*/char minute1; /* 分钟计数变量1*/char hour1; /* 小时计数变量1*/uchar temp=2; / 调整时分秒设置变量bit temp1; / 显示方式设置变量sbit P2_0=P2A0;/ 数码管位选sbit P2_1=P2A1;sbit P2_2=P2A2;sbit P2_3=P2A3;sbit P2_4=P2A4;sbit P2_5=P2A5;sbit P2_6=P2A6;sbit P2_7=P2A7;sbit P1_0=P1A0;/时分秒调整切换sbit P1_1=P1A1;/时钟加1sbit P1_2=P1A2;/时钟减1sbit P1_4=P1A4;/时钟、计时切换sbit P1_6=P1A6;/计时启停sbit P1_7=P1A7;/计时清零void T0_interserve(void) interrupt 1 using 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东省建筑安全员考试题库附答案
- 2025山西省安全员-A证考试题库附答案
- 2025年-陕西省安全员《C证》考试题库及答案
- 五年级数学(小数除法)计算题专项练习及答案汇编
- 如何通过家庭教育提升孩子的社交能力
- 全面风险管理模式阶段
- 《第二单元 指挥机器人行动 10 灯光闪烁有规律》教学设计-2023-2024学年泰山版信息技术(2018)第三册
- 儿童家庭应急处理能力培养
- 食品质量知识竞赛总结
- 全国青岛版信息技术七年级下册专题二第2课二、《遮罩动画制作》教学设计
- 【仲量联行】2024年重庆商业地产市场报告
- 危险作业监护人资格考试
- 2025年XX县社会工作部工作计划
- 2025年安徽卫生健康职业学院单招职业适应性测试题库含答案
- 2025上海崇明现代农业园区开发限公司招聘39人易考易错模拟试题(共500题)试卷后附参考答案
- Unit 5 Here and Now Section A1a~1d教学设计 -2024-2025学年人教版(2024)七年级英语下册
- 3级高空作业施工方案
- 授受動詞基础知识点讲解课件 高三日语一轮复习
- 老年肺炎临床诊断与治疗专家共识(2024年版)解读
- 《 大学生军事理论教程》全套教学课件
- 中考数学计算题练习100道(2024年中考真题)
评论
0/150
提交评论