单片机编程入门指令(单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV P1,#0FFH ;P1.0=1,内部上拉(0FFH)

本文目录
- 单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV P1,#0FFH ;P1.0=1,内部上拉(0FFH
- 单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以
单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV P1,#0FFH ;P1.0=1,内部上拉(0FFH
ORG 0000H ;ORG是汇编伪指令,定位程序地址用,这里是程序入口0000H
MOV P1,#0FFH ;给P1口赋值FFH,即P1口全部置1
P1.0=1;P1.0口置1,这里单独给P1口的第一位置1.
;这个程序没写完,至少应该结尾处有一个END,为了使程序可控,结束前加一个死循环较好。因此需要加如下两句:
SJMP $ ;原地循环,这样可以保持以前的状态
END ;程序结束,这也是伪指令,通知编译器,所有程序到此完结。
单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以
下列程序已经调好,按键显示电路可见:
***隐藏网址***
//单片机:使用51系列兼容的即可;
//4×4矩阵键盘:接在P1口;
//两位数码显示器: P0口输出七段码,P2口输出位选码。
/========================================
//C语言程序如下。
/*************************************************************
* 文件名: KEY_LED.c
* 功能 : 对4×4矩阵键盘进行输出,在数码管后两位显示按键值。
**************************************************************/
#include 《reg51.h》
#include 《intrins.h》
#define uint unsigned int
#define uchar unsigned char
uchar code table = {0xC0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
uchar sec, t_50ms;
/**************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***************************************************************/
void Delay_1ms(uint x)
{
uint i;
uchar j;
for(i = 0; i 《 x; i++) for(j = 0; j 《= 148; j++);
}
/**************************************************************
* 名称: Display(uchar k)
* 功能: 将参数分成十位、个位分别显示
* 输入: k (键盘数值)
* 输出: P0口输出七段码,P2口输出位选码
***************************************************************/
void Display(uchar k)
{
P2 = 0; //消隐
P0 = table;
P2 = 0x02; Delay_1ms(5); //显示5ms十位
P2 = 0; //消隐
P0 = table;
P2 = 0x01; Delay_1ms(5); //显示5ms个位
}
/**************************************************************
* 名称: Keyscan()
* 功能: P1外接4×4按键, 按照扫描法读出键值
* 输出: 按键值0~15/如无键按下, 返回16
***************************************************************/
uchar Keyscan(void)
{
uchar i, j, temp, Buffer = {0xef, 0xdf, 0xbf, 0x7f};
for(j = 0; j 《 4; j++) { //循环四次
P1 = Buffer; //在P1高四位分别输出一个低电平
temp = 0x01; //计划先判断P1.0位
for(i = 0; i 《 4; i++) { //循环四次
if(!(P1 & temp)) //从P1低四位,截取1位
return (i + j * 4); //返回取得的按键值
temp 《《= 1; //判断的位,左移一位
} }
return 16; //判断结束,没有键按下,返回16
} //呵呵,实质性的语句不过8行,就是这么简练!
/**************************************************************
* 名称: GetKey()
* 功能: 读出按键、消抖、等待按键释放
* 输出: 按键值0~15/如无键按下, 返回16
***************************************************************/
uchar GetKey(void)
{
uchar Key_Temp1, Key_Temp2; //两次读出的键值
P1 = 0xff;
Key_Temp1 = Keyscan(); //先读入按键
if(Key_Temp1 == 16) return 16; //没有键按下,返回16
Display(sec); //用显示代替延时
Key_Temp2 = Keyscan(); //再读一次按键
if(Key_Temp1 != Key_Temp2) return 16; //不同,返回16
while(Keyscan() 《 16) //等待按键释放
Display(sec); //等待期间显示
return Key_Temp1;
}
/**************************************************************
* 名称 : Main()
* 功能 : 主函数
***************************************************************/
void Main(void)
{
uchar Key_Value; //读出的键值
sec = 0;
TMOD = 0x01;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
TR0 = 1;
ET0 = 1;
EA = 1;
while(1) {
Display(sec); //显示
if (GetKey() == 10) {
TR0 = 0;
while (TR0 == 0) {
Display(sec); //显示
Key_Value = GetKey();
if (Key_Value 《 10) {
sec %= 10;
sec = sec * 10 + Key_Value;
}
if (Key_Value == 10) TR0 = 1;
} } }
}
/**************************************************************
* 名称 : T0_INT()
* 功能 : T0中断函数
***************************************************************/
void T0_INT() interrupt 1
{
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
t_50ms++;
if(t_50ms 》= 20) {
t_50ms = 0;
sec++;
sec %= 60;
}
}
/*************************************************************/

更多文章:
sql语句优化面试(面试问到 数据库性能优化 怎么回答 我是Oracle数据库)
2025年7月30日 02:15
图片转换代码软件(求一款图片转网页代码的工具,就是可以把图片转换成网页广告的那种,)
2025年6月30日 23:30
desense(手机desense测试,中文是什么意思怎么测试)
2025年11月12日 03:00
如何使用ubuntu系统(win10安装ubuntu双系统怎么装)
2025年9月4日 20:00
sql数据库多少钱(access sql 等的数据库,开发工具多少钱运行平台多少钱)
2026年1月21日 20:15
php环境搭建的原理(什么是PHPWEB环境的搭建及其作用)
2026年8月23日 16:15
c语言一维数组有几个数(c语言的一维数组中至少要有几个元素)
2025年11月27日 13:30
1111101100101110转为16进制?将23456表为16进制数
2025年12月19日 18:30
指针变量为什么占4个地址(C语言中,为什么指针变量无论指向那个类型的变量,其所占的字节都为4个字节详解)
2025年7月27日 19:00
html5模板 支付成功(html5怎么实现支付宝实时转账)
2025年7月5日 15:45
js jquery面试(jquery中怎么调用js方法调用)
2025年8月8日 03:45













