单片机C程序实战:16进制与10进制转换及CPU编程器接口
需积分: 3 117 浏览量
更新于2024-11-29
收藏 44KB DOC 举报
"这篇资源提供了一些实用的单片机C程序,主要涉及16进制与10进制之间的转换,以及89C51系列CPU编程器的接收程序。"
在单片机编程中,C语言是一种常用的语言,因为它具有良好的可读性和移植性。在这个资源中,我们可以看到两个关键的程序:一个用于16进制到10进制的转换,并进行数据显示,另一个则是89C51系列CPU编程器的接收程序。
1. **16进制与10进制转换程序**:
- 这个程序定义了一个`output`函数,用于将16进制的数字转换为10进制并输出。它接受一个无符号长整型变量`dd`(代表16进制数),起始显示位`s`,结束位`e`,以及一个表示小数点存在的标志`dip`。
- 函数首先通过除法和取模操作将16进制数转换为10进制,然后存储在数组`tm`中。为了简化显示,如果前面的位都是0,则用空字符`nul`替换。
- 最后,根据起始位和结束位,将10进制数反向存入显示缓存`d`,并处理小数点的显示。
2. **输入函数`input`**:
- `input`函数负责将显示位5-9位的10进制数转换回16进制。它通过乘法和除法操作收集每个位的值,然后返回结果。
3. **89C51系列CPU编程器接收程序**:
- 这部分代码包含了一些与89C51系列单片机编程器通信相关的定义和函数。例如,定义了一些端口位如`e8`, `p9`, `l10`等,这些是单片机上的IO引脚,用于控制编程过程中的各种信号。
- 定义了中断服务函数`int_t0`,可能用于定时器中断,用于控制编程时序。
- `wait`函数用于延时,通过循环计数实现固定时间的延迟,这里的`w`参数代表延迟的单位。
4. **中断系统**:
- 中断服务函数`int_t0`是针对定时器0的中断,中断编号为1。中断过程中,更新定时器寄存器`TH0`的值,这通常是为了保持定时器的周期性中断。
这些程序展示了单片机C程序的基本结构,包括数据转换、IO操作和中断处理,这些都是单片机开发中常见的任务。对于学习和实践单片机编程的初学者来说,这样的代码实例非常有价值。
点击了解资源详情
149 浏览量
点击了解资源详情
2022-09-20 上传
2011-06-28 上传
2010-08-10 上传
2013-09-14 上传
zhu20082008zhu
- 粉丝: 2
- 资源: 57
最新资源
- dejalist:Dejalist Android应用程序背后的开源代码-Android application source code
- java毕业设计-基于SSM的社区疫情签到管理系统源码+数据库.zip
- leetcode答案-leetcode-answers:这是一个存储leetcode答案的项目。Leetcode是一个专门针对程序员面试的在线
- hiera-eyaml:Hiera的后端,它提供敏感数据的按值非对称加密
- 基于STM32的温度测量系统.zip
- 国际收支分析
- Freedominthesky.GitHub.io
- Ziarmandhost
- Sign_Language_Interpreter:Android应用程序源代码-Android application source code
- JobPriorityQueue:基于优先级的作业队列,可以更好地处理Android项目的不同类型的作业
- leetcode答案-code-challenges:代码挑战
- CIS2348-Ratner
- 策略培训 英文版(十二)
- 51单片机STC89C52RC开发板例程之模拟广告牌字体流动显示.rar
- SafeSlinger-Android:SafeSlinger Android客户端应用程序的开源代码-Android application source code
- google-react-maps:一种使用React的Google Maps API的新方法