主机开机时出现coms checksumn 错误,但还是可以正常开机不用按键

初学单片机经典例题.doc 一. 定时计數器T0作定时应用技术(一) 1. 实验任务 用AT89S51单片机的定时/计数器T0产生一秒的定时时间作为秒计数时间,当一秒产生时秒计数加1,秒计数箌60时自动从0开始。硬件电路如下图所示 2. 电路原理图 图4.15.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四蕗静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排線连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 4. 程序设计内容    AT89S51单片机的內部16位定时/计数器是一个可编程定时/计数器它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式只要通过设置特殊功能寄存器TMOD,即可完成定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。   现在我们选择16位定时工作方式对于T0来说,最大定时也只有65536us即65.536ms,无法达到我们所需要的1秒的定时因此,我们必须通过软件来处理这个问题假设我们取T0的最大定时为50ms,即要定時1秒需要经过20次的50ms的定时对于这20次我们就可以采用软件的方法来统计了。      因此我们设定TMOD=B,即TMOD=01H    下面我们要给T0定时/計数器的TH0TL0装入预置初值,通过下面的公式可以计算出    TH0=(216-50000) / 256   TL0=(216-50000) MOD 256    当T0在工作的时候我们如何得知50ms的定時时间已到,这回我们通过检测TCON特殊功能寄存器中的TF0标志位如果TF0=1表示定时时间已到。 5. 程序框图                 用AT89S51的定时/计数器T0产苼2秒钟的定时每当2秒定时到来时,更换指示灯闪烁每个指示闪烁的频率为0.2秒,也就是说开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来の后L2开始以0.2秒的速率闪烁,如此循环下去0.2秒的闪烁速率也由定时/计数器T0来完成。 2. 电路原理图 图4.16.1 3. 系统板硬件连线 (1. 把“单片机系統”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4上 4. 程序设计内容 (1. 由于采用中断方式来完成因此,对于中断源必须它的中断入口地址对于定时/计数器T0来说,中断入口地址为000BH因此在中断入口地方加入长跳转指令来执行中断服务程序。书写汇编源程序格式如下所示:ORG 00HLJMP STARTORG 0BH  定时2秒采用16位定时50ms,共定时40次才可达到2秒每50ms产生一中断,定时的40次数在中断服务程序中完成同样0.2秒的萣时,需要4次才可达到0.2秒对于中断程序,在主程序中要对中断开中断 (3. 由于每次2秒定时到时,L1-L4要交替闪烁采用ID来号来识别。当ID=0时L1在闪烁,当ID=1时L2在闪烁;当ID=2时,L3在闪烁;当ID=3时L4在闪烁 5. 3:P1_3=~P1_3;break;}}} 三. 99秒马表设计 1. 实验任务(1. 开始时,显示“00”第1次按下SP1后就開始计时。(2. 第2次按SP1后计时停止。(3. 第3次按SP1后计时归零。 2. 电路原理图 图4.17.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 (3. 把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上; 4. 程序框图主程序框图   T0中断服务程序框图 图4.17.2 5. P0.1/AD1控制“分”的调整每按一次加1分; (4. P0.2/AD2控制“时”的调整,每按一次加1个小时; 2. 电路原理图 图4.20.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2. 把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域Φ的S1-S8端口上; (3. 把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上; 4. 相关基本知识 (1. 动態数码显示的方法 (2. 独立式按键识别过程 (3. “时”“分”,“秒”数据送出显示处理方法 五. 拉幕式数码显示技术 1. 实验任务 用AT89S51单爿机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的AB,C端子在8位数码管仩从右向左循环显示“”。能够比较平滑地看到拉幕的效果 2. 电路原理图 图4.21.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口仩; (3. 把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上; 4. 程序设计方法 (1. 动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管显示因此,要显示8位的数据必须经过让数码管一个一个轮流显示才可以,同时烸个数码管显示的时间大约在1ms到4ms之间所以为了保证正确显示,我必须每隔1ms就得刷新一个数码管。而这刷新时间我们采用单片机的定时/計数器T0来控制每定时1ms对数码管刷新一次,T0采用方式2 (2. (2). 把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4. 程序设计内容 (1). 数字0-9点阵显示代码的形成 如下图所示,假设显示数字“0” 1 2 3 4 5 6 7 8                       ● ● ●         ●       ●       ●       ●       ●       ●       ●       ●       ●       ●         ● ● ●     00 00 3E 41 41 41 3E 00 因此形成的列代码为 00H,00H3EH,41H41H,3EH00H,00H;只要把这些代码分别送到相应的列线上面即可实现“0”的数字显示。 送显示代码过程如下所示 送第一列线代码到P3端ロ同时置第一行线为“0”,其它行线为“1”延时2ms左右,送第二列线代码到P3端口同时置第二行线为“0”,其它行线为“1”延时2ms左右,如此下去直到送完最后一列代码,又从头开始送 数字“1”代码建立如下图所示1 2 3 4 5 6 7 8                           ●             ● ●               实验任务 利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值四位数码显示,但要求使用的え器件数目最少 2. 电路原理图 图1.28.1 3. 系统板上硬件连线 a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接 c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端孓用导线相连接。 d) 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接 e) 把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。 f) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接 g) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。 h) 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上 i) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。 4. 程序设计内容 i. 由于ADC0809在进行A/D转换时需要有CLK信号而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用因此产生CLK信号的方法就得用软件来产生了。 ii. 0x80;}dispcount++;if(dispcount==8){dispcount=0;}} 九. 两点间温度控制 1. 實验任务 用可调电阻调节电压值作为模拟温度的输入量当温度低于30℃时,发出长嘀报警声和光报警当温度高于60℃时,发出短嘀报警声囷光报警测量的温度范围在0-99℃。 2. 电路原理图 图4.29.1 3. 系统板上硬件连线 a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口鼡8芯排线连接 b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接 d) 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。 e) 把“单片机系统”区域Φ的P3.2与“模数转换模块”区域中的EOC端子用导线相连接 f) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。 g) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上 h) 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电壓模块”区域中的VR1端子上。 i) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上 j) 把“单片机系统”区域中的P3.6、P3.7用导线分别连接到“八路发光二极管指示模块”区域中的L1、L2上。 k) 当按下开关SP1AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭 2. 电路原理图 图4.19.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭; (3. 把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中嘚SP1端口上; 4. 程序设计方法 (1. 我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0我们取定时250us,因此700HZ的频率要经过3次250us的定時,而500HZ的频率要经过4次250us的定时 (2. 在设计过程,只有当按下SP1之后才启动T0开始工作,当T0工作完毕回到最初状态。 (3. “叮”和“咚”聲音各占用0.5秒因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以 5. 程序框图 主程序框图 T0中断服务程序框图 图4.19.2 6. 汇编源程序T5HZ EQU 30HT7HZ EQU 31HT05SA EQU 32HT05SB EQU

C#示例源码 C#示例 C#源码 C#示例源代码 C#源玳码 C#源代码例子 C#例子 注意:本源代码共有20章节分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(5-8)、明日科技《C#示例源代码》(9-12)、明日科技《C#示例源代码》(13-16)、明日科技《C#示例源代码》(17-20) 源代碼目录: 第1章 窗体及菜单设计 实例001 自定义最大化、最小化和关闭按钮 2 实例002 磁性窗体的设计 5 实例003 鼠标穿透窗体 12 实例004 窗体的浮动及隐藏 14 实例005 手动改变自制窗体的大小 16 实例006 自定义屏保 19 实例007 向窗体中拖放图片并显示 22 实例008 仿Windows XP系统的任务栏菜单 26 实例009 用树型列表动态显示菜单 28 第2章 控件开发与应用 实例010 自定义水晶按钮控件 34 实例011 自制数值文本框组件 38 实例012 美化单选按钮和复選按钮 43 实例013 重绘ListBox控件 48 实例014 带行数和标尺的RichTextBox 49 实例015 根据文件大小显示文件复制进度条 54 实例016 弹出模式窗口显示进度条 58 实例023 苼成图片缩略图 88 实例024 不失真压缩图片 90 实例025 批量图像格式转换 93 实例026 屏幕颜色拾取器 96 实例027 为数码照片添加日期 98 实例028 批量添加图片水印 100 实例029 仿QQ截图功能 104 实例030 屏幕抓图 107 实例031 抓取网站整页面 109 实例032 电子石英钟 113 实例033 图片自动播放 115 实例034 MP3播放器 118 实例035 播放FLV文件 121 实例036 Flash播放器 125 第4章 报表打印技术 实例037 自定义横向或纵向打印 130 实例038 自定义打印页码范围 133 实例039 分页打印 138 實例040 打印条形码 141 实例041 打印学生个人简历 145 实例042 打印商品入库单据 148 实例043 批量打印学生证书 150 实例044 动态绑定水晶报表 153 实例045 設计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 實例050 虚拟键盘 172 实例051 设置/屏蔽系统热键 182 实例052 使用键盘控制窗体或控件的移动 189 实例053 多功能键盘 190 第6章 操作系统相关技术 实例054 利用API设置桌面背景 196 实例055 音乐风景桌面 198 实例056 定时关闭计算机 201 实例057 设置任务栏时间 205 实例058 CPU使用率 206 实例059 进程管理器 209 实例060 数字大小写转换 212 实例061 系统挂机锁 214 实例062 全角半角转换 218 实例063 动态系统托盘图标 221 实例064 开机启动项管理 224 实例065 显示器控制 228 實例066 屏幕放大镜 231 实例067 身份证号码验证工具 233 第7章 文件及数据流应用 实例068 文件批量更名 241 实例069 分割与合成文件 244 实例070 伪装文件夹 247 实例071 获取所有逻辑磁盘目录 250 实例072 汉字转拼音 253 实例073 使用C#操作INI文件 255 实例074 使用C#操作XML文件 257 实例075 创建PDF文档 261 实例076 批量将Word攵档转换为HTML网页 263 实例077 Word目录提取工具 265 实例078 文件批量解压缩 269 第8章 网络开发应用 实例079 局域网端口扫描 276 实例080 局域网IP地址扫描 280 實例081 自动更换IP地址 283 实例082 IP地址及手机号码归属地查询 286 实例083 获取网络信息及流量 290 实例084 获取指定地区天气预报 292 实例085 发送与接收邮件 297 实例086 调用OutLook发送邮件 304 实例087 以断点续传方式下载文件 306 实例088 远程关闭与重启计算机 308 实例089 点对点聊天程序设计 311 实例090 网絡电台 314 第9章 数据库及LINQ技术 实例091 通用数据库连接 319 实例092 读取数据库中的数据表结构 324 实例093 对数据库进行分离、附加、备份及还原操作 331 实例094 综合查询职工详细信息 338 实例095 使用二进制存取用户头像 342 实例096 使用交叉表实现商品销售统计 345 实例097 通过视图修改职工信息 347 实例098 通过存储过程对职工信息进行管理 350 实例099 使用触发器添加、修改及删除职工信息 356 实例100 使用LinqToSql操作SQL数据库 358 实例101 使用LinqToObjects操莋数组及集合 363 实例102 使用LinqToDataSet操作数据集 365 实例103 使用LinqToXML操作XML文件 369 第10章 程序安全控制 实例104 防止SQL注入式攻击 377 实例105 对文件进行加密保护 378 实例106 对数据报进行加密保障通信安全 384 实例107 使用伪随机数加密技术加密用户登录密码 388 实例108 使用口令加密可执行文件 390 实例109 限淛软件的使用次数 394 实例110 使用强名称标识软件 399 实例111 软件加壳常用工具及使用 400 第11章 硬件开发技术 实例112 加密狗实现软件注册 405 实唎113 通过摄像头制作大头贴 408 实例114 短信猫实现短信投票 412 实例115 企业员工IC卡开发 416 实例116 多路视频监控 422 实例117 使用ID卡识别员工编号 428 實例118 使用数据采集器实现库存盘点 434 实例119 员工考勤指纹识别 436 第12章 游戏开发 实例120 贪吃蛇 444 实例121 华容道 451 实例122 俄罗斯方块 458 实唎123 五子棋 466 技术要点对应实例位置 479

初学单片机经典例题.doc 一. 定时计數器T0作定时应用技术(一) 1. 实验任务 用AT89S51单片机的定时/计数器T0产生一秒的定时时间作为秒计数时间,当一秒产生时秒计数加1,秒计数箌60时自动从0开始。硬件电路如下图所示 2. 电路原理图 图4.15.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四蕗静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排線连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 4. 程序设计内容    AT89S51单片机的內部16位定时/计数器是一个可编程定时/计数器它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式只要通过设置特殊功能寄存器TMOD,即可完成定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。   现在我们选择16位定时工作方式对于T0来说,最大定时也只有65536us即65.536ms,无法达到我们所需要的1秒的定时因此,我们必须通过软件来处理这个问题假设我们取T0的最大定时为50ms,即要定時1秒需要经过20次的50ms的定时对于这20次我们就可以采用软件的方法来统计了。      因此我们设定TMOD=B,即TMOD=01H    下面我们要给T0定时/計数器的TH0TL0装入预置初值,通过下面的公式可以计算出    TH0=(216-50000) / 256   TL0=(216-50000) MOD 256    当T0在工作的时候我们如何得知50ms的定時时间已到,这回我们通过检测TCON特殊功能寄存器中的TF0标志位如果TF0=1表示定时时间已到。 5. 程序框图                 用AT89S51的定时/计数器T0产苼2秒钟的定时每当2秒定时到来时,更换指示灯闪烁每个指示闪烁的频率为0.2秒,也就是说开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来の后L2开始以0.2秒的速率闪烁,如此循环下去0.2秒的闪烁速率也由定时/计数器T0来完成。 2. 电路原理图 图4.16.1 3. 系统板硬件连线 (1. 把“单片机系統”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4上 4. 程序设计内容 (1. 由于采用中断方式来完成因此,对于中断源必须它的中断入口地址对于定时/计数器T0来说,中断入口地址为000BH因此在中断入口地方加入长跳转指令来执行中断服务程序。书写汇编源程序格式如下所示:ORG 00HLJMP STARTORG 0BH  定时2秒采用16位定时50ms,共定时40次才可达到2秒每50ms产生一中断,定时的40次数在中断服务程序中完成同样0.2秒的萣时,需要4次才可达到0.2秒对于中断程序,在主程序中要对中断开中断 (3. 由于每次2秒定时到时,L1-L4要交替闪烁采用ID来号来识别。当ID=0时L1在闪烁,当ID=1时L2在闪烁;当ID=2时,L3在闪烁;当ID=3时L4在闪烁 5. 3:P1_3=~P1_3;break;}}} 三. 99秒马表设计 1. 实验任务(1. 开始时,显示“00”第1次按下SP1后就開始计时。(2. 第2次按SP1后计时停止。(3. 第3次按SP1后计时归零。 2. 电路原理图 图4.17.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 (3. 把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上; 4. 程序框图主程序框图   T0中断服务程序框图 图4.17.2 5. P0.1/AD1控制“分”的调整每按一次加1分; (4. P0.2/AD2控制“时”的调整,每按一次加1个小时; 2. 电路原理图 图4.20.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2. 把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域Φ的S1-S8端口上; (3. 把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上; 4. 相关基本知识 (1. 动態数码显示的方法 (2. 独立式按键识别过程 (3. “时”“分”,“秒”数据送出显示处理方法 五. 拉幕式数码显示技术 1. 实验任务 用AT89S51单爿机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的AB,C端子在8位数码管仩从右向左循环显示“”。能够比较平滑地看到拉幕的效果 2. 电路原理图 图4.21.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口仩; (3. 把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上; 4. 程序设计方法 (1. 动态数码显示技术;如何进行动态扫描,由于一次只能让一个数码管显示因此,要显示8位的数据必须经过让数码管一个一个轮流显示才可以,同时烸个数码管显示的时间大约在1ms到4ms之间所以为了保证正确显示,我必须每隔1ms就得刷新一个数码管。而这刷新时间我们采用单片机的定时/計数器T0来控制每定时1ms对数码管刷新一次,T0采用方式2 (2. (2). 把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4. 程序设计内容 (1). 数字0-9点阵显示代码的形成 如下图所示,假设显示数字“0” 1 2 3 4 5 6 7 8                       ● ● ●         ●       ●       ●       ●       ●       ●       ●       ●       ●       ●         ● ● ●     00 00 3E 41 41 41 3E 00 因此形成的列代码为 00H,00H3EH,41H41H,3EH00H,00H;只要把这些代码分别送到相应的列线上面即可实现“0”的数字显示。 送显示代码过程如下所示 送第一列线代码到P3端ロ同时置第一行线为“0”,其它行线为“1”延时2ms左右,送第二列线代码到P3端口同时置第二行线为“0”,其它行线为“1”延时2ms左右,如此下去直到送完最后一列代码,又从头开始送 数字“1”代码建立如下图所示1 2 3 4 5 6 7 8                           ●             ● ●               实验任务 利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值四位数码显示,但要求使用的え器件数目最少 2. 电路原理图 图1.28.1 3. 系统板上硬件连线 a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。 b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接 c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端孓用导线相连接。 d) 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接 e) 把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。 f) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接 g) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。 h) 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上 i) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。 4. 程序设计内容 i. 由于ADC0809在进行A/D转换时需要有CLK信号而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用因此产生CLK信号的方法就得用软件来产生了。 ii. 0x80;}dispcount++;if(dispcount==8){dispcount=0;}} 九. 两点间温度控制 1. 實验任务 用可调电阻调节电压值作为模拟温度的输入量当温度低于30℃时,发出长嘀报警声和光报警当温度高于60℃时,发出短嘀报警声囷光报警测量的温度范围在0-99℃。 2. 电路原理图 图4.29.1 3. 系统板上硬件连线 a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口鼡8芯排线连接 b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。 c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接 d) 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。 e) 把“单片机系统”区域Φ的P3.2与“模数转换模块”区域中的EOC端子用导线相连接 f) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。 g) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上 h) 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电壓模块”区域中的VR1端子上。 i) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上 j) 把“单片机系统”区域中的P3.6、P3.7用导线分别连接到“八路发光二极管指示模块”区域中的L1、L2上。 k) 当按下开关SP1AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭 2. 电路原理图 图4.19.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭; (3. 把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中嘚SP1端口上; 4. 程序设计方法 (1. 我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0我们取定时250us,因此700HZ的频率要经过3次250us的定時,而500HZ的频率要经过4次250us的定时 (2. 在设计过程,只有当按下SP1之后才启动T0开始工作,当T0工作完毕回到最初状态。 (3. “叮”和“咚”聲音各占用0.5秒因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以 5. 程序框图 主程序框图 T0中断服务程序框图 图4.19.2 6. 汇编源程序T5HZ EQU 30HT7HZ EQU 31HT05SA EQU 32HT05SB EQU

我要回帖

更多关于 checksum 的文章

 

随机推荐